A API SINAPI do Orçamentador oferece acesso estruturado e confiável aos dados de insumos, composições e preços utilizados na construção civil, baseados na Tabela SINAPI (Sistema Nacional de Pesquisa de Custos e Índices da Construção Civil). Seu objetivo é tornar essas informações facilmente integráveis a sistemas, softwares e automações profissionais.
A API foi projetada para permitir que sistemas externos consultem e utilizem os dados do Orçamentador em tempo real, possibilitando:
Esta API foi desenvolvida para atender:
Todas as requisições exigem uma API Key, que deve ser enviada como parâmetro na URL ou no cabeçalho X-API-KEY da requisição.
Autenticação por API Key (GET) na url
https://orcamentador.com.br/api/[ENDPOINT]/?apikey=SUA_CHAVE
Autenticação via Header HTTP
GET /api/[ENDPOINT]/
Headers:
X-API-Key: SUA_CHAVE
Para solicitar uma chave de acesso à API (gratuita ou comercial), veja a seção Aquisição da chave da API-SINAPI
Retorna uma lista paginada de insumos da base SINAPI, ou um insumo específico se código e estado forem informados.
| Parâmetro | Descrição | Observações |
|---|---|---|
apikey |
Chave de acesso à API | Obrigatório |
page |
Número da página | Obrigatório |
limit |
Quantidade de registros por página | Obrigatório — Máximo: 100 |
codigo |
Filtro por código | Opcional — Obrigatório se usado com estado |
estado |
Sigla do estado | Obrigatório se usado com codigo; caso contrário, o preço não é exibido |
nome |
Busca por nome | Opcional — Não usar junto com codigo |
modo_busca |
Modo de filtragem para a busca por nome |
Padrão: contemOpções: contem, comeca_com, termina_com, igual
|
tipo |
Tipo de item (material, mão de obra, equipamento...) | Opcional |
regime |
Regime de preço. | Opcional. Opções: NAO_DESONERADO, DESONERADO, TODOS (padrão). |
sort |
Campo para ordenação | Opções: codigo, nome, tipo |
order |
Direção da ordenação | Opções: asc ou desc |
output |
Formato da resposta | Padrão: json — Opções: json, xml |
data_ref |
Data de referência | Opcional — Formato: AAAA-MM-01 |
detail |
Opcional. Exibe descrição detalhada do insumo | Padrão: false — Opções: true, false |
Lista de insumos contendo “cimento”, ordenados por nome:
/insumos/?apikey=SUA_CHAVE&page=1&limit=20&nome=cimento&estado=SP&sort=nome&order=asc
Retorna o insumo código 366 (areia fina) para SP:
/insumos/?apikey=SUA_CHAVE&codigo=366&estado=SP
Lista de insumos desonerados para SP:
/insumos/?apikey=SUA_CHAVE&page=1&limit=20&estado=SP®ime=DESONERADO
Usa o modo de busca comeca_com:
/insumos/?apikey=SUA_CHAVE&page=1&limit=15&nome=areia&modo_busca=comeca_com
Exibe apenas itens cujo tipo é “material”:
/insumos/?apikey=SUA_CHAVE&page=1&limit=30&tipo=material&sort=codigo&order=asc
Mesmo endpoint, porém com resposta em XML:
/insumos/?apikey=SUA_CHAVE&page=1&limit=10&nome=brita&output=xml
Exemplo usando data de referência:
/insumos/?apikey=SUA_CHAVE&page=1&limit=20&estado=RJ&data_ref=2024-05-01
Os valores retornados são sempre os mais recentes.
Para consultar um mês específico da tabela SINAPI, use o parâmetro
data_ref no formato AAAA-MM-01.
Exemplo:
data_ref=2025-03-01
No parâmetro estado, se for informado o valor BR, a API retornará os preços médios nacionais dos insumos.
Se algum preço de insumo não estiver disponível para o estado solicitado, a flag origem_preco, indicará a origem do valor como media, indicando que o preço retornado é a média nacional, caso contrário o valor retornado da flag origem_preco será: principal.
Ao utilizar o parâmetro regime, com o valor todos (ou sem valor), as flags de preços retornadas serão preco_desonerado e preco_naodesonerado. Se especificado o valor desonerado ou nao_desonerado, a flag retornada será preco com o respectivo valor.
Retorna uma lista paginada de composições da base SINAPI, ou uma composição específica se código e estado forem informados.
| Parâmetro | Descrição | Observações |
|---|---|---|
apikey |
Chave de acesso à API | Obrigatório |
page |
Número da página | Obrigatório |
limit |
Quantidade de registros por página | Obrigatório — Máx: 100 |
codigo |
Filtro por código da composição | Opcional — Obrigatório se usado com estado |
estado |
Sigla do estado | Obrigatório se usado com codigo |
nome |
Busca pelo nome da composição | Opcional — Não usar com codigo |
modo_busca |
Modo de filtragem para nome |
Opcional — Padrão: contem Opções: contem, comeca_com, termina_com, igual
|
sort |
Campo para ordenação | Opcional — Padrão: codigo Opções: codigo, nome, unidade |
order |
Direção da ordenação | Opcional — Padrão: asc Opções: asc, desc |
filtro |
Filtra as composições de acordo com o grupo, classe ou tipo | Opcional — Formato: filtro@valor. Exemplo: grupo@Acessibilidade ou classe@INHI ou tipo@0251Veja a lista completa de grupos, classes e tipos nas documentações do SINAPI. |
regime |
Regime de preço. | Opcional — Opções: NAO_DESONERADO, DESONERADO, TODOS (padrão). |
output |
Formato da resposta | Opcional — Padrão: json — Opções: json, xml |
data_ref |
Data de referência para preços | Opcional — Formato: AAAA-MM-01 |
Retorna composições de SP, ordenadas por nome (desc):
/composicoes/?apikey=SUA_CHAVE&page=1&limit=10&estado=SP&sort=nome&order=desc
Retorna os dados de uma composição, incluindo os itens (insumos ou subcomposições).
| Parâmetro | Descrição | Observações |
|---|---|---|
apikey |
Chave de acesso da API | Obrigatório |
codigo |
Código da composição | Obrigatório |
estado |
Sigla do estado (ex.: SP, RJ, BA) | Obrigatório |
regime |
Regime de preço. | Opcional. Opções: NAO_DESONERADO, DESONERADO, TODOS (padrão). |
output |
Formato da resposta | Opcional — valores: json (padrão) ou xml |
data_ref |
Data de referência dos preços | Opcional — formato: AAAA-MM-01 |
Retornar a composição código 98460 com preços de SP e seus itens
/api/composicao/?apikey=SUA_CHAVE&codigo=98460&estado=SP
{
"codigo": 98460,
"nome": "PISO PARA CONSTRUÇÃO TEMPORÁRIA EM MADEIRA, SEM REAPROVEITAMENTO. AF_03/2024",
"unidade": "m²",
"preco_desonerado": "71.13",
"preco_naodesonerado": "73.65",
"data_referencia": "2025-09-01 00:00:00",
"estado": 26,
"itens": [
{
"tipo": "COMPOSICAO",
"codigo": "91693",
"unidade": "CHI",
"quantidade": 0.2832,
"nome": "SERRA CIRCULAR DE BANCADA COM MOTOR ELÉTRICO POTÊNCIA DE 5HP, COM COIFA PARA DISCO 10\" - CHI DIURNO. AF_08/2015",
"preco_desonerado": "35.65",
"preco_naodesonerado": "38.94"
},
{
"tipo": "COMPOSICAO",
"codigo": "91692",
"unidade": "CHP",
"quantidade": 0.0705,
"nome": "SERRA CIRCULAR DE BANCADA COM MOTOR ELÉTRICO POTÊNCIA DE 5HP, COM COIFA PARA DISCO 10\" - CHP DIURNO. AF_08/2015",
"preco_desonerado": "36.89",
"preco_naodesonerado": "40.18"
},
{
"tipo": "COMPOSICAO",
"codigo": "88262",
"unidade": "h",
"quantidade": 0.288,
"nome": "CARPINTEIRO DE FORMAS COM ENCARGOS COMPLEMENTARES",
"preco_desonerado": "32.31",
"preco_naodesonerado": "35.11"
},
{
"tipo": "COMPOSICAO",
"codigo": "88239",
"unidade": "h",
"quantidade": 0.216,
"nome": "AJUDANTE DE CARPINTEIRO COM ENCARGOS COMPLEMENTARES",
"preco_desonerado": "30.47",
"preco_naodesonerado": "33.05"
},
{
"tipo": "INSUMO",
"codigo": "6194",
"unidade": "m",
"quantidade": 7.326,
"nome": "TABUA *2,5 X 15 CM EM PINUS, MISTA OU EQUIVALENTE DA REGIAO - BRUTA",
"tipo_insumo": "MATERIAL",
"preco_desonerado": "5.81",
"preco_naodesonerado": "5.81"
}
]
}
Retorna todos os insumos que compõem uma determinada composição, expandindo automaticamente qualquer subcomposição até o nível de insumos finais. O resultado inclui o valor total de cada insumo e pode ser ordenado por impacto financeiro, permitindo realizar uma análise no formato de Curva ABC da composição. Esse endpoint é essencial para entender quais insumos representam a maior parcela do custo e para apoiar decisões de orçamento e otimização.
| Parâmetro | Descrição | Observações |
|---|---|---|
apikey |
Chave de acesso da API | Obrigatório |
codigo |
Código da composição | Obrigatório |
estado |
Sigla do estado (ex.: SP, RJ, BA) | Obrigatório |
regime |
Regime de preço. | Obrigatório. Opções: NAO_DESONERADO, DESONERADO |
output |
Formato da resposta | Opcional — valores: json (padrão) ou xml |
data_ref |
Data de referência dos preços | Opcional — formato: AAAA-MM-01 |
sort |
Campo para ordenar os insumos | Opcional — valores: nome, codigo, tipo, unidade, valor_total, quantidade, preco_unitario. Padrão: valor_total |
order |
Direção da ordenação | Opcional — valores: asc, desc. Padrão: desc |
Retornar composição código 88239, expandida a nível de insumos, com preços de PB, com regime desonerado:
api/composicao_explode/?apikey=SUA_CHAVE&codigo=88239&estado=pb®ime=desonerado
{
"codigo": 88239,
"descricao": "AJUDANTE DE CARPINTEIRO COM ENCARGOS COMPLEMENTARES",
"unidade": "h",
"valor_total": 20.2,
"mao_de_obra": 15.1097764,
"regime": "desonerado",
"estado": "Paraíba (PB)",
"data_referencia": "2025-09-01 00:00:00",
"insumos": [
{
"codigo": "6117",
"nome": "CARPINTEIRO AUXILIAR (HORISTA)",
"unidade": "h",
"preco_unitario": 14.89,
"quantidade": 1.01476,
"valor_total": 15.1097764,
"tipo": "MAO DE OBRA"
},
{
"codigo": "43483",
"nome": "EPI - FAMILIA CARPINTEIRO DE FORMAS - HORISTA (ENCARGOS COMPLEMENTARES - COLETADO CAIXA)",
"unidade": "h",
"preco_unitario": 1.43,
"quantidade": 1,
"valor_total": 1.43,
"tipo": "ENCARGOS COMPLEMENTARES"
},
{
"codigo": "37372",
"nome": "EXAMES - HORISTA (COLETADO CAIXA - ENCARGOS COMPLEMENTARES)",
"unidade": "h",
"preco_unitario": 1.43,
"quantidade": 1,
"valor_total": 1.43,
"tipo": "ENCARGOS COMPLEMENTARES"
},
{
"codigo": "37370",
"nome": "ALIMENTACAO - HORISTA (COLETADO CAIXA - ENCARGOS COMPLEMENTARES)",
"unidade": "h",
"preco_unitario": 0.92,
"quantidade": 1,
"valor_total": 0.92,
"tipo": "ENCARGOS COMPLEMENTARES"
},
{
"codigo": "37371",
"nome": "TRANSPORTE - HORISTA (COLETADO CAIXA - ENCARGOS COMPLEMENTARES)",
"unidade": "h",
"preco_unitario": 0.8,
"quantidade": 1,
"valor_total": 0.8,
"tipo": "ENCARGOS COMPLEMENTARES"
},
{
"codigo": "43459",
"nome": "FERRAMENTAS - FAMILIA CARPINTEIRO DE FORMAS - HORISTA (ENCARGOS COMPLEMENTARES - COLETADO CAIXA)",
"unidade": "h",
"preco_unitario": 0.44,
"quantidade": 1,
"valor_total": 0.44,
"tipo": "ENCARGOS COMPLEMENTARES"
},
{
"codigo": "37373",
"nome": "SEGURO - HORISTA (COLETADO CAIXA - ENCARGOS COMPLEMENTARES)",
"unidade": "h",
"preco_unitario": 0.08,
"quantidade": 1,
"valor_total": 0.08,
"tipo": "ENCARGOS COMPLEMENTARES"
}
]
}
Retorna o histórico de preços de um insumo ou composição durante um período especificado.
| Parâmetro | Descrição | Observações |
|---|---|---|
apikey |
Chave de acesso da API | Obrigatório |
codigo |
Código do insumo ou composição | Obrigatório |
estado |
Sigla do estado (SP, RJ, MG...) | Obrigatório |
item |
Define o tipo de item consultado |
Obrigatório Valores: insumo ou composicao
|
periodo |
Período desejado para histórico de preços |
Opcional — exemplos: 2m, 6m, 1yPadrão: 12m
|
output |
Formato da resposta |
Opcional — valores: json (padrão) ou xml
|
Retorna os preços do insumo código 123 durante os últimos 6 meses para o estado de São Paulo (SP)
/historico/?apikey=SUA_CHAVE&codigo=123&estado=SP&item=insumo&periodo=6m
{
"nome": "ADITIVO IMPERMEABILIZANTE DE PEGA NORMAL PARA ARGAMASSAS E CONCRETOS SEM ARMACAO, LIQUIDO E ISENTO DE CLORETOS",
"codigo": "123",
"tipo": "insumo",
"estado_id": 26,
"estado": "São Paulo (SP)",
"historico": [
{
"preco_desonerado": "6.86",
"preco_naodesonerado": "6.86",
"data": "2025-06-01"
},
{
"preco_desonerado": "7.28",
"preco_naodesonerado": "7.28",
"data": "2025-07-01"
},
{
"preco_desonerado": "7.33",
"preco_naodesonerado": "7.33",
"data": "2025-08-01"
},
{
"preco_desonerado": "6.95",
"preco_naodesonerado": "6.95",
"data": "2025-09-01"
}
]
}
Compara os preços de um insumo ou composição entre diferentes estados durante um período especificado.
| Parâmetro | Descrição | Observações |
|---|---|---|
apikey |
Chave de acesso à API | Obrigatório |
codigo |
Código do insumo ou composição | Obrigatório |
estados |
Lista de siglas dos estados a comparar |
Obrigatório Formato: siglas separadas por vírgula (ex.: SP,RJ,MG)
|
item |
Tipo do recurso consultado |
Obrigatório Valores: insumo | composicao
|
data_ref |
Data de referência SINAPI para os preços |
Opcional — formato AAAA-MM-01 (ex.: 2025-09-01).Padrão: data SINAPI mais recente disponível. |
output |
Formato da resposta | Opcional — valores: json (padrão) ou xml |
Retorna os preços da composição código 89282 para os estados do Acre (AC) e Paraíba (PB)
/comparar/?apikey=SUA_CHAVE&codigo=89282&item=composicao&estados=ac,pb
{
"codigo": "89282",
"tipo": "composicao",
"descricao": "ALVENARIA ESTRUTURAL DE BLOCOS CERÂMICOS 14X19X39, (ESPESSURA DE 14 CM), UTILIZANDO PALHETA E ARGAMASSA DE ASSENTAMENTO COM PREPARO EM BETONEIRA. AF_03/2023",
"data_referencia": "2025-09-01",
"comparacao": [
{
"estado_id": 1,
"estado": "Acre (AC)",
"preco_desonerado": "90.80",
"preco_naodesonerado": "93.16",
"data_referencia": "2025-09-01 00:00:00"
},
{
"estado_id": 15,
"estado": "Paraíba (PB)",
"preco_desonerado": "69.83",
"preco_naodesonerado": "71.97",
"data_referencia": "2025-09-01 00:00:00"
}
]
}
Gera previsões de preços de um insumo ou composição com base em dados históricos do SINAPI usando regressão linear.
| Parâmetro | Descrição | Observações |
|---|---|---|
apikey |
Chave de acesso à API | Obrigatório |
item |
Define se a consulta será feita para um insumo ou composição |
Obrigatório Valores: insumo | composicao
|
codigo |
Código do insumo ou composição | Obrigatório |
estado |
Sigla do estado |
Obrigatório |
regime |
Tipo de regime tributário do preço |
Obrigatório Valores: desonerado | nao_desonerado
|
output |
Formato da resposta |
Opcional — valores:json (padrão) ou xml
|
Gera previsão usando regressão linear para a composição 89994 no estado de São Paulo (SP), regime desonerado:
/previsao/?apikey=SUA_CHAVE&item=composicao&codigo=89994&estado=SP®ime=desonerado
{
"item": "composicao",
"nome": "GRAUTEAMENTO DE CINTA INTERMEDIÁRIA OU DE CONTRAVERGA EM ALVENARIA ESTRUTURAL.",
"codigo": "89994",
"estado": "São Paulo (SP)",
"regime": "desonerado",
"historico": {
"datas": [
"2024-08-01",
"2024-09-01",
"2024-10-01",
"2024-11-01",
"2024-12-01",
"2025-01-01",
"2025-02-01",
"2025-03-01",
"2025-04-01",
"2025-05-01",
"2025-06-01",
"2025-07-01",
"2025-08-01",
"2025-09-01"
],
"precos": [805.92, 802.66, 806.94, 823.28, 808.1, 823.39, 813.14, 818.7, 817.87, 838.06, 857.03, 859.94, 860.08, 870.85],
"curva_ajustada": [795.74, 800.86, 805.98, 811.09, 816.21, 821.32, 826.44, 831.56, 836.67, 841.79, 846.9, 852.02, 857.13, 862.25]
},
"previsoes": {
"3_meses": {
"valor": 877.6,
"intervalo_95": {
"min": 853.04,
"max": 902.16
}
},
"6_meses": {
"valor": 892.95,
"intervalo_95": {
"min": 866.07,
"max": 919.83
}
},
"12_meses": {
"valor": 923.64,
"intervalo_95": {
"min": 891.11,
"max": 956.18
}
}
},
"variacao_percentual_prevista": {
"3_meses": 0.77,
"6_meses": 2.54,
"12_meses": 6.06
},
"probabilidade_alta": 100,
"metodo": "Regressão linear simples"
}
Gera um orçamento a partir de uma lista de itens fornecidos pelo usuário, podendo incluir
insumos (I) e composições (C).
Cada item é informado no formato [C|I]:CODIGO@QUANTIDADE, dentro do parâmetro itens.
A API obtém os preços vigentes para o estado e regime selecionados, expande composições quando necessário,
multiplica pelas quantidades fornecidas e retorna um orçamento consolidado com:
Este endpoint é útil para gerar orçamentos rápidos diretamente pela API, integrar sistemas externos ou automatizar cálculos repetitivos.
| Parâmetro | Descrição | Observações |
|---|---|---|
apikey |
Chave de acesso da API | Obrigatório |
itens |
Lista de itens do orçamento, no formato
[C|I]:CODIGO@QUANTIDADE,
separados por vírgula.
|
Obrigatório Ex: C:12321@3.2,I:234@12.5,I:3773@7
|
estado |
Sigla do estado onde os preços devem ser consultados | Obrigatório — ex: SP, PB |
regime |
Regime de preço SINAPI |
Obrigatório Valores: DESONERADO, NAO_DESONERADO
|
bdi |
Percentual do BDI (Bonificação e Despesas Indiretas) |
Opcional — Valor numérico representando o percentual do BDI a ser aplicado no orçamento. Padrão: 0
|
output |
Formato da resposta | Opcional — json (padrão) ou xml |
data_ref |
Data de referência dos preços | Opcional — formato AAAA-MM-01 |
Gera orçamento para os insumos: código 123 (quantidade 4.2), código 366 (quantidade 12) e composição: 87777 (quantidade 2) para o estado de SP, com regime não desonerado para a tabela SINAPI mais recente:
/api/orcamento/?apikey=SUA_CHAVE&itens=I:123@4.2,I:366@12,C:87777@2&estado=sp®ime=nao_desonerado
{
"totais": {
"total_insumos": 968,
"total_composicoes": 139.68,
"total_geral": 1107.68,
"bdi_percentual": 0,
"total_com_bdi": 1107.68,
"regime": "nao_desonerado",
"estado": "São Paulo (SP)",
"data_referencia": "2025-09-01"
},
"itens": [
{
"tipo": "Insumo",
"codigo": 123,
"nome": "ADITIVO IMPERMEABILIZANTE DE PEGA NORMAL PARA ARGAMASSAS E CONCRETOS SEM ARMACAO, LIQUIDO E ISENTO DE CLORETOS",
"unidade": "L",
"quantidade": 4.2,
"preco_unit": 7.62,
"subtotal": 32
},
{
"tipo": "Insumo",
"codigo": 366,
"nome": "AREIA FINA - POSTO JAZIDA/FORNECEDOR (RETIRADO NA JAZIDA, SEM TRANSPORTE)",
"unidade": "m³",
"quantidade": 12,
"preco_unit": 78,
"subtotal": 936
},
{
"tipo": "Composição",
"codigo": 87777,
"nome": "EMBOÇO OU MASSA ÚNICA EM ARGAMASSA TRAÇO 1:2:8, PREPARO MANUAL, APLICADA MANUALMENTE EM PANOS DE FACHADA COM PRESENÇA DE VÃOS, ESPESSURA DE 25 MM. AF_08/2022",
"unidade": "m²",
"quantidade": 2,
"preco_unit": 69.84,
"subtotal": 139.68
}
]
}
Retorna uma lista de estados do Brasil ou informações de um estado (se o parâmetro 'estado' for especificado).
Parâmetros:estado: (Filtro único): Sigla do estado - retorna informações do estado, como; sigla, nome, capital, região, código IBGE e bandeira. O parâmetro deve ser informado como a sigla do estado.ibge: (Filtro único): Código IBGE do estado - retorna informações do estado, como; sigla, nome, capital, região, código IBGE e bandeira. O parâmetro deve ser informado como a sigla do estado.regiao: (Filtro único): Retorna os estados da região informada no valor/estados/?apikey=SUA_CHAVE&estado=SP
O endpoint /usage permite que o usuário acompanhe, em tempo real, o consumo de sua chave de API, incluindo:
apikey (obrigatório)Exibe o status de uso da chave informada
/usage/?apikey=SUA_CHAVE
{
"hourly": {
"limit": 100,
"used": 23,
"remaining": 77,
"reset_timestamp": 1732224000
},
"monthly": {
"limit": 3000,
"used": 912,
"remaining": 2088,
"reset_day": 1
}
}
| Código | Mensagem | Descrição |
|---|---|---|
| 400 | Parâmetros ausentes |
O endpoint ou parâmetro obrigatório não foi fornecido. |
| 401 | API Key inválida |
Chave de API não reconhecida ou token JWT expirado. |
| 429 | Limite de requisições excedido |
Usuário ultrapassou o número permitido de requisições. |
Cada chave gratuita permite até 100 requisições por hora. Após atingir esse limite, o sistema retorna:
HTTP 429 Too Many Requests
Além do código de erro, a API envia cabeçalhos informativos para ajudar no controle de uso:
X-RateLimit-Limit: número máximo de requisições permitidas por hora.X-RateLimit-Remaining: quantas requisições ainda restam antes de atingir o limite.X-RateLimit-Reset: horário (em timestamp Unix) em que o contador será reiniciado.X-RateLimit-Monthly-Limit: total de requisições permitidas no mês.X-RateLimit-Monthly-Used: quantidade já utilizada no período mensal.X-RateLimit-Monthly-Remaining: quantas requisições ainda estão disponíveis.Esses cabeçalhos permitem que aplicações clientes ajustem automaticamente o ritmo das requisições e evitem bloqueios.
O Webhook da API Orçamentador permite que seu sistema seja notificado automaticamente sempre que houver nova atualização da tabela SINAPI.
A configuração é feita exclusivamente pela API, sem painel visual.
Todas as chamadas de webhook exigem uma APIKEY válida. Ela pode ser enviada de duas formas:
&apikey=SUA_CHAVEX-API-Key: SUA_CHAVEExemplo completo:
/api/webhook/?mode=list&apikey=SUA_CHAVE
Registra a URL que será notificada a cada atualização SINAPI.
/api/webhook/?mode=register&callback_url=URL&apikey=SUA_CHAVE
Resposta:
{
"message": "Webhook registrado com sucesso.",
"event": "register",
"status": "ok",
"secret": "CHAVE_SECRETA_GERADA",
"callback_url": "https://exemplo.com/webhook",
"webhook_id": 12
}
Atenção: Apenas 1 webhook ativo por usuário.
/api/webhook/?mode=unregister&webhook_id=ID&apikey=SUA_CHAVE
Resposta:
{
"message": "Webhook removido com sucesso.",
"event": "unregister",
"status": "ok"
}
/api/webhook/?mode=list&apikey=SUA_CHAVE
Resposta:
{
"webhooks": [
{
"id": 12,
"callback_url": "https://exemplo.com/webhook",
"criado_em": "2025-01-10 14:32:55",
"secret_key": "xxxxxxxx"
}
]
}
Envia um webhook de teste para validar sua integração.
/api/webhook/?mode=test&webhook_id=ID&apikey=SUA_CHAVE
Payload enviado:
{
"event": "test",
"message": "Este é um teste de webhook."
}
Cabeçalho incluído:
X-Webhook-Signature: HMAC_SHA256_DO_PAYLOAD
Seu servidor deve validar o webhook com o secret fornecido no registro (exemplo em PHP):
$body = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] ?? null;
$expected = hash_hmac('sha256', $body, SEU_SECRET);
if (!hash_equals($expected, $signature)) {
http_response_code(403);
exit(json_encode(["erro" => "Assinatura inválida"]));
}
Essa validação garante que a requisição veio realmente do Orçamentador.
{
"event": "sinapi.update",
"referencia": "2025-09-01"
}
Para suporte ou dúvidas sobre integração, entre em contato.
Para solicitar sua chave gratuita, contratar um dos planos disponíveis, ampliar limites de requisição ou receber suporte técnico, basta entrar em contato conosco. No formulário, selecione a opção "API SINAPI – Orçamentador".
Você também pode consultar todos os detalhes sobre os planos, preços e limites
diretamente na página principal da API em:
https://orcamentador.com.br/api/
Nossa equipe responderá rapidamente e fornecerá tudo o que você precisa para integrar a API ao seu sistema.
Ex.: Exibir a página 1 de insumos com 5 itens/página
curl "https://orcamentador.com.br/api/insumos/?apikey=SUA_CHAVE&page=1&limit=5"
<?php
$apiUrl = "https://orcamentador.com.br/api/insumos/?apikey=SUA_CHAVE&page=1&limit=5";
$response = file_get_contents($apiUrl);
$data = json_decode($response, true);
print_r($data);
?>
fetch("https://orcamentador.com.br/api/insumos/?apikey=SUA_CHAVE&page=1&limit=5")
.then(res => res.json())
.then(data => console.log(data));
import requests
url = "https://orcamentador.com.br/api/"
params = {
"apikey": "SUA_CHAVE",
"endpoint": "insumos",
"page": 1,
"limit": 5
}
response = requests.get(url, params=params)
print(response.json())
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class ApiExample {
public static void main(String[] args) throws Exception {
URL url = new URL("https://orcamentador.com.br/api/insumos/?apikey=SUA_CHAVE&page=1&limit=5");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
Scanner sc = new Scanner(conn.getInputStream());
while (sc.hasNext()) {
System.out.println(sc.nextLine());
}
sc.close();
}
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program {
static async Task Main() {
var client = new HttpClient();
string url = "https://orcamentador.com.br/api/insumos/?apikey=SUA_CHAVE&page=1&limit=5";
var response = await client.GetStringAsync(url);
Console.WriteLine(response);
}
}
const https = require('https');
const url = 'https://orcamentador.com.br/api/insumos/?apikey=SUA_CHAVE&page=1&limit=5';
https.get(url, res => {
let data = '';
res.on('data', chunk => { data += chunk; });
res.on('end', () => { console.log(JSON.parse(data)); });
}).on('error', err => {
console.error('Erro: ' + err.message);
});