API Conta Ovos

Consultez et envoyez les données d'ovitrap, d'îlot et de visite sur le terrain directement depuis votre système. Cette page documente tous les points de terminaison publics et privés disponibles.

/fr-mc/apiDemander une clé API

À propos de l'API

Cette API a des points de terminaison public et privé. L'API publique renvoie des données sur la latitude, la longitude et le nombre d'œufs pour chaque commune participante au fil du temps, sans nécessiter d'authentification. L'API privée n'est recommandée que pour les applications qui fonctionnent en partenariat avec Conta Ovos, car elle expose des données sensibles et vous permet d'insérer, de modifier et de supprimer des enregistrements.

Authentification et clés

Pour utiliser l'API privée, vous aurez besoin d'une clé d'accès (key). Pour l'acheter, envoyez un email à contaovosdengue@gmail.com déclarant :

  • Pourquoi avez-vous besoin d'un accès API ?
  • Quel niveau d'accès est requis (municipal, régional, étatique ou national) ;
  • De quelle région géographique faites-vous partie ?

La clé est composée de 45 lettres aléatoires et doit être envoyé en paramètre key de chaque demande privée. Le périmètre géographique et le plan lié à la clé (api_access_municipality_id, state_id, region_id, country_id, plan) définir automatiquement les enregistrements qu'elle peut lire ou modifier — une clé municipale, par exemple, ne peut lire ou modifier que les données de la municipalité elle-même.

Où envoyer la clé : prefira o cabeçalho Authorization: Bearer SUA_CHAVE. A query string da URL (?key=SUA_CHAVE) continua aceita em todos os endpoints, mas fica gravada em logs de servidor e proxies, e o cabeçalho não. Enviar a chave apenas no corpo do formulário resulta em 404 "Wrong key". Les autres champs POST continuent d'apparaître dans le corps de la requête.
Pagination: les paramètres page acceptez un maximum de 100 sur les points de terminaison prenant en charge la pagination. Les valeurs invalides ou manquantes prennent la page 1.

Codes de réponse

Tous les points de terminaison suivent le même modèle d'état HTTP :

CodeSignification
200Demande traitée avec succès.
400Parâmetro obrigatório ausente, em formato inválido, ou corpo da requisição ilegível.
403La ressource renseignée n'appartient pas au périmètre (ville/état/région) de la clé utilisée.
404Clé invalide (Wrong key) ou ressource introuvable.
409Un enregistrement existe déjà pour cette combinaison identifiant, année et semaine.
500Erreur interne lors du traitement de la demande.

Como enviar o corpo de um POST

Todos os endpoints POST aceitam três formatos, e você escolhe o que for mais fácil no seu sistema:

FormatoContent-Type
Formulário simplesapplication/x-www-form-urlencoded
Formulário multipartmultipart/form-data
JSONapplication/json

Não defina o cabeçalho Content-Type à mão no Postman, no Insomnia ou em bibliotecas de HTTP. Deixe a ferramenta gerá-lo: no multipart ela precisa incluir o boundary, e um Content-Type que não corresponde ao corpo faz todos os campos chegarem vazios.

Quando isso acontece a resposta é 400 com esta mensagem, e ela é sobre o envelope, não sobre os seus campos:

{
  "error": "Não consegui ler os campos do corpo da requisição. Envie como form-data, x-www-form-urlencoded ou JSON.",
  "dica": "Se usa Postman ou Insomnia, apague o cabeçalho Content-Type e deixe a ferramenta gerá-lo sozinha."
}

A chave (key) vai sempre na URL, nunca no corpo.

Points de terminaison publics

GET/api/lastcountingpublicPublique

Derniers décomptes publiés

Renvoie les derniers décomptes publiés par emplacement (ville, état ou pays), avec le nombre d'œufs et les données sur les ovitraps.

Paramètres

NomTaperDescription
statestringCode d'état. Exemple: state=RJ.
municipalitystringNom de la commune. Exemple: municipality=Ponta Pora
countrystringNom du pays. Exemple: country=Brasil. En cas d'omission, cela implique "Brésil".
pageintPage de pagination (par défaut 1, maximum 100).
idintAffiche uniquement les occurrences de l'identifiant donné. Exemple: id=7876.
datedateAffiche les occurrences à partir de la date d'inclusion. Exemple: date=2025-01-01.
date_collectdateAffiche les occurrences à partir de la date de collecte. Exemple: date_collect=2024-12-12.
date_startdateDate de début pour filtrer les décomptes. Exemple: date_start=2025-01-01.
date_enddateDate de fin pour filtrer les décomptes. Exemple: date_end=2025-12-31.

Note: Si aucun paramètre de localisation n'est envoyé, le point de terminaison renvoie les derniers décomptes du Brésil.

Réponses spécifiques :
  • 400 — lorsqu'une des dates envoyées n'est pas au format YYYY-MM-DD. La réponse apporte la liste des champs invalides dans invalid_fields.

Exemple de demande

curl -G -d "municipality=Ponta%20Pora" \
  /fr-mc/api/lastcountingpublic

curl -G -d "state=MG" \
  /fr-mc/api/lastcountingpublic

Exemple de réponse

[
  {
    "state_name": "Minas Gerais",
    "state_code": "MG",
    "municipality": "Ponta Pora",
    "municipality_code": "5006606",
    "eggs": 42,
    "week": 3,
    "year": 2025,
    "time": "2025-01-20 14:32:10",
    "counting_id": 118342,
    "ovitrap_website_id": 981,
    "ovitrap_id": "97",
    "latitude": -7.000000,
    "longitude": -8.000000,
    "date": "2025-01-20",
    "date_collect": "2025-01-27"
  }
]
GET/api/getmunicipalityblocksvisitpublicPublique

Visites dans les îlots

Renvoie les données sur les visites (actions de traitement) effectuées par îlots — une ligne par visite et non par îlot.

Paramètres

NomTaperDescription
statestringCode d'état. Exemple: state=RJ.
municipalitystringNom de la commune. Exemple: municipality=Ponta Pora
countrystringNom du pays. Exemple: country=Brasil. En cas d'omission, cela implique "Brésil".
pageintPage de pagination (par défaut 1, maximum 100).

Exemple de demande

curl -G -d "municipality=Vista%20Alegre" \
  /fr-mc/api/getmunicipalityblocksvisitpublic

curl -G -d "state=MS" \
  /fr-mc/api/getmunicipalityblocksvisitpublic

Exemple de réponse

[
  {
    "block_id": 4521,
    "block_actions_mean": 3.4,
    "block_coordinates": "[[-7.123, -34.845], [-7.124, -34.846]]",
    "municipality": "Vista Alegre",
    "municipality_code": "5007117",
    "state_name": "Mato Grosso do Sul",
    "state_code": "MS",
    "action_land_total_total": 21,
    "action_land_residence_total": 10,
    "action_land_commercial_total": 5,
    "action_land_empty_total": 3,
    "action_land_strategy_total": 1,
    "action_land_another_total": 2,
    "action_address_district": "Centro",
    "action_address_sector": "Setor 04",
    "action_deposit_a1_quantity": 4,
    "action_deposit_a2_quantity": 2,
    "action_deposit_b_quantity": 5,
    "action_deposit_c_quantity": 1,
    "action_deposit_d1_quantity": 0,
    "action_deposit_d2_quantity": 3,
    "action_deposit_e_quantity": 0,
    "action_observation": "Foco encontrado em pneus nos fundos do imovel.",
    "latitude": -7.123456,
    "longitude": -34.845678
  }
]
GET/api/getmunicipalityblockspublic-2Publique

Îlots enregistrés

Renvoie les îlots enregistrés dans la commune — une ligne par îlot, avec le polygone, le total des propriétés par type et le nombre moyen de parts.

Nouveau point de terminaison. Si vous recherchez des visites effectuées par îlots, utilisez /api/getmunicipalityblocksvisitpublic. Comme il s’agit d’un point de terminaison public, la réponse n’inclut pas l’agent responsable de l'îlot ni les identifiants utilisateur/équipe.

Paramètres

NomTaperDescription
statestringCode d'état. Exemple: state=RJ.
municipalitystringNom de la commune. Exemple: municipality=Ponta Pora
countrystringNom du pays. Exemple: country=Brasil. En cas d'omission, cela implique "Brésil".
pageintPage de pagination (par défaut 1, maximum 100).

Exemple de demande

curl -G -d "municipality=Alta%20Floresta" \
  /fr-mc/api/getmunicipalityblockspublic-2

curl -G -d "state=MT" \
  /fr-mc/api/getmunicipalityblockspublic-2

Exemple de réponse

[
  {
    "block_id": 118342,
    "block_group_id": "1",
    "block_datetime": "Mon, 09 Sep 2024 10:12:41 GMT",
    "latitude": -9.849042,
    "longitude": -56.065069,
    "block_coordinates": "[{\"lat\":-9.849042,\"lng\":-56.065069}, ...]",
    "block_address_district": "DISTRITO INDUSTRIAL",
    "block_address_sector": "DISTRITO INDUSTRIAL",
    "block_municipality_id": 5566,
    "block_active": 1,
    "block_actions_mean": 22,
    "block_land_total": 24,
    "block_land_residence": 18,
    "block_land_commercial": 4,
    "block_land_empty": 2,
    "block_land_strategy": 0,
    "block_land_another": 0,
    "municipality": "Alta Floresta",
    "municipality_code": "5100250",
    "state_name": "Mato Grosso",
    "state_code": "MT"
  }
]
GET/api/getmunicipalityedlspublicPublique

EDL enregistrées

Renvoie les données des EDL (points stratégiques qui reçoivent une maintenance périodique des agents) enregistrés par municipalité.

Paramètres

NomTaperDescription
statestringCode d'état. Exemple: state=RJ.
municipalitystringNom de la commune. Exemple: municipality=Ponta Pora
countrystringNom du pays. Exemple: country=Brasil. En cas d'omission, cela implique "Brésil".
pageintPage de pagination (par défaut 1, maximum 100).

Exemple de demande

curl -G -d "municipality=Vista%20Alegre" \
  /fr-mc/api/getmunicipalityedlspublic

curl -G -d "state=MS" \
  /fr-mc/api/getmunicipalityedlspublic

Exemple de réponse

[
  {
    "edl_id": 1832,
    "edl_group_id": "104",
    "edl_address_datetime": "2025-02-11 09:15:00",
    "edl_lat": -7.123456,
    "edl_lng": -34.845678,
    "edl_municipality_id": 5007117,
    "group_id": 12,
    "user_id": 348,
    "edl_responsable_agent": "João da Silva",
    "edl_block_group_id": "12",
    "edl_responsable_home": "Maria Souza",
    "edl_date": "2025-02-11",
    "edl_water_mean": 1.8,
    "municipality": "Vista Alegre",
    "municipality_code": "5007117",
    "state_name": "Mato Grosso do Sul",
    "state_code": "MS"
  }
]
GET/api/getmunicipalityedlmaintenancepublicPublique

Entretien EDL

Renvoie les données sur la maintenance effectuée sur les EDL, y compris l'observation enregistrée lors de chaque maintenance.

Remplace/api/getmunicipalityedlvisitspublic. Les EDL reçoivent de l'entretien, pas des visites - les champs sont passés de edl_visit_* à edl_maintenance_*. L'ancienne URL continue de fonctionner et continue de renvoyer les anciens noms, afin de ne pas interrompre les intégrations en production, mais elle est interrompue.

Paramètres

NomTaperDescription
statestringCode d'état. Exemple: state=RJ.
municipalitystringNom de la commune. Exemple: municipality=Ponta Pora
countrystringNom du pays. Exemple: country=Brasil. En cas d'omission, cela implique "Brésil".
pageintPage de pagination (par défaut 1, maximum 100).

Exemple de demande

curl -G -d "municipality=Vista%20Alegre" \
  /fr-mc/api/getmunicipalityedlmaintenancepublic

curl -G -d "state=MS" \
  /fr-mc/api/getmunicipalityedlmaintenancepublic

Exemple de réponse

[
  {
    "edl_maintenance_id": 9021,
    "edl_id": 1832,
    "edl_maintenance_time_week": 7,
    "edl_maintenance_time_year": 2025,
    "edl_maintenance_datetime": "2025-02-11 09:20:00",
    "edl_maintenance_user_id": 348,
    "edl_maintenance_observation": "Sem foco encontrado no local.",
    "edl_maintenance_observation_id": 3,
    "edl_maintenance_water_level": 0.5,
    "edl_maintenance_lat": -7.123456,
    "edl_maintenance_lng": -34.845678,
    "edl_maintenance_municipality_id": 5007117,
    "edl_maintenance_region_id": 4,
    "edl_maintenance_state_id": 24,
    "edl_maintenance_country_id": 1,
    "edl_maintenance_date": "2025-02-11",
    "edl_maintenance_observation_name": "Sem foco",
    "edl_maintenance_observation_number": 3,
    "municipality": "Vista Alegre",
    "municipality_code": "5007117",
    "state_name": "Mato Grosso do Sul",
    "state_code": "MS"
  }
]
GET/api/getmunicipalityovitrapspublicPublique

Ovitraps enregistrés

Renvoie les données des ovitraps (points de surveillance des œufs) enregistrés par municipalité.

Paramètres

NomTaperDescription
statestringCode d'état. Exemple: state=RJ.
municipalitystringNom de la commune. Exemple: municipality=Ponta Pora
countrystringNom du pays. Exemple: country=Brasil. En cas d'omission, cela implique "Brésil".
pageintPage de pagination (par défaut 1, maximum 100).

Exemple de demande

curl -G -d "municipality=Vista%20Alegre" \
  /fr-mc/api/getmunicipalityovitrapspublic

curl -G -d "state=MS" \
  /fr-mc/api/getmunicipalityovitrapspublic

Exemple de réponse

[
  {
    "ovitrap_id": 4471,
    "ovitrap_group_id": "97",
    "ovitrap_datetime": "2025-01-20 14:32:10",
    "ovitrap_lat": -7.123456,
    "ovitrap_lng": -34.845678,
    "ovitrap_lat_lng_error": 0,
    "ovitrap_municipality_id": 5007117,
    "group_id": 12,
    "user_id": 348,
    "ovitrap_eggs_mean": 12.5,
    "ovitrap_block_id": 4521,
    "municipality": "Vista Alegre",
    "municipality_code": "5007117",
    "state_name": "Mato Grosso do Sul",
    "state_code": "MS"
  }
]
GET/api/getmunicipalityplacespublicPublique

Propriétés (places)

Renvoie les propriétés (points stratégiques et propriétés spéciales) enregistrées par commune.

Paramètres

NomTaperDescription
statestringCode d'état. Exemple: state=RJ.
municipalitystringNom de la commune. Exemple: municipality=Ponta Pora
countrystringNom du pays. Exemple: country=Brasil. En cas d'omission, cela implique "Brésil".
pageintPage de pagination (par défaut 1, maximum 100).

Exemple de demande

curl -G -d "municipality=Vista%20Alegre" \
  /fr-mc/api/getmunicipalityplacespublic

curl -G -d "state=MS" \
  /fr-mc/api/getmunicipalityplacespublic

Exemple de réponse

[
  {
    "place_id": 771,
    "user_id": 348,
    "place_address_district": "Centro",
    "place_address_sector": "Setor 04",
    "place_datetime": "2025-02-05 10:00:00",
    "place_address_lat": -7.123456,
    "place_address_lng": -34.845678,
    "place_municipality_id": 5007117,
    "place_region_id": 4,
    "place_state_id": 24,
    "place_country_id": 1,
    "place_type_id": 2,
    "place_name": "Ferro-velho Bom Preço",
    "place_coordinates": "[[-7.123, -34.845], [-7.124, -34.846]]",
    "place_subtype": 5,
    "place_area": 320.5,
    "municipality": "Vista Alegre",
    "municipality_code": "5007117",
    "state_name": "Mato Grosso do Sul",
    "state_code": "MS"
  }
]

Points de terminaison privés

Tous les points de terminaison ci-dessous nécessitent le paramètre key avec votre clé API.

GET/api/lastcountingPrivé

Derniers décomptes publiés

Renvoie les derniers décomptes publiés dans le cadre de la clé, avec le nombre d'œufs, les données ovitrap et l'utilisateur responsable.

Paramètres

NomTaperDescription
keystringVotre clé API. Définit la portée des décomptes renvoyés.
pageintPage de pagination (par défaut 1, maximum 100).
date_startdateDate de début pour filtrer les décomptes. Exemple: date_start=2025-01-01.
date_enddateDate de fin pour filtrer les décomptes. Exemple: date_end=2025-12-31.
Réponses spécifiques :
  • 400 — lorsqu'une des dates envoyées n'est pas au format YYYY-MM-DD. La réponse apporte la liste des champs invalides dans invalid_fields.

Exemple de demande

curl -G -d "key=KEY&page=1" \
  /fr-mc/api/lastcounting

Exemple de réponse

[
  {
    "state_name": "Minas Gerais",
    "state_code": "MG",
    "municipality": "Ponta Pora",
    "municipality_code": "5006606",
    "eggs": 42,
    "week": 3,
    "year": 2025,
    "time": "2025-01-20 14:32:10",
    "user": "Joao da Silva",
    "counting_id": 118342,
    "ovitrap_website_id": 981,
    "ovitrap_id": "97",
    "district": "Centro",
    "street": "Rua das Flores",
    "number": "123",
    "complement": "",
    "loc_inst": "",
    "sector": "Setor 04",
    "latitude": -7.000000,
    "longitude": -8.000000,
    "date": "2025-01-20",
    "date_collect": "2025-01-27"
  }
]
GET/api/getmunicipalityedlsPrivé

EDL enregistrées

Renvoie les données des EDL (points stratégiques visités périodiquement par les agents) dans la portée géographique de la clé. Le périmètre est automatiquement défini par le plan lié à la clé — communale, régionale, étatique ou nationale — et il n'est pas nécessaire d'informer la commune, l'état ou le pays dans la demande.

Paramètres

NomTaperDescription
keystringVotre clé API. Définit la portée géographique des EDL renvoyées.
pageintPage de pagination (par défaut 1, maximum 100).

Exemple de demande

curl -G -d "key=KEY&page=1" \
  /fr-mc/api/getmunicipalityedls

Exemple de réponse

[
  {
    "edl_id": 1832,
    "edl_group_id": "104",
    "edl_address_datetime": "2025-02-11 09:15:00",
    "edl_lat": -7.123456,
    "edl_lng": -34.845678,
    "edl_municipality_id": 5007117,
    "group_id": 12,
    "user_id": 348,
    "edl_responsable_agent": "João da Silva",
    "edl_block_group_id": "12",
    "edl_responsable_home": "Maria Souza",
    "edl_date": "2025-02-11",
    "edl_water_mean": 1.8,
    "municipality": "Vista Alegre",
    "municipality_code": "5007117",
    "state_name": "Mato Grosso do Sul",
    "state_code": "MS"
  }
]
GET/api/getmunicipalityedlvisitsPrivé

Entretien EDL

Attention : les champs de réponse de ce point de terminaison privé continuent avec le préfixe edl_visit_*. Seul le point de terminaison public équivalent a commencé à utiliser edl_maintenance_*.

Renvoie les données sur les visites effectuées aux EDL dans la portée géographique de la clé, y compris l'observation enregistrée lors de chaque visite. Le périmètre est automatiquement défini par le plan lié à la clé — communale, régionale, étatique ou nationale — et il n'est pas nécessaire d'informer la commune, l'état ou le pays dans la demande.

Paramètres

NomTaperDescription
keystringVotre clé API. Définit la portée géographique des visites retournées.
pageintPage de pagination (par défaut 1, maximum 100).

Exemple de demande

curl -G -d "key=KEY&page=1" \
  /fr-mc/api/getmunicipalityedlvisits

Exemple de réponse

[
  {
    "edl_visit_id": 9021,
    "edl_id": 1832,
    "edl_visit_time_week": 7,
    "edl_visit_time_year": 2025,
    "edl_visit_datetime": "2025-02-11 09:20:00",
    "edl_visit_user_id": 348,
    "edl_visit_observation": "Sem foco encontrado no local.",
    "edl_visit_observation_id": 3,
    "edl_visit_water_level": 0.5,
    "edl_visit_lat": -7.123456,
    "edl_visit_lng": -34.845678,
    "edl_visit_municipality_id": 5007117,
    "edl_visit_region_id": 4,
    "edl_visit_state_id": 24,
    "edl_visit_country_id": 1,
    "edl_visit_date": "2025-02-11",
    "edl_visit_observation_name": "Sem foco",
    "edl_visit_observation_number": 3,
    "municipality": "Vista Alegre",
    "municipality_code": "5007117",
    "state_name": "Mato Grosso do Sul",
    "state_code": "MS"
  }
]
GET/api/getmunicipalityblocksPrivé

Visitas em quarteirões

Renvoie des données sur les actions (visites de traitement) réalisées par îlots dans le périmètre géographique de la clé. Le périmètre est automatiquement défini par le plan lié à la clé — communale, régionale, étatique ou nationale — et il n'est pas nécessaire d'informer la commune, l'état ou le pays dans la demande.

Paramètres

NomTaperDescription
keystringVotre clé API. Définit la portée géographique des actions renvoyées.
pageintPage de pagination (par défaut 1, maximum 100).

Exemple de demande

curl -G -d "key=KEY&page=1" \
  /fr-mc/api/getmunicipalityblocks

Exemple de réponse

[
  {
    "block_id": 4521,
    "block_actions_mean": 3.4,
    "block_coordinates": "[[-7.123, -34.845], [-7.124, -34.846]]",
    "municipality": "Vista Alegre",
    "municipality_code": "5007117",
    "state_name": "Mato Grosso do Sul",
    "state_code": "MS",
    "action_land_total_total": 21,
    "action_land_residence_total": 10,
    "action_land_commercial_total": 5,
    "action_land_empty_total": 3,
    "action_land_strategy_total": 1,
    "action_land_another_total": 2,
    "action_address_district": "Centro",
    "action_address_sector": "Setor 04",
    "action_deposit_a1_quantity": 4,
    "action_deposit_a2_quantity": 2,
    "action_deposit_b_quantity": 5,
    "action_deposit_c_quantity": 1,
    "action_deposit_d1_quantity": 0,
    "action_deposit_d2_quantity": 3,
    "action_deposit_e_quantity": 0,
    "action_observation": "Foco encontrado em pneus nos fundos do imovel.",
    "latitude": -7.123456,
    "longitude": -34.845678
  }
]
GET/api/getmunicipalityovitrapsPrivé

Ovitraps enregistrés

Renvoie les données des ovitraps (points de surveillance des œufs) dans la portée géographique de la clé. Le périmètre est automatiquement défini par le plan lié à la clé — communale, régionale, étatique ou nationale — et il n'est pas nécessaire d'informer la commune, l'état ou le pays dans la demande.

Paramètres

NomTaperDescription
keystringVotre clé API. Définit la portée géographique des ovitraps renvoyés.
pageintPage de pagination (par défaut 1, maximum 100).

Exemple de demande

curl -G -d "key=KEY&page=1" \
  /fr-mc/api/getmunicipalityovitraps

Exemple de réponse

[
  {
    "ovitrap_id": 4471,
    "ovitrap_group_id": "97",
    "ovitrap_datetime": "2025-01-20 14:32:10",
    "ovitrap_lat": -7.123456,
    "ovitrap_lng": -34.845678,
    "ovitrap_lat_lng_error": 0,
    "ovitrap_municipality_id": 5007117,
    "group_id": 12,
    "user_id": 348,
    "ovitrap_eggs_mean": 12.5,
    "ovitrap_block_id": 4521,
    "municipality": "Vista Alegre",
    "municipality_code": "5007117",
    "state_name": "Mato Grosso do Sul",
    "state_code": "MS"
  }
]
GET/api/getmunicipalityplacesPrivé

Propriétés (places)

Renvoie les propriétés (points stratégiques et propriétés spéciales) dans le périmètre géographique de la clé. Le périmètre est défini automatiquement par le forfait lié à la clé — communal, régional, étatique ou national — il n'est donc pas nécessaire d'indiquer la commune, l'État ou le pays dans la requête.

Paramètres

NomTaperDescription
keystringVotre clé API. Définit la portée géographique des points renvoyés.
pageintPage de pagination (par défaut 1, maximum 100).

Exemple de demande

curl -G -d "key=KEY&page=1" \
  /fr-mc/api/getmunicipalityplaces

Exemple de réponse

[
  {
    "place_id": 771,
    "user_id": 348,
    "place_address_district": "Centro",
    "place_address_sector": "Setor 04",
    "place_datetime": "2025-02-05 10:00:00",
    "place_address_lat": -7.123456,
    "place_address_lng": -34.845678,
    "place_municipality_id": 5007117,
    "place_region_id": 4,
    "place_state_id": 24,
    "place_country_id": 1,
    "place_type_id": 2,
    "place_name": "Ferro-velho Bom Preço",
    "place_coordinates": "[[-7.123, -34.845], [-7.124, -34.846]]",
    "place_subtype": 5,
    "place_area": 320.5,
    "municipality": "Vista Alegre",
    "municipality_code": "5007117",
    "state_name": "Mato Grosso do Sul",
    "state_code": "MS"
  }
]
POST/api/postcountingPrivé

Lire la soumission

Envoie la lecture d'un ovitrap. Il est possible d'envoyer des données à un ovitrap existant ou d'envoyer les données et d'installer un nouvel ovitrap en même temps.

Paramètres

NomTaperDescription
keystringVotre clé API. Définit la portée de la soumission.

Exemple de demande

curl -X POST \
  "/fr-mc/api/postcounting?key=KEY"

O corpo pode ir como form-data, x-www-form-urlencoded ou JSON — veja Como enviar o corpo de um POST.

Pour une expédition standard, où il n'est pas nécessaire d'installer un nouvel ovitrap, envoyez les champs suivants (tout est obligatoire) dans le corps de la demande (form):

{
  "ovitrap_group_id": 97,
  "ovitrap_lat": -7.000000,
  "ovitrap_lng": -8.000000,
  "date": "2025-01-20",
  "counting_observation_id": 1,
  "counting_observation": "caso o counting_observation_id seja 9",
  "counting_eggs": 5
}

Tableau avec les identifiants de chaque type d'observation (counting_observation_id):

IDSignification
1Aucune observation
2Intervalle entre l'installation et la collecte plus long que prévu
3Ovitrap ou palette manquante
4Ovitrap ou palette cassée
5Ovitrap ou palette retirée
6Ovitrap sec
7Maison fermée
8Ovitrap rempli d'eau
9Ovitrap avec peu d'eau
10Une autre observation

Pour installer un nouvel ovitrap à côté de l'envoi, obligatoire les champs : ovitrap_lat, ovitrap_lng, ovitrap_group_id

{
  "ovitrap_group_id": 96,
  "ovitrap_address_district": "Distrito",
  "ovitrap_address_street": "Rua",
  "ovitrap_address_number": "Numero",
  "ovitrap_address_complement": "Complemento",
  "ovitrap_address_loc_inst": "",
  "ovitrap_lat": -7.000000,
  "ovitrap_lng": -8.000000,
  "ovitrap_address_sector": "Setor",
  "ovitrap_responsable": "Responsavel",
  "ovitrap_block_id": "Quarteirao",
  "ovitrap_type_id": 1,
  "date": "2025-01-20",
  "counting_date_collect": "2025-01-27",
  "counting_observation_id": 1,
  "counting_observation": "caso o counting_observation_id seja 9",
  "counting_eggs": 5
}

Tableau avec les identifiants de chaque type d'ovitrap (ovitrap_type_id): envoyer 1 à l’ovitrap urbain et 2 à l’ovitrap rural. Le champ est facultatif et, lorsqu'il n'est pas envoyé, l'ovitrap est installé comme urbain :

IDSignification
1Ovitrap urbain (standard)
2Ovitrap rural
Réponses spécifiques :
  • 400 — lorsqu'un des champs obligatoires n'est pas envoyé : ovitrap_lat, ovitrap_lng, ovitrap_group_id, date
  • 400 — quando a coordenada está fora da faixa geográfica: ovitrap_lat precisa estar entre -90 e 90, e ovitrap_lng entre -180 e 180. O erro mais comum é o ponto decimal se perder na formatação do número — enviar -23374059 no lugar de -23.374059. A resposta traz os valores recebidos em ovitrap_lat e ovitrap_lng.
  • 400 — quand le ovitrap_type_id envoyé n’est ni 1 ni 2.
  • 400 — lorsqu'une des dates envoyées n'est pas au format YYYY-MM-DD. La réponse apporte la liste des champs invalides dans invalid_fields.
  • 404 — Il existe déjà un décompte pour cet ovitrap, année et semaine.
POST/api/postdeletecountingPrivé

Supprimer la lecture

Supprime la lecture d'un ovitrap.

Paramètres

NomTaperDescription
keystringVotre clé API. Définit la portée de la suppression.

Exemple de demande

curl -X POST \
  "/fr-mc/api/postdeletecounting?key=KEY"

Données requises dans le corps de la demande (form-data, x-www-form-urlencoded ou JSON):

{
  "ovitrap_group_id": 97,
  "date": "2025-01-20"
}
Réponses spécifiques :
  • 400 — quand date n'est pas envoyé.
  • 400 — lorsqu'une des dates envoyées n'est pas au format YYYY-MM-DD. La réponse apporte la liste des champs invalides dans invalid_fields.
POST/api/postdeleteovitrapPrivé

Supprimer l'ovitrap

Retirez un ovitrap.

Paramètres

NomTaperDescription
keystringVotre clé API.

Exemple de demande

curl -X POST \
  "/fr-mc/api/postdeleteovitrap?key=KEY"

Données requises dans le corps de la demande (form-data, x-www-form-urlencoded ou JSON):

{
  "ovitrap_group_id": 97
}
POST/api/postactionPrivé

Insérer une visite

Mudança de unidade em 23/09/2026: les champs action_deposit_<grupo>_larvicid passaram a ser em GRAMA, como pede a diretriz nacional. Antes eram miligrama. Se o seu sistema envia miligrama, divida por 1.000 antes de enviar — caso contrário a quantidade chega 1.000 vezes maior. O campo aceita decimais (0,5 g vai como 0.5).

Enregistrez une visite/action dans un îlot. Pour ajouter la visite à un îlot existant, envoyez le champ block_id. S'il n'existe pas, utilisez block_group_id — le système créera automatiquement l'îlot. Ce point de terminaison permet uniquement l'insertion d'îlots situés dans la municipalité du demandeur.

Paramètres

NomTaperDescription
keystringVotre clé API.

Exemple de demande

curl -X POST \
  "/fr-mc/api/postaction?key=KEY"

Données envoyées form-data, x-www-form-urlencoded, JSON ou des paramètres de requête, en utilisant block_id:

{
  "block_id": 97,
  "date": "2025-01-20",
  "block_land_residence": 10,
  "action_land_residence_out": 2,
  "action_land_residence_breedings": 1,
  "action_land_residence_treated": 1,

  "block_land_commercial": 5,
  "action_land_commercial_out": 0,
  "action_land_commercial_breedings": 0,
  "action_land_commercial_treated": 0,

  "block_land_empty": 3,
  "action_land_empty_out": 1,
  "action_land_empty_breedings": 2,
  "action_land_empty_treated": 1,

  "block_land_strategy": 1,
  "action_land_strategy_out": 0,
  "action_land_strategy_breedings": 0,
  "action_land_strategy_treated": 0,

  "block_land_special": 0,
  "action_land_special_out": 0,
  "action_land_special_breedings": 0,
  "action_land_special_treated": 0,

  "block_land_another": 2,
  "action_land_another_out": 0,
  "action_land_another_breedings": 0,
  "action_land_another_treated": 0,

  "action_deposit_a1_quantity": 4,
  "action_deposit_a1_eliminated": 2,
  "action_deposit_a1_treated": 1,
  "action_deposit_a1_larvicid": 10,

  "action_deposit_a2_quantity": 2,
  "action_deposit_a2_eliminated": 1,
  "action_deposit_a2_treated": 0,
  "action_deposit_a2_larvicid": 0,

  "action_deposit_b_quantity": 5,
  "action_deposit_b_eliminated": 5,
  "action_deposit_b_treated": 0,
  "action_deposit_b_larvicid": 0,

  "action_deposit_c_quantity": 1,
  "action_deposit_c_eliminated": 0,
  "action_deposit_c_treated": 1,
  "action_deposit_c_larvicid": 5,

  "action_deposit_d1_quantity": 0,
  "action_deposit_d1_eliminated": 0,
  "action_deposit_d1_treated": 0,
  "action_deposit_d1_larvicid": 0,

  "action_deposit_d2_quantity": 3,
  "action_deposit_d2_eliminated": 1,
  "action_deposit_d2_treated": 2,
  "action_deposit_d2_larvicid": 1.5,

  "action_deposit_e_quantity": 0,
  "action_deposit_e_eliminated": 0,
  "action_deposit_e_treated": 0,
  "action_deposit_e_larvicid": 0,

  "action_observation": "Visita realizada conforme cronograma. Foco encontrado em pneus nos fundos do imovel."
}

Opter pour block_group_id (îlot pas encore enregistré), envoyez également les données de l'îlot lui-même :

{
  "block_group_id": 97,
  "date": "2025-01-20",
  "block_address_district": "Centro Historico",
  "block_address_sector": "Setor 04 - Norte",
  "block_coordinates": "[[-7.123, -34.845], [-7.124, -34.846]]",
  "block_lat": -7.123456,
  "block_lng": -34.845678,
  "block_responsable": "Joao da Silva",

  "block_land_residence": 10,
  "action_land_residence_out": 2,
  "action_land_residence_breedings": 1,
  "action_land_residence_treated": 1,

  "block_land_commercial": 5,
  "action_land_commercial_out": 0,
  "action_land_commercial_breedings": 0,
  "action_land_commercial_treated": 0,

  "block_land_empty": 3,
  "action_land_empty_out": 1,
  "action_land_empty_breedings": 2,
  "action_land_empty_treated": 1,

  "block_land_strategy": 1,
  "action_land_strategy_out": 0,
  "action_land_strategy_breedings": 0,
  "action_land_strategy_treated": 0,

  "block_land_special": 0,
  "action_land_special_out": 0,
  "action_land_special_breedings": 0,
  "action_land_special_treated": 0,

  "block_land_another": 2,
  "action_land_another_out": 0,
  "action_land_another_breedings": 0,
  "action_land_another_treated": 0,

  "action_deposit_a1_quantity": 4,
  "action_deposit_a1_eliminated": 2,
  "action_deposit_a1_treated": 1,
  "action_deposit_a1_larvicid": 10,

  "action_deposit_a2_quantity": 2,
  "action_deposit_a2_eliminated": 1,
  "action_deposit_a2_treated": 0,
  "action_deposit_a2_larvicid": 0,

  "action_deposit_b_quantity": 5,
  "action_deposit_b_eliminated": 5,
  "action_deposit_b_treated": 0,
  "action_deposit_b_larvicid": 0,

  "action_deposit_c_quantity": 1,
  "action_deposit_c_eliminated": 0,
  "action_deposit_c_treated": 1,
  "action_deposit_c_larvicid": 5,

  "action_deposit_d1_quantity": 0,
  "action_deposit_d1_eliminated": 0,
  "action_deposit_d1_treated": 0,
  "action_deposit_d1_larvicid": 0,

  "action_deposit_d2_quantity": 3,
  "action_deposit_d2_eliminated": 1,
  "action_deposit_d2_treated": 2,
  "action_deposit_d2_larvicid": 1.5,

  "action_deposit_e_quantity": 0,
  "action_deposit_e_eliminated": 0,
  "action_deposit_e_treated": 0,
  "action_deposit_e_larvicid": 0,

  "action_observation": "Area com alta densidade de recipientes descartaveis."
}
Réponses spécifiques :
  • 400 — quand date n’est pas envoyé ou lorsqu’un des champs numériques n’est pas un numéro valide.
  • 400 — lorsqu'une des dates envoyées n'est pas au format YYYY-MM-DD. La réponse apporte la liste des champs invalides dans invalid_fields.
  • 400 — quand block_group_id n'est pas envoyé lors de la création d'un nouvel îlot.
  • 400 — quando a coordenada está fora da faixa geográfica: block_lat precisa estar entre -90 e 90, e block_lng entre -180 e 180. O erro mais comum é o ponto decimal se perder na formatação do número — enviar -23374059 no lugar de -23.374059.
  • 400 — quand block_coordinates passa de 2000 caracteres. Antes o desenho era gravado pela metade, em silêncio, e o quarteirão abria sem mapa; agora a requisição é recusada e a resposta traz o tamanho enviado em block_coordinates_length.
  • 403 — quand le block_id informé n'appartient pas à la commune clé.
  • 409 — lorsqu'il y a déjà une visite pour cet îlot, cette année et cette semaine.
POST/api/postdeleteactionPrivé

Supprimer la visite

Supprime une visite d'un îlot.

Paramètres

NomTaperDescription
keystringVotre clé API.

Exemple de demande

curl -X POST \
  "/fr-mc/api/postdeleteaction?key=KEY"

Données requises dans le corps de la demande (form-data, x-www-form-urlencoded ou JSON):

{
  "block_group_id": 97,
  "date": "2025-01-20"
}
Réponses spécifiques :
  • 400 — quand date n'est pas envoyé.
  • 400 — lorsqu'une des dates envoyées n'est pas au format YYYY-MM-DD. La réponse apporte la liste des champs invalides dans invalid_fields.
POST/api/postdeleteblockPrivé

Supprimer l'îlot

Supprime un îlot.

Paramètres

NomTaperDescription
keystringVotre clé API.

Exemple de demande

curl -X POST \
  "/fr-mc/api/postdeleteblock?key=KEY"

Données requises dans le corps de la demande (form-data, x-www-form-urlencoded ou JSON):

{
  "block_group_id": 97
}
POST/api/postedlPrivé

Inserir EDL

Cadastra um EDL (ponto estratégico de vigilância) no município da sua chave. Reenviar o mesmo edl_group_id devolve o EDL já existente em vez de duplicar, então é seguro repetir um lote.

O município é sempre o da sua chave — não é possível enviá-lo no corpo.

Obrigatórios: edl_group_id, edl_date (AAAA-MM-DD), edl_lat e edl_lng. Os demais campos são opcionais. Devolve o edl_id.

Se você usa Postman ou Insomnia, não defina o cabeçalho Content-Type à mão: a ferramenta precisa gerá-lo sozinha. Um Content-Type que não corresponde ao corpo faz os campos chegarem vazios.

Paramètres

NomTaperDescription
keystringVotre clé API.

Exemple de demande

curl -X POST \
  "/fr-mc/api/postedl?key=KEY"

Données requises dans le corps de la demande (form-data, x-www-form-urlencoded ou JSON):

{
  "edl_group_id": "EDL-014",
  "edl_date": "2026-09-01",
  "edl_lat": -23.5505,
  "edl_lng": -46.6333,
  "edl_address_district": "Centro",
  "edl_address_street": "Rua das Palmeiras",
  "edl_address_number": "128",
  "edl_address_complement": "Fundos",
  "edl_address_loc_inst": "Borracharia do Zé",
  "edl_address_sector": "03",
  "edl_responsable_agent": "M. Souza",
  "edl_responsable_home": "J. Pereira",
  "edl_block_group_id": "Q-22"
}
POST/api/postdeleteedlPrivé

Deletar EDL

Remove um EDL do município da sua chave, pelo mesmo código que você usou para cadastrá-lo.

Paramètres

NomTaperDescription
keystringVotre clé API.

Exemple de demande

curl -X POST \
  "/fr-mc/api/postdeleteedl?key=KEY"

Données requises dans le corps de la demande (form-data, x-www-form-urlencoded ou JSON):

{
  "edl_group_id": "EDL-014"
}
POST/api/postedlmaintenancePrivé

Inserir manutenção de EDL

Registra uma manutenção em um EDL. Um EDL aceita no máximo uma manutenção por data.

O município é sempre o da sua chave — não é possível enviá-lo no corpo.

Obrigatórios: edl_group_id e date (AAAA-MM-DD). A data não pode cair em semana epidemiológica futura. Repetir a mesma EDL e data devolve 409.

Os nomes antigos edl_visit_observation, edl_visit_observation_id e edl_visit_water_level continuam aceitos.

Paramètres

NomTaperDescription
keystringVotre clé API.

Exemple de demande

curl -X POST \
  "/fr-mc/api/postedlmaintenance?key=KEY"

Données requises dans le corps de la demande (form-data, x-www-form-urlencoded ou JSON):

{
  "edl_group_id": "EDL-014",
  "date": "2026-09-01",
  "edl_maintenance_observation": "Sem larvas, recipiente lavado",
  "edl_maintenance_observation_id": 1,
  "edl_maintenance_water_level": 2
}
POST/api/postdeleteedlmaintenancePrivé

Deletar manutenção de EDL

Remove uma manutenção. Ela é identificada pelo EDL mais a data, que juntos são únicos — você não precisa guardar nenhum id interno.

Paramètres

NomTaperDescription
keystringVotre clé API.

Exemple de demande

curl -X POST \
  "/fr-mc/api/postdeleteedlmaintenance?key=KEY"

Données requises dans le corps de la demande (form-data, x-www-form-urlencoded ou JSON):

{
  "edl_group_id": "EDL-014",
  "date": "2026-09-01"
}
POST/api/postplacePrivé

Inserir imóvel

Cadastra um imóvel (Ponto Estratégico ou Imóvel Especial) no município da sua chave.

O município é sempre o da sua chave — não é possível enviá-lo no corpo.

Região, estado e país saem do município da chave e não são aceitos no corpo: as quatro chaves geográficas precisam concordar entre si.

Obrigatórios: place_name, place_type_id, place_subtype, place_lat e place_lng. Devolve o place_id.

Paramètres

NomTaperDescription
keystringVotre clé API.

Exemple de demande

curl -X POST \
  "/fr-mc/api/postplace?key=KEY"

Données requises dans le corps de la demande (form-data, x-www-form-urlencoded ou JSON):

{
  "place_name": "Ferro-velho São Jorge",
  "place_type_id": 1,
  "place_subtype": 3,
  "place_lat": -23.5505,
  "place_lng": -46.6333,
  "place_address_district": "Vila Nova",
  "place_address_sector": "07",
  "place_area": 350
}
POST/api/postdeleteplacePrivé

Deletar imóvel

Remove um imóvel do município da sua chave.

Este é o único endpoint que pede um id interno: a tabela de imóveis não tem um código definido por você, ao contrário de ovitrampa, quarteirão e EDL. O place_id vem de /api/getmunicipalityplaces.

Paramètres

NomTaperDescription
keystringVotre clé API.

Exemple de demande

curl -X POST \
  "/fr-mc/api/postdeleteplace?key=KEY"

Données requises dans le corps de la demande (form-data, x-www-form-urlencoded ou JSON):

{
  "place_id": 142
}

Editar registros

Os endpoints /api/postedit* editam ovitrampas, contagens, quarteirões, visitas, EDLs, manutenções e imóveis que já existem. As regras valem para todos:

  • Escopo: só registros do município da sua chave, como nos demais POST. Registro de outro município responde 404.
  • Edição parcial: só muda o que você envia. Campo ausente fica como está; campo enviado vazio grava vazio (é assim que se apaga um complemento, por exemplo). Números, datas, coordenadas e códigos não aceitam vazio.
  • Tudo ou nada: se um dos campos for inválido, nenhum é gravado e a resposta 400 diz qual e por quê.
  • Mesmos nomes da criação: os campos têm os nomes que você já usa em /api/postcounting, /api/postaction, /api/postedlmaintenance e /api/postplace.
  • Trocar código ou data:new_ovitrap_group_id, new_block_group_id, new_edl_group_id renomeiam; nas leituras, new_date muda a data e recalcula a semana epidemiológica. Se o novo código ou a nova data já existirem, a resposta é 409 e nada muda.
  • Resposta:200 com o registro como ficou. Médias, totais e semanas que dependem do registro são recalculados na mesma chamada.
POST/api/posteditovitrapPrivé

Modifier ovitrap

Edita o cadastro de uma ovitrampa.

Identificação do registro

NomTaperDescription
ovitrap_group_idstringCódigo da ovitrampa no município.

Campos editáveis

  • new_ovitrap_group_id
  • ovitrap_address_district, ovitrap_address_street, ovitrap_address_number, ovitrap_address_complement, ovitrap_address_loc_inst, ovitrap_address_sector
  • ovitrap_responsable, ovitrap_block_id
  • ovitrap_type_id — 1 urbana, 2 rural
  • ovitrap_lat, ovitrap_lng
  • atualizar_desde — data YYYY-MM-DD. Copia o endereço e a coordenada novos para as leituras a partir dessa data. Sem ele, as leituras antigas continuam com o endereço de quando foram feitas.

A resposta traz também countings_updated: quantas leituras receberam o endereço novo.

Exemple de demande

curl -X POST "/fr-mc/api/posteditovitrap" \
  -H "Authorization: Bearer KEY" \
  -H "Content-Type: application/json" \
  -d '{"ovitrap_group_id": "97", "ovitrap_address_street": "Rua das Flores", "ovitrap_lat": -23.374059, "ovitrap_lng": -46.617245, "atualizar_desde": "2026-08-01"}'
Réponses spécifiques :
  • 400 — algum campo tem valor inválido: nada é alterado, e a resposta lista os campos em invalid_fields e o motivo de cada um em details.
  • 400 — nenhum campo editável foi enviado.
  • 404 — o registro não existe no município da sua chave.
  • 409 — já existe uma ovitrampa com o new_ovitrap_group_id no município.
POST/api/posteditcountingPrivé

Editar leitura

Edita uma leitura (contagem de ovos) de uma ovitrampa.

Identificação do registro

NomTaperDescription
ovitrap_group_idstringCódigo da ovitrampa no município.
datestringData da leitura a editar (YYYY-MM-DD).

Campos editáveis

  • counting_eggs
  • new_date, counting_date_collect
  • counting_observation, counting_observation_id (0 = sem intercorrência)
  • Onde a armadilha estava nesta leitura: counting_address_*, counting_address_lat, counting_address_lng

A média histórica de ovos da ovitrampa é recalculada.

Exemple de demande

curl -X POST "/fr-mc/api/posteditcounting" \
  -H "Authorization: Bearer KEY" \
  -H "Content-Type: application/json" \
  -d '{"ovitrap_group_id": "97", "date": "2026-09-01", "counting_eggs": 42}'
Réponses spécifiques :
  • 400 — algum campo tem valor inválido: nada é alterado, e a resposta lista os campos em invalid_fields e o motivo de cada um em details.
  • 400 — nenhum campo editável foi enviado.
  • 404 — o registro não existe no município da sua chave.
  • 409 — já existe uma leitura desta ovitrampa na new_date.
POST/api/posteditblockPrivé

Modifier l'îlot

Edita o cadastro de um quarteirão.

Identificação do registro

NomTaperDescription
block_group_idstringCódigo do quarteirão no município.

Campos editáveis

  • new_block_group_id
  • block_address_district, block_address_sector, block_responsable
  • block_lat, block_lng, block_coordinates
  • Imóveis existentes: block_land_residence, block_land_commercial, block_land_empty, block_land_strategy, block_land_another (o total é recalculado)
  • atualizar_desde — data YYYY-MM-DD. Copia o endereço e a coordenada novos para as visitas a partir dessa data. Sem ele, as visitas antigas continuam com o endereço de quando foram feitas.

A resposta traz também actions_updated.

Exemple de demande

curl -X POST "/fr-mc/api/posteditblock" \
  -H "Authorization: Bearer KEY" \
  -H "Content-Type: application/json" \
  -d '{"block_group_id": "12-A", "block_land_residence": 38, "block_address_district": "Centro"}'
Réponses spécifiques :
  • 400 — algum campo tem valor inválido: nada é alterado, e a resposta lista os campos em invalid_fields e o motivo de cada um em details.
  • 400 — nenhum campo editável foi enviado.
  • 404 — o registro não existe no município da sua chave.
  • 409 — já existe um quarteirão com o new_block_group_id no município.
POST/api/posteditactionPrivé

Editar visita

Edita uma visita a um quarteirão.

Identificação do registro

NomTaperDescription
block_group_idstringCódigo do quarteirão no município.
datestringData da visita a editar (YYYY-MM-DD).

Campos editáveis

  • new_date
  • Visitados, como em /api/postaction: block_land_residence, block_land_commercial, block_land_empty, block_land_strategy, block_land_special, block_land_another
  • action_land_<tipo>_out, _breedings, _treated
  • action_deposit_<a1|a2|b|c|d1|d2|e>_quantity, _eliminated, _treated, _larvicid (em grama, com decimais, desde 23/09/2026)
  • action_observation, action_responsable

Os totais da visita (visitados, pendentes, positivos, tratados e larvicida) e a média do quarteirão são recalculados.

Exemple de demande

curl -X POST "/fr-mc/api/posteditaction" \
  -H "Authorization: Bearer KEY" \
  -H "Content-Type: application/json" \
  -d '{"block_group_id": "12-A", "date": "2026-09-01", "block_land_residence": 21, "action_deposit_b_eliminated": 3}'
Réponses spécifiques :
  • 400 — algum campo tem valor inválido: nada é alterado, e a resposta lista os campos em invalid_fields e o motivo de cada um em details.
  • 400 — nenhum campo editável foi enviado.
  • 404 — o registro não existe no município da sua chave.
  • 409 — já existe uma visita a este quarteirão na new_date.
POST/api/posteditedlPrivé

Modifier la liste EDL

Edita o cadastro de uma EDL.

Identificação do registro

NomTaperDescription
edl_group_idstringCódigo da EDL no município.

Campos editáveis

  • new_edl_group_id
  • edl_address_*, edl_responsable_agent, edl_responsable_home, edl_block_group_id
  • edl_date, edl_lat, edl_lng
  • atualizar_desde — data YYYY-MM-DD. Copia o endereço e a coordenada novos para as manutenções a partir dessa data. Sem ele, as manutenções antigas continuam com o endereço de quando foram feitas.

A resposta traz também maintenances_updated.

Exemple de demande

curl -X POST "/fr-mc/api/posteditedl" \
  -H "Authorization: Bearer KEY" \
  -H "Content-Type: application/json" \
  -d '{"edl_group_id": "E-07", "edl_responsable_home": "Maria", "atualizar_desde": "2026-08-01"}'
Réponses spécifiques :
  • 400 — algum campo tem valor inválido: nada é alterado, e a resposta lista os campos em invalid_fields e o motivo de cada um em details.
  • 400 — nenhum campo editável foi enviado.
  • 404 — o registro não existe no município da sua chave.
  • 409 — já existe uma EDL com o new_edl_group_id no município.
POST/api/posteditedlmaintenancePrivé

Editar manutenção de EDL

Edita uma manutenção de EDL.

Identificação do registro

NomTaperDescription
edl_group_idstringCódigo da EDL no município.
datestringData da manutenção a editar (YYYY-MM-DD).

Campos editáveis

  • new_date
  • edl_maintenance_water_level, edl_maintenance_observation, edl_maintenance_observation_id (os nomes antigos edl_visit_* também valem)

O nível médio da água da EDL é recalculado.

Exemple de demande

curl -X POST "/fr-mc/api/posteditedlmaintenance" \
  -H "Authorization: Bearer KEY" \
  -H "Content-Type: application/json" \
  -d '{"edl_group_id": "E-07", "date": "2026-09-01", "edl_maintenance_water_level": 3}'
Réponses spécifiques :
  • 400 — algum campo tem valor inválido: nada é alterado, e a resposta lista os campos em invalid_fields e o motivo de cada um em details.
  • 400 — nenhum campo editável foi enviado.
  • 404 — o registro não existe no município da sua chave.
  • 409 — já existe uma manutenção desta EDL na new_date.
POST/api/posteditplacePrivé

Modifier la propriété

Edita um imóvel (ponto estratégico ou imóvel especial).

Identificação do registro

NomTaperDescription
place_idintegerId do imóvel, o mesmo de /api/postdeleteplace.

Campos editáveis

  • place_name
  • place_type_id, place_subtype (trocar só o tipo realinha o subtipo)
  • place_address_district, place_address_sector
  • place_lat, place_lng, place_coordinates, place_area

Exemple de demande

curl -X POST "/fr-mc/api/posteditplace" \
  -H "Authorization: Bearer KEY" \
  -H "Content-Type: application/json" \
  -d '{"place_id": 142, "place_name": "Borracharia Central", "place_area": 350}'
Réponses spécifiques :
  • 400 — algum campo tem valor inválido: nada é alterado, e a resposta lista os campos em invalid_fields e o motivo de cada um em details.
  • 400 — nenhum campo editável foi enviado.
  • 404 — o registro não existe no município da sua chave.
  • 403 — o imóvel é de outro município.