SINPRES — Sistema Nacional de Preços Setoriais

Items

Itens (insumos) de um setor. Suporta busca textual em português (full-text search), filtro por unidade de medida, UF, mês de referência, regime tributário e paginação. Cada item possui código, descrição, unidade, preço unitário, normas técnicas, informações gerais e imagem de referência.

Buscar itens de um setor

GET
/api/v1/sectors/{slug}/items

Retorna uma lista paginada de itens (insumos) de um setor.

Busca textual: Use o parâmetro search para buscar por descrição ou informações gerais. 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: KG, M, M2, 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

slug*string

Query Parameters

page?integer

Número da página

Default1
Range1 <= value
limit?integer

Itens por página (máx. 100)

Default50
Range1 <= value <= 100
include_total?boolean

Inclui total e totalPages na paginação. Use false para evitar COUNT(*) em listagens grandes.

Defaulttrue
search?string

Termo de busca (full-text search em português)

unit?string

Filtrar por unidade de medida

state?string

UF de 2 letras (ex: SP, RJ, MG)

Length2 <= length <= 2
month?string

Mês de referência no formato AAAA-MM

Match^\d{4}-\d{2}$
is_desonerated?boolean

Regime tributário: true = desonerado, false = não desonerado

Defaultfalse
compact?boolean

Retorna payload reduzido para listagens de alta performance

Defaultfalse

Response Body

application/json

application/json

curl -X GET "https://api.sinpres.com.br/api/v1/sectors/civil-construction/items"
{
  "data": [
    {
      "id": 0,
      "categoryId": 0,
      "code": 0,
      "description": "string",
      "unit": "string",
      "stateCode": "st",
      "referenceMonth": "strings",
      "isDesonerated": true,
      "unitPrice": 0,
      "technicalStandards": "string",
      "generalInfo": "string",
      "imageUrl": "string",
      "metadata": null,
      "sourceUpdatedAt": "string",
      "previousCode": null,
      "createdAt": "string"
    }
  ],
  "meta": {
    "total": 0,
    "page": 0,
    "limit": 0,
    "totalPages": 0,
    "hasNextPage": true
  }
}
{
  "error": "string"
}

Detalhar item por código

GET
/api/v1/sectors/{slug}/items/{code}

Retorna os detalhes completos de um item (insumo) pelo seu código de referência. Para Construção Civil, o código corresponde ao código SINAPI. Aceita filtros opcionais de UF, mês e regime tributário.

Path Parameters

slug*string
code?number

Query Parameters

state?string

UF de 2 letras (ex: SP, RJ, MG)

Length2 <= length <= 2
month?string

Mês de referência no formato AAAA-MM

Match^\d{4}-\d{2}$
is_desonerated?boolean

Regime tributário: true = desonerado, false = não desonerado

Defaultfalse

Response Body

application/json

application/json

curl -X GET "https://api.sinpres.com.br/api/v1/sectors/civil-construction/items/{code}"
{
  "data": {
    "id": 0,
    "categoryId": 0,
    "code": 0,
    "description": "string",
    "unit": "string",
    "stateCode": "st",
    "referenceMonth": "strings",
    "isDesonerated": true,
    "unitPrice": 0,
    "technicalStandards": "string",
    "generalInfo": "string",
    "imageUrl": "string",
    "metadata": null,
    "sourceUpdatedAt": "string",
    "previousCode": null,
    "createdAt": "string"
  }
}
{
  "error": "string"
}

Buscar múltiplos insumos por código

POST
/api/v1/sectors/{slug}/items/bulk

Retorna múltiplos insumos em uma única request, preservando a ordem de entrada e evitando N+1 no consumidor. Limite máximo de 100 consultas por request.

Path Parameters

slug*string

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/items/bulk" \  -H "Content-Type: application/json" \  -d '{    "queries": [      {        "code": "34",        "state": "SP",        "month": "2026-03",        "is_desonerated": false      }    ]  }'
{
  "results": [
    {
      "code": "string",
      "found": true,
      "item": {
        "id": 0,
        "categoryId": 0,
        "code": 0,
        "description": "string",
        "unit": "string",
        "stateCode": "st",
        "referenceMonth": "strings",
        "isDesonerated": true,
        "unitPrice": 0,
        "technicalStandards": "string",
        "generalInfo": "string",
        "imageUrl": "string",
        "metadata": null,
        "sourceUpdatedAt": "string",
        "previousCode": null,
        "createdAt": "string"
      },
      "reason": "no_price_for_coordinate"
    }
  ]
}
{
  "error": "string"
}
{
  "error": "string"
}