关于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 请求处理成功。 400 Parâ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:
Formato Content-TypeFormulário simples application/x-www-form-urlencodedFormulário multipart multipart/form-dataJSON application/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-mo/api/lastcountingpublic
curl -G -d "state=MG" \
/zh-mo/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-mo/api/getmunicipalityblocksvisitpublic
curl -G -d "state=MS" \
/zh-mo/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-mo/api/getmunicipalityblockspublic-2
curl -G -d "state=MT" \
/zh-mo/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-mo/api/getmunicipalityedlspublic
curl -G -d "state=MS" \
/zh-mo/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-mo/api/getmunicipalityedlmaintenancepublic
curl -G -d "state=MS" \
/zh-mo/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-mo/api/getmunicipalityovitrapspublic
curl -G -d "state=MS" \
/zh-mo/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-mo/api/getmunicipalityplacespublic
curl -G -d "state=MS" \
/zh-mo/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-mo/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-mo/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-mo/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-mo/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-mo/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-mo/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-mo/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 只送到农村产卵器。 该字段是可选的,如果未发送,则产卵器将安装为城市:
具体答复: 400 — 当未发送任何必填字段时: ovitrap_lat, ovitrap_lng, ovitrap_group_id, date400 — 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-mo/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-mo/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-mo/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-mo/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-mo/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-mo/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-mo/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-mo/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-mo/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-mo/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-mo/api/postdeleteplace?key=KEY" 请求正文中所需的数据 (form-data, x-www-form-urlencoded ou JSON):
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_idstring Código da ovitrampa no município.
Campos editáveis new_ovitrap_group_idovitrap_address_district, ovitrap_address_street, ovitrap_address_number, ovitrap_address_complement, ovitrap_address_loc_inst, ovitrap_address_sectorovitrap_responsable, ovitrap_block_idovitrap_type_id — 1 urbana, 2 ruralovitrap_lat, ovitrap_lngatualizar_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-mo/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_idstring Código da ovitrampa no município. datestring Data da leitura a editar (YYYY-MM-DD).
Campos editáveis counting_eggsnew_date, counting_date_collectcounting_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-mo/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_idstring Código do quarteirão no município.
Campos editáveis new_block_group_idblock_address_district, block_address_sector, block_responsableblock_lat, block_lng, block_coordinatesImó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-mo/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_idstring Código do quarteirão no município. datestring Data da visita a editar (YYYY-MM-DD).
Campos editáveis new_dateVisitados, 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, _treatedaction_deposit_<a1|a2|b|c|d1|d2|e>_quantity, _eliminated, _treated, _larvicid (em grama, com decimais, desde 23/09/2026)action_observation, action_responsableOs totais da visita (visitados, pendentes, positivos, tratados e larvicida) e a média do quarteirão são recalculados.
请求示例 复制 curl -X POST "/zh-mo/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_idstring Código da EDL no município.
Campos editáveis new_edl_group_idedl_address_*, edl_responsable_agent, edl_responsable_home, edl_block_group_idedl_date, edl_lat, edl_lngatualizar_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-mo/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_idstring Código da EDL no município. datestring Data da manutenção a editar (YYYY-MM-DD).
Campos editáveis new_dateedl_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-mo/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_idinteger Id do imóvel, o mesmo de /api/postdeleteplace.
Campos editáveis place_nameplace_type_id, place_subtype (trocar só o tipo realinha o subtipo)place_address_district, place_address_sectorplace_lat, place_lng, place_coordinates, place_area请求示例 复制 curl -X POST "/zh-mo/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.