Compositions
Composições (serviços completos) de um setor. No SINAPI, uma composição representa um serviço de construção civil com seus insumos e sub-composições, coeficientes e preços resultantes. Suporta busca textual, filtros por unidade, UF, mês e regime tributário.
Buscar composições de um setor
Retorna uma lista paginada de composições (serviços SINAPI) de um setor.
Busca textual: Use o parâmetro search para buscar por descrição. A busca utiliza full-text search em português (PostgreSQL tsvector).
Filtro por unidade: Use o parâmetro unit para filtrar por unidade de medida (ex: M2, M3, UN).
Filtro por UF: Use o parâmetro state para filtrar por estado (ex: SP, RJ, MG).
Filtro por mês: Use o parâmetro month no formato AAAA-MM. Se não informado, retorna o último mês disponível.
Regime tributário: Use o parâmetro is_desonerated para filtrar por desoneração. Default: false.
Paginação: Use page e limit para controlar a paginação. Máximo de 100 itens por página.
Performance: Use include_total=false para evitar COUNT(*) e compact=true para retornar payload reduzido.
Path Parameters
Query Parameters
Número da página
11 <= valueItens por página (máx. 100)
501 <= value <= 100Inclui total e totalPages na paginação. Use false para evitar COUNT(*) em listagens grandes.
trueTermo de busca (full-text search em português)
Filtrar por unidade de medida
UF de 2 letras (ex: SP, RJ, MG)
2 <= length <= 2Mês de referência no formato AAAA-MM
^\d{4}-\d{2}$Regime tributário: true = desonerado, false = não desonerado
falseRetorna payload reduzido para listagens de alta performance
falseResponse Body
application/json
application/json
curl -X GET "https://api.sinpres.com.br/api/v1/sectors/civil-construction/compositions"{
"data": [
{
"id": 0,
"code": 0,
"description": "string",
"unit": "string",
"stateCode": "st",
"referenceMonth": "strings",
"isDesonerated": true,
"baseUnitCost": 0,
"sourceUpdatedAt": "string",
"previousCode": null,
"createdAt": "string"
}
],
"meta": {
"total": 0,
"page": 0,
"limit": 0,
"totalPages": 0,
"hasNextPage": true
}
}{
"error": "string"
}Detalhar composição por código
Retorna os detalhes completos de uma composição (serviço SINAPI) pelo seu código de referência, incluindo todos os itens que a compõem (insumos e sub-composições) com coeficientes e preços.
Path Parameters
Query Parameters
UF de 2 letras (ex: SP, RJ, MG)
2 <= length <= 2Mês de referência no formato AAAA-MM
^\d{4}-\d{2}$Regime tributário: true = desonerado, false = não desonerado
falseResponse Body
application/json
application/json
curl -X GET "https://api.sinpres.com.br/api/v1/sectors/civil-construction/compositions/{code}"{
"data": {
"id": 0,
"code": 0,
"description": "string",
"unit": "string",
"stateCode": "st",
"referenceMonth": "strings",
"isDesonerated": true,
"baseUnitCost": 0,
"sourceUpdatedAt": "string",
"previousCode": null,
"createdAt": "string",
"items": [
{
"itemType": "INPUT",
"code": 0,
"description": "string",
"unit": "string",
"resourceType": "MATERIAL",
"coefficient": "string",
"unitPrice": 0,
"totalPrice": 0
}
]
}
}{
"error": "string"
}Buscar múltiplas composições por código
Retorna múltiplas composições em uma única request, preservando a ordem de entrada. Não retorna os itens da composição; use o endpoint expanded para árvore recursiva.
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://api.sinpres.com.br/api/v1/sectors/civil-construction/compositions/bulk" \ -H "Content-Type: application/json" \ -d '{ "queries": [ { "code": "7327", "state": "SP", "month": "2026-03", "is_desonerated": false } ] }'{
"results": [
{
"code": "string",
"found": true,
"composition": {
"id": 0,
"code": 0,
"description": "string",
"unit": "string",
"stateCode": "st",
"referenceMonth": "strings",
"isDesonerated": true,
"baseUnitCost": 0,
"sourceUpdatedAt": "string",
"previousCode": null,
"createdAt": "string"
},
"reason": "no_price_for_coordinate"
}
]
}{
"error": "string"
}{
"error": "string"
}Expandir composição recursivamente
Resolve a árvore de uma composição no servidor, incluindo insumos e sub-composições até a profundidade solicitada. O limite máximo aplicado pelo servidor é 8.
Path Parameters
Query Parameters
UF de 2 letras
2 <= length <= 2Mês de referência no formato AAAA-MM
^\d{4}-\d{2}$Regime tributário
Profundidade máxima da árvore. Valores acima de 8 são limitados pelo servidor.
50 <= valueResponse Body
application/json
application/json
curl -X GET "https://api.sinpres.com.br/api/v1/sectors/civil-construction/compositions/{code}/expanded?state=SP&month=2026-03&is_desonerated=false"{
"data": {
"code": "string",
"description": "string",
"unit": "string",
"depth": 0,
"coefficient": "string",
"item_type": "COMPOSITION",
"unit_price": 0,
"items": [
null
],
"truncated": true
}
}{
"error": "string"
}