API de conteo de huevos

Consulta y envía datos de ovitrampas, bloques y visitas de campo directamente desde tu sistema. Esta página documenta todos los puntos finales públicos y privados disponibles.

/es-ve/apiSolicitar clave API

Acerca de la API

Esta API tiene puntos finales público y privado. La API pública devuelve datos sobre latitud, longitud y número de huevos de cada municipio participante a lo largo del tiempo, sin necesidad de autenticación. La API privada solo se recomienda para aplicaciones que funcionan en asociación con Conta Ovos, ya que expone datos confidenciales y le permite insertar, cambiar y eliminar registros.

Autenticación y claves

Para utilizar la API privada necesitarás una clave de acceso. (key). Para adquirirlo envía un email a contaovosdengue@gmail.com indicando:

  • ¿Por qué necesita acceso API?
  • Qué nivel de acceso se requiere (municipal, regional, estatal o nacional);
  • ¿De qué región geográfica eres parte?

La clave se compone de 45 letras al azar y debe ser enviado en el parámetro key de cada solicitud privada. El alcance geográfico y el plan vinculado a la clave. (api_access_municipality_id, state_id, region_id, country_id, plan) define automáticamente qué registros puede leer o cambiar; una clave municipal, por ejemplo, solo puede leer o modificar datos del propio municipio.

Paginación: los parametros page acepte un máximo de 100 en puntos finales que admitan paginación. Los valores no válidos o faltantes toman la página 1.

Códigos de respuesta

Todos los puntos finales siguen el mismo patrón de estado HTTP:

CódigoSignificado
200Solicitud procesada exitosamente.
400Falta el parámetro obligatorio o tiene un formato no válido.
403El recurso informado no pertenece al alcance (ciudad/estado/región) de la clave utilizada.
404Clave no válida (Wrong key) o recurso no encontrado.
409Ya existe un registro para esta combinación de identificador, año y semana.
500Error interno al procesar la solicitud.

Puntos finales públicos

GET/api/lastcountingpublicPúblico

Últimos recuentos publicados

Devuelve los últimos recuentos publicados por ubicación (ciudad, estado o país), con el número de huevos y datos de ovitrampas.

Parámetros

NombreTipoDescripción
statestringCódigo de estado. Ejemplo: state=RJ.
municipalitystringNombre del municipio. Ejemplo: municipality=Ponta Pora
countrystringNombre del país. Ejemplo: country=Brasil. Si se omite, se supone "Brasil".
pageintPágina de paginación (por defecto 1, máximo 100).
idintMuestra solo ocurrencias de la identificación dada. Ejemplo: id=7876.
datedateMuestra ocurrencias desde la fecha de inclusión. Ejemplo: date=2025-01-01.
date_collectdateMuestra ocurrencias desde la fecha de recolección en adelante. Ejemplo: date_collect=2024-12-12.
date_startdateFecha de inicio para filtrar los conteos. Ejemplo: date_start=2025-01-01.
date_enddateFecha de finalización para filtrar recuentos. Ejemplo: date_end=2025-12-31.

Nota: Si no se envían parámetros de ubicación, el punto final devuelve los recuentos más recientes de Brasil.

Ejemplo de solicitud

curl -G -d "municipality=Ponta%20Pora" \ /es-ve/api/lastcountingpubliccurl -G -d "state=MG" \ /es-ve/api/lastcountingpublic

Respuesta de muestra

[ { "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/getmunicipalityblockspublicPúblico

Últimas acciones en bloques

Devuelve datos sobre acciones (visitas de tratamiento) realizadas en bloques.

Parámetros

NombreTipoDescripción
statestringCódigo de estado. Ejemplo: state=RJ.
municipalitystringNombre del municipio. Ejemplo: municipality=Ponta Pora
countrystringNombre del país. Ejemplo: country=Brasil. Si se omite, se supone "Brasil".
pageintPágina de paginación (por defecto 1, máximo 100).

Ejemplo de solicitud

curl -G -d "municipality=Vista%20Alegre" \ /es-ve/api/getmunicipalityblockspubliccurl -G -d "state=MS" \ /es-ve/api/getmunicipalityblockspublic

Respuesta de muestra

[ { "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 }]

Puntos finales privados

Todos los puntos finales a continuación requieren el parámetro key con su clave API.

GET/api/lastcountingPrivado

Últimos recuentos publicados

Devuelve los últimos recuentos publicados dentro del alcance de la clave, con el número de huevos, los datos de la ovitrap y el usuario responsable.

Parámetros

NombreTipoDescripción
keystringSu clave API. Define el alcance de los recuentos devueltos.
pageintPágina de paginación (por defecto 1, máximo 100).
date_startdateFecha de inicio para filtrar los conteos. Ejemplo: date_start=2025-01-01.
date_enddateFecha de finalización para filtrar recuentos. Ejemplo: date_end=2025-12-31.

Ejemplo de solicitud

curl -G -d "key=KEY&page=1" \ /es-ve/api/lastcounting

Respuesta de muestra

[ { "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/postcountingPrivado

Leer envío

Envía la lectura de una ovitrampa. Es posible enviar datos a una ovitrampa existente o enviar los datos e instalar una nueva ovitrampa al mismo tiempo.

Parámetros

NombreTipoDescripción
keystringSu clave API. Define el alcance del envío.

Ejemplo de solicitud

curl -X POST -d "key=KEY" \ /es-ve/api/postcounting

Para envío estándar, donde no es necesario instalar una ovitrampa nueva, envíe los siguientes campos (todo obligatorio) en el cuerpo de la solicitud (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}

Tabla con los ID de cada tipo de observación (counting_observation_id):

IDSignificado
1Sin observaciones
2Intervalo entre instalación y recogida más largo de lo esperado
3Ovitrap o paleta faltante
4Ovitrap o paleta rota
5Ovitrap o paleta retirada
6Ovitrampa seca
7casa cerrada
8Ovitrampa llena de agua
9Ovitrampa con poca agua
10Otra observación

Para instalar una nueva ovitrampa junto al envío, obligatorio los campos: 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}
Respuestas específicas:
  • 400 — cuando no se envía alguno de los campos obligatorios: ovitrap_lat, ovitrap_lng, ovitrap_group_id
  • 404 — Ya hay un recuento para esta ovitrampa, año y semana.
POST/api/postdeletecountingPrivado

Eliminar lectura

Elimina la lectura de una ovitrampa.

Parámetros

NombreTipoDescripción
keystringSu clave API. Define el alcance de la eliminación.

Ejemplo de solicitud

curl -X POST -d "key=KEY" \ /es-ve/api/postdeletecounting

Datos requeridos en el cuerpo de la solicitud (form):

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

Eliminar ovitrap

Retire una ovitrampa.

Parámetros

NombreTipoDescripción
keystringSu clave API.

Ejemplo de solicitud

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

Datos requeridos en el cuerpo de la solicitud (form):

{ "ovitrap_group_id": 97}
POST/api/postactionPrivado

Insertar visita

Registrar una visita/acción en un bloque. Para agregar la visita a un bloque existente, envíe el campo block_id. Si no existe, utilice block_group_id — el sistema creará el bloque automáticamente. Este punto final solo permite la inserción de manzanas que se encuentren dentro del municipio del solicitante.

Parámetros

NombreTipoDescripción
keystringSu clave API.

Ejemplo de solicitud

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

Datos enviados en form o parámetros de consulta, utilizando 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."}

Optando por block_group_id (bloque aún no registrado), envía también los datos del propio bloque:

{ "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."}
Respuestas específicas:
  • 400 — cuando date no se envía o cuando uno de los campos numéricos no es un número válido.
  • 400 — cuando block_group_id no se envía al crear un nuevo bloque.
  • 403 — cuando el block_id informado no pertenece al municipio clave.
  • 409 — cuando ya hay visita para ese bloque, año y semana.
POST/api/postdeleteactionPrivado

Eliminar visita

Elimina una visita de un bloque.

Parámetros

NombreTipoDescripción
keystringSu clave API.

Ejemplo de solicitud

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

Datos requeridos en el cuerpo de la solicitud (form):

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

Eliminar bloque

Elimina un bloque.

Parámetros

NombreTipoDescripción
keystringSu clave API.

Ejemplo de solicitud

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

Datos requeridos en el cuerpo de la solicitud (form):

{ "block_group_id": 97}