A API do Orçamentador foi desenvolvida para fornecer acesso estruturado e confiável aos dados de insumos, composições e preços utilizados no setor da construção civil, com base na Tabela SINAPI (Sistema Nacional de Pesquisa de Custos e Índices da Construção Civil).
A API tem como objetivo permitir que sistemas externos integrem, consultem e utilizem os dados do Orçamentador em tempo real, viabilizando:
Esta API foi criada para atender:
Todas as requisições exigem uma API Key, que deve ser enviada como parâmetro na URL:
https://orcamentador.com.br/api/?apikey=SUA_CHAVE
Endpoint | Descrição | Parâmetros |
---|---|---|
?endpoint=insumos |
Retorna lista de insumos disponíveis ou informações de um insumo (se codigo e estado forem especificados) | page , limit |
?endpoint=composicoes |
Retorna lista de composições ou informações de uma composição (se codigo e estado forem especificados) | page , limit |
?endpoint=composicao |
Retorna os itens (insumos ou subcomposições) de uma composição | codigo , estado |
Retorna uma lista de insumos paginada.
Parâmetros:apikey
(obrigatório)page
(obrigatório): Número da páginalimit
(obrigatório): Quantidade por página (máx: 100)codigo
: Filtro parcial (obrigatório se usado com o filtro estado
)estado
: : Sigla do estado (obrigatório se usado com o filtro codigo
)nome
: Filtro parcialtipo
: material, mão de obra, equipamento...sort
: codigo
, nome
, tipo
order
: asc
ou desc
/?apikey=SUA_CHAVE&endpoint=insumos&page=1&limit=20&nome=cimento&sort=nome&order=asc
Retorna uma lista de composições paginada.
Parâmetros:apikey
(obrigatório)page
(obrigatório)limit
(obrigatório)codigo
: Filtro parcial (obrigatório se usado com o filtro estado
)estado
: obrigatório se usado com o filtro codigo
sort
: codigo
, nome
, unidade
order
: asc
ou desc
/?apikey=SUA_CHAVE&endpoint=composicoes&page=1&limit=10&sort=nome&order=desc
Retorna os dados de uma composição, incluindo os itens (insumos ou subcomposições).
Parâmetros:apikey
(obrigatório)codigo
(obrigatório): Código da composiçãoestado
: (obrigatório): Sigla do estado/?apikey=SUA_CHAVE&endpoint=composicao&codigo=88316
{
"codigo": "88316",
"nome": "Alvenaria de vedação",
"unidade": "m2",
"itens": [
{
"tipo": "INSUMO",
"codigo": "34353",
"unidade": "Kg",
"quantidade": 8.62,
"nome": "Cimento CP II-E-32"
},
{
"tipo": "COMPOSICAO",
"codigo": "88309",
"unidade": "h",
"quantidade": 0.639,
"nome": "Servente de pedreiro"
}
]
}
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 dia. Após isso, o sistema retorna:
HTTP 429 Too Many Requests
Para acesso ilimitado, assine um plano ou entre em contato para uso profissional.
Ex.: Exibir a página 1 de insumos com 5 itens/página
curl "https://orcamentador.com.br/api/?apikey=SUA_CHAVE&endpoint=insumos&page=1&limit=5"
<?php
$apiUrl = "https://orcamentador.com.br/api/?apikey=SUA_CHAVE&endpoint=insumos&page=1&limit=5";
$response = file_get_contents($apiUrl);
$data = json_decode($response, true);
print_r($data);
?>
fetch("hhttps://orcamentador.com.br/api/?apikey=SUA_CHAVE&endpoint=insumos&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/?apikey=SUA_CHAVE&endpoint=insumos&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/?apikey=SUA_CHAVE&endpoint=insumos&page=1&limit=5";
var response = await client.GetStringAsync(url);
Console.WriteLine(response);
}
}
const https = require('https');
const url = 'https://orcamentador.com.br/api/?apikey=SUA_CHAVE&endpoint=insumos&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);
});