API de comptage des œufs

Consultez et envoyez les données d'ovitrap, de blocage 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-fr/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.

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.
400Paramètre obligatoire manquant ou dans un format invalide.
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.

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.

Exemple de demande

curl -G -d "municipality=Ponta%20Pora" \ /fr-fr/api/lastcountingpubliccurl -G -d "state=MG" \ /fr-fr/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/getmunicipalityblockspublicPublique

Dernières actions dans les blocs

Renvoie les données sur les actions (visites de traitement) effectuées en blocs.

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-fr/api/getmunicipalityblockspubliccurl -G -d "state=MS" \ /fr-fr/api/getmunicipalityblockspublic

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 }]

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.

Exemple de demande

curl -G -d "key=KEY&page=1" \ /fr-fr/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" }]
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 -d "key=KEY" \ /fr-fr/api/postcounting

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", "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}
Réponses spécifiques :
  • 400 — lorsqu'un des champs obligatoires n'est pas envoyé : ovitrap_lat, ovitrap_lng, ovitrap_group_id
  • 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 -d "key=KEY" \ /fr-fr/api/postdeletecounting

Données requises dans le corps de la demande (form):

{ "ovitrap_group_id": 97, "date": "2025-01-20"}
POST/api/postdeleteovitrapPrivé

Supprimer l'ovitrap

Retirez un ovitrap.

Paramètres

NomTaperDescription
keystringVotre clé API.

Exemple de demande

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

Données requises dans le corps de la demande (form):

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

Insérer une visite

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

Paramètres

NomTaperDescription
keystringVotre clé API.

Exemple de demande

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

Données envoyées form 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": 15, "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 (bloc pas encore enregistré), envoyez également les données du bloc 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": 15, "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 — quand block_group_id n'est pas envoyé lors de la création d'un nouveau bloc.
  • 403 — quand le block_id informé n'appartient pas à la commune clé.
  • 409 — lorsqu'il y a déjà une visite pour ce bloc, cette année et cette semaine.
POST/api/postdeleteactionPrivé

Supprimer la visite

Supprime une visite d'un bloc.

Paramètres

NomTaperDescription
keystringVotre clé API.

Exemple de demande

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

Données requises dans le corps de la demande (form):

{ "block_group_id": 97, "date": "2025-01-20"}
POST/api/postdeleteblockPrivé

Supprimer le bloc

Supprime un bloc.

Paramètres

NomTaperDescription
keystringVotre clé API.

Exemple de demande

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

Données requises dans le corps de la demande (form):

{ "block_group_id": 97}