Conta Ovos API

直接从您的系统咨询和发送产卵器、阻断和现场访问数据。此页面记录了所有可用的公共和专用端点。

/zh-cn/api请求 API 密钥

关于API

该API有端点 公共和私人. 公共 API 会随着时间的推移返回每个参与城市的纬度、经度和鸡蛋数量数据,而无需进行身份验证。仅建议与 Conta Ovos 合作的应用程序使用私有 API,因为它会公开敏感数据并允许您插入、更改和删除记录。

身份验证和密钥

要使用私有 API,您需要一个访问密钥 (key). 如需购买,请发送电子邮件至 contaovosdengue@gmail.com 陈述:

  • 为什么需要 API 访问;
  • 需要什么级别的访问权限(市、地区、州或国家);
  • 您属于哪个地理区域?

密钥由以下部分组成 45 个随机字母 并且必须在参数中发送 key 每个私人请求。与关键相关的地理范围和规划 (api_access_municipality_id, state_id, region_id, country_id, plan) 自动定义它可以读取或更改哪些记录 - 例如,市政密钥只能读取或修改市政当局本身的数据。

将密钥发送到哪里: 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". 其他 POST 字段继续出现在请求正文中。
分页: 参数 page 在支持分页的端点上最多接受 100 个。无效或缺失值占据第 1 页。

响应代码

所有端点都遵循相同的 HTTP 状态模式:

代码意义
200请求处理成功。
400Parâmetro obrigatório ausente, em formato inválido, ou corpo da requisição ilegível.
403通知的资源不属于所使用的密钥的范围(城市/州/地区)。
404密钥无效 (Wrong key) 或未找到资源。
409此标识符、年份和周组合的记录已存在。
500处理请求时发生内部错误。

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.

公共端点

GET/api/lastcountingpublic民众

最新发布数量

返回按地点(城市、州或国家)发布的最新计数,以及鸡蛋数量和产卵器数据。

参数

姓名类型描述
statestring州代码。例子: state=RJ.
municipalitystring市镇名称。例子: municipality=Ponta Pora
countrystring国家名称。例子: country=Brasil. 如果省略,则假定为“巴西”。
pageint分页页(默认 1,最大 100)。
idint仅显示给定 ID 中出现的情况。例子: id=7876.
datedate显示自包含之日起发生的事件。例子: date=2025-01-01.
date_collectdate显示从收集日期开始发生的事件。例子: date_collect=2024-12-12.
date_startdate过滤计数的开始日期。例子: date_start=2025-01-01.
date_enddate过滤计数的结束日期。例子: date_end=2025-12-31.

笔记: 如果未发送位置参数,终端将返回来自巴西的最新计数。

具体答复:
  • 400 — 当发送的任何日期不符合格式时 YYYY-MM-DD. 响应中包含无效字段列表 invalid_fields.

请求示例

curl -G -d "municipality=Ponta%20Pora" \
  /zh-cn/api/lastcountingpublic

curl -G -d "state=MG" \
  /zh-cn/api/lastcountingpublic

答案示例

[
  {
    "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/getmunicipalityblocksvisitpublic民众

街区访问

返回按块进行的访问(治疗操作)的数据 — 每次访问一行,而不是每个块。

参数

姓名类型描述
statestring州代码。例子: state=RJ.
municipalitystring市镇名称。例子: municipality=Ponta Pora
countrystring国家名称。例子: country=Brasil. 如果省略,则假定为“巴西”。
pageint分页页(默认 1,最大 100)。

请求示例

curl -G -d "municipality=Vista%20Alegre" \
  /zh-cn/api/getmunicipalityblocksvisitpublic

curl -G -d "state=MS" \
  /zh-cn/api/getmunicipalityblocksvisitpublic

答案示例

[
  {
    "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-2民众

注册街区

返回在市政府注册的街区 — 每个街区一行,包含多边形、按类型划分的总属性和平均股数。

新端点。 如果您正在寻找分块进行的访问,请使用 /api/getmunicipalityblocksvisitpublic. 由于它是公共端点,因此响应不包括负责块或用户/团队标识符的代理。

参数

姓名类型描述
statestring州代码。例子: state=RJ.
municipalitystring市镇名称。例子: municipality=Ponta Pora
countrystring国家名称。例子: country=Brasil. 如果省略,则假定为“巴西”。
pageint分页页(默认 1,最大 100)。

请求示例

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

curl -G -d "state=MT" \
  /zh-cn/api/getmunicipalityblockspublic-2

答案示例

[
  {
    "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/getmunicipalityedlspublic民众

注册 EDL

从市政府注册的 EDL(从代理处定期维护的战略点)返回数据。

参数

姓名类型描述
statestring州代码。例子: state=RJ.
municipalitystring市镇名称。例子: municipality=Ponta Pora
countrystring国家名称。例子: country=Brasil. 如果省略,则假定为“巴西”。
pageint分页页(默认 1,最大 100)。

请求示例

curl -G -d "municipality=Vista%20Alegre" \
  /zh-cn/api/getmunicipalityedlspublic

curl -G -d "state=MS" \
  /zh-cn/api/getmunicipalityedlspublic

答案示例

[
  {
    "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/getmunicipalityedlmaintenancepublic民众

EDL维护

返回有关 EDL 上执行的维护的数据,包括每次维护期间记录的观察结果。

取代/api/getmunicipalityedlvisitspublic. EDL 接受维护,而不是访问——田地已经从 edl_visit_* 到 edl_maintenance_*. 旧 URL 继续工作并继续返回旧名称,以免破坏生产中的集成,但它已停止。

参数

姓名类型描述
statestring州代码。例子: state=RJ.
municipalitystring市镇名称。例子: municipality=Ponta Pora
countrystring国家名称。例子: country=Brasil. 如果省略,则假定为“巴西”。
pageint分页页(默认 1,最大 100)。

请求示例

curl -G -d "municipality=Vista%20Alegre" \
  /zh-cn/api/getmunicipalityedlmaintenancepublic

curl -G -d "state=MS" \
  /zh-cn/api/getmunicipalityedlmaintenancepublic

答案示例

[
  {
    "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/getmunicipalityovitrapspublic民众

注册产卵器

返回来自市政府注册的产卵器(卵监测点)的数据。

参数

姓名类型描述
statestring州代码。例子: state=RJ.
municipalitystring市镇名称。例子: municipality=Ponta Pora
countrystring国家名称。例子: country=Brasil. 如果省略,则假定为“巴西”。
pageint分页页(默认 1,最大 100)。

请求示例

curl -G -d "municipality=Vista%20Alegre" \
  /zh-cn/api/getmunicipalityovitrapspublic

curl -G -d "state=MS" \
  /zh-cn/api/getmunicipalityovitrapspublic

答案示例

[
  {
    "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/getmunicipalityplacespublic民众

房产 (places)

返回按市镇登记的房产(战略点和特殊房产)。

参数

姓名类型描述
statestring州代码。例子: state=RJ.
municipalitystring市镇名称。例子: municipality=Ponta Pora
countrystring国家名称。例子: country=Brasil. 如果省略,则假定为“巴西”。
pageint分页页(默认 1,最大 100)。

请求示例

curl -G -d "municipality=Vista%20Alegre" \
  /zh-cn/api/getmunicipalityplacespublic

curl -G -d "state=MS" \
  /zh-cn/api/getmunicipalityplacespublic

答案示例

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

私有端点

以下所有端点都需要该参数 key 使用您的 API 密钥。

GET/api/lastcounting私人的

最新发布数量

返回在键范围内释放的最后计数,包括鸡蛋数量、产卵器数据和负责的用户。

参数

姓名类型描述
keystring您的 API 密钥。定义返回计数的范围。
pageint分页页(默认 1,最大 100)。
date_startdate过滤计数的开始日期。例子: date_start=2025-01-01.
date_enddate过滤计数的结束日期。例子: date_end=2025-12-31.
具体答复:
  • 400 — 当发送的任何日期不符合格式时 YYYY-MM-DD. 响应中包含无效字段列表 invalid_fields.

请求示例

curl -G -d "key=KEY&page=1" \
  /zh-cn/api/lastcounting

答案示例

[
  {
    "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/getmunicipalityedls私人的

注册 EDL

从键的地理范围内的 EDL(代理定期访问的战略点)返回数据。范围由与关键(市、地区、州或国家)相关的计划自动定义,无需在请求中告知市、州或国家。

参数

姓名类型描述
keystring您的 API 密钥。定义返回的 EDL 的地理范围。
pageint分页页(默认 1,最大 100)。

请求示例

curl -G -d "key=KEY&page=1" \
  /zh-cn/api/getmunicipalityedls

答案示例

[
  {
    "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/getmunicipalityedlvisits私人的

EDL维护

注意:来自此专用端点的响应字段以前缀继续 edl_visit_*. 只有等效的公共端点开始使用 edl_maintenance_*.

返回在关键的地理范围内对 EDL 进行的访问的数据,包括每次访问记录的观察结果。范围由与关键(市、地区、州或国家)相关的计划自动定义,无需在请求中告知市、州或国家。

参数

姓名类型描述
keystring您的 API 密钥。定义回访的地理范围。
pageint分页页(默认 1,最大 100)。

请求示例

curl -G -d "key=KEY&page=1" \
  /zh-cn/api/getmunicipalityedlvisits

答案示例

[
  {
    "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/getmunicipalityblocks私人的

Visitas em quarteirões

返回在键的地理范围内分块执行的操作(治疗就诊)的数据。范围由与关键(市、地区、州或国家)相关的计划自动定义,无需在请求中告知市、州或国家。

参数

姓名类型描述
keystring您的 API 密钥。定义返回操作的地理范围。
pageint分页页(默认 1,最大 100)。

请求示例

curl -G -d "key=KEY&page=1" \
  /zh-cn/api/getmunicipalityblocks

答案示例

[
  {
    "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/getmunicipalityovitraps私人的

注册产卵器

返回来自密钥地理范围内的产卵器(虫卵监测点)的数据。范围由与关键(市、地区、州或国家)相关的计划自动定义,无需在请求中告知市、州或国家。

参数

姓名类型描述
keystring您的 API 密钥。设置返回的产卵器的地理范围。
pageint分页页(默认 1,最大 100)。

请求示例

curl -G -d "key=KEY&page=1" \
  /zh-cn/api/getmunicipalityovitraps

答案示例

[
  {
    "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/getmunicipalityplaces私人的

房产 (places)

返回密钥地理范围内的房产(战略点和特殊房产)。范围由与密钥关联的套餐自动确定——市镇、区域、州或国家——因此请求中无需指明市镇、州或国家。

参数

姓名类型描述
keystring您的 API 密钥。定义返回点的地理范围。
pageint分页页(默认 1,最大 100)。

请求示例

curl -G -d "key=KEY&page=1" \
  /zh-cn/api/getmunicipalityplaces

答案示例

[
  {
    "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/postcounting私人的

阅读提交内容

发送产卵器的读数。可以将数据发送到现有的产卵器,或者在发送数据的同时安装新的产卵器。

参数

姓名类型描述
keystring您的 API 密钥。定义提交的范围。

请求示例

curl -X POST \
  "/zh-cn/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.

对于标准运输,无需安装新的产卵器,请发送以下字段 (全部强制) 在请求正文中 (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
}

包含每种观察类型的 ID 的表格 (counting_observation_id):

ID意义
1没有观察结果
2安装和收集之间的间隔比预期长
3产卵器或缺少调色板
4产卵器或损坏的调色板
5产卵器或调色板已移除
6干式产卵器
7封闭式房屋
8充满水的产卵器
9产卵器加少量水
10另一个观察

要在货物旁边安装新的产卵器, 强制的 字段: 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
}

包含每种类型诱蛋器 ID 的表格 (ovitrap_type_id): 将 1 只送到城市产卵器,2 只送到农村产卵器。 该字段是可选的,如果未发送,则产卵器将安装为城市:

ID意义
1城市诱产卵器 (标准)
2农村诱产卵器
具体答复:
  • 400 — 当未发送任何必填字段时: 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 — 当 ovitrap_type_id 发送的既不是 1 也不是 2。
  • 400 — 当发送的任何日期不符合格式时 YYYY-MM-DD. 响应中包含无效字段列表 invalid_fields.
  • 404 — 已经对这个诱产蛋器进行了年份和星期的计数。
POST/api/postdeletecounting私人的

删除读数

删除产卵器的读数。

参数

姓名类型描述
keystring您的 API 密钥。定义删除范围。

请求示例

curl -X POST \
  "/zh-cn/api/postdeletecounting?key=KEY"

请求正文中所需的数据 (form-data, x-www-form-urlencoded ou JSON):

{
  "ovitrap_group_id": 97,
  "date": "2025-01-20"
}
具体答复:
  • 400 — 什么时候 date 未发送。
  • 400 — 当发送的任何日期不符合格式时 YYYY-MM-DD. 响应中包含无效字段列表 invalid_fields.
POST/api/postdeleteovitrap私人的

删除诱产卵器

移除诱产卵器。

参数

姓名类型描述
keystring您的 API 密钥。

请求示例

curl -X POST \
  "/zh-cn/api/postdeleteovitrap?key=KEY"

请求正文中所需的数据 (form-data, x-www-form-urlencoded ou JSON):

{
  "ovitrap_group_id": 97
}
POST/api/postaction私人的

插入访问

Mudança de unidade em 23/09/2026: 田野 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).

在块中注册访问/操作。要将访问添加到现有块,请发送字段 block_id. 如果不存在,则使用 block_group_id — 系统会自动创建街区。此端点仅允许插入申请人所在城市内的块。

参数

姓名类型描述
keystring您的 API 密钥。

请求示例

curl -X POST \
  "/zh-cn/api/postaction?key=KEY"

数据已发送 form-data, x-www-form-urlencoded, JSON 或查询参数,使用 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."
}

选择 block_group_id (块尚未注册),还发送块本身的数据:

{
  "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."
}
具体答复:
  • 400 — 什么时候 date 未发送或当数字字段之一不是有效数字时。
  • 400 — 当发送的任何日期不符合格式时 YYYY-MM-DD. 响应中包含无效字段列表 invalid_fields.
  • 400 — 什么时候 block_group_id 创建新块时不会发送。
  • 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 — 什么时候 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 — 当 block_id 通报不属于重点直辖市。
  • 409 — 当该街区、年份和周已经有访问时。
POST/api/postdeleteaction私人的

删除访问

从一个块中删除一次访问。

参数

姓名类型描述
keystring您的 API 密钥。

请求示例

curl -X POST \
  "/zh-cn/api/postdeleteaction?key=KEY"

请求正文中所需的数据 (form-data, x-www-form-urlencoded ou JSON):

{
  "block_group_id": 97,
  "date": "2025-01-20"
}
具体答复:
  • 400 — 什么时候 date 未发送。
  • 400 — 当发送的任何日期不符合格式时 YYYY-MM-DD. 响应中包含无效字段列表 invalid_fields.
POST/api/postdeleteblock私人的

删除街区

移除一个街区。

参数

姓名类型描述
keystring您的 API 密钥。

请求示例

curl -X POST \
  "/zh-cn/api/postdeleteblock?key=KEY"

请求正文中所需的数据 (form-data, x-www-form-urlencoded ou JSON):

{
  "block_group_id": 97
}
POST/api/postedl私人的

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.

参数

姓名类型描述
keystring您的 API 密钥。

请求示例

curl -X POST \
  "/zh-cn/api/postedl?key=KEY"

请求正文中所需的数据 (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/postdeleteedl私人的

Deletar EDL

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

参数

姓名类型描述
keystring您的 API 密钥。

请求示例

curl -X POST \
  "/zh-cn/api/postdeleteedl?key=KEY"

请求正文中所需的数据 (form-data, x-www-form-urlencoded ou JSON):

{
  "edl_group_id": "EDL-014"
}
POST/api/postedlmaintenance私人的

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.

参数

姓名类型描述
keystring您的 API 密钥。

请求示例

curl -X POST \
  "/zh-cn/api/postedlmaintenance?key=KEY"

请求正文中所需的数据 (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/postdeleteedlmaintenance私人的

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.

参数

姓名类型描述
keystring您的 API 密钥。

请求示例

curl -X POST \
  "/zh-cn/api/postdeleteedlmaintenance?key=KEY"

请求正文中所需的数据 (form-data, x-www-form-urlencoded ou JSON):

{
  "edl_group_id": "EDL-014",
  "date": "2026-09-01"
}
POST/api/postplace私人的

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.

参数

姓名类型描述
keystring您的 API 密钥。

请求示例

curl -X POST \
  "/zh-cn/api/postplace?key=KEY"

请求正文中所需的数据 (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/postdeleteplace私人的

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.

参数

姓名类型描述
keystring您的 API 密钥。

请求示例

curl -X POST \
  "/zh-cn/api/postdeleteplace?key=KEY"

请求正文中所需的数据 (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/posteditovitrap私人的

编辑产卵器

Edita o cadastro de uma ovitrampa.

Identificação do registro

姓名类型描述
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.

请求示例

curl -X POST "/zh-cn/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"}'
具体答复:
  • 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/posteditcounting私人的

Editar leitura

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

Identificação do registro

姓名类型描述
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.

请求示例

curl -X POST "/zh-cn/api/posteditcounting" \
  -H "Authorization: Bearer KEY" \
  -H "Content-Type: application/json" \
  -d '{"ovitrap_group_id": "97", "date": "2026-09-01", "counting_eggs": 42}'
具体答复:
  • 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/posteditblock私人的

编辑街区

Edita o cadastro de um quarteirão.

Identificação do registro

姓名类型描述
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.

请求示例

curl -X POST "/zh-cn/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"}'
具体答复:
  • 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/posteditaction私人的

Editar visita

Edita uma visita a um quarteirão.

Identificação do registro

姓名类型描述
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.

请求示例

curl -X POST "/zh-cn/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}'
具体答复:
  • 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/posteditedl私人的

编辑 EDL

Edita o cadastro de uma EDL.

Identificação do registro

姓名类型描述
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.

请求示例

curl -X POST "/zh-cn/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"}'
具体答复:
  • 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/posteditedlmaintenance私人的

Editar manutenção de EDL

Edita uma manutenção de EDL.

Identificação do registro

姓名类型描述
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.

请求示例

curl -X POST "/zh-cn/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}'
具体答复:
  • 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/posteditplace私人的

编辑房产

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

Identificação do registro

姓名类型描述
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

请求示例

curl -X POST "/zh-cn/api/posteditplace" \
  -H "Authorization: Bearer KEY" \
  -H "Content-Type: application/json" \
  -d '{"place_id": 142, "place_name": "Borracharia Central", "place_area": 350}'
具体答复:
  • 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.