Licitacoes-e APIlicitacoes-e.com ↗
Access Brazilian public tender data from Banco do Brasil's Licitacoes-e platform. Query tender statuses, buyers by status, and detailed tender metadata via 3 endpoints.
What is the Licitacoes-e API?
The Licitacoes-e.com API provides access to Brazilian public procurement data from the Banco do Brasil platform through 3 endpoints. You can retrieve the full list of tender lifecycle statuses, query buyers and their tender counts by status code via list_buyers_by_status, and pull comprehensive metadata for any specific tender using its numeric ID — including client, auctioneer, modality, dates, and process details.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/e2b1e608-8a0f-41c0-ab26-fa94f6f57cbe/list_all_statuses' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace licitacoes-e-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.licitacoes_e_api import Licitacoes, TenderStatus, Status
client = Licitacoes()
# List all tender lifecycle statuses
for status in client.statuses.list():
print(status.code, status.name)
# Get buyers for "Publicadas" status using the enum
published = Status(_api=client, code=TenderStatus.PUBLICADAS)
for buyer in published.buyers.list():
print(buyer.buyer_id, buyer.buyer_name, buyer.tender_count)
# Fetch full details of a specific tender
tender = client.tenders.get(tender_id="1055555")
print(tender.tender_id, tender.details)
Returns the fixed list of possible tender statuses (Situação da licitação). These are the main lifecycle stages a tender passes through on the platform. Use the returned codes as input for list_buyers_by_status.
No input parameters required.
{
"type": "object",
"fields": {
"statuses": "array of objects each containing code (string) and name (string)"
},
"sample": {
"data": {
"statuses": [
{
"code": "4",
"name": "Publicadas"
},
{
"code": "5",
"name": "Propostas abertas"
},
{
"code": "6",
"name": "Em disputa"
},
{
"code": "7",
"name": "Em homologação"
},
{
"code": "8",
"name": "Concluídas"
}
]
},
"status": "success"
}
}About the Licitacoes-e API
Endpoints and Data Coverage
The API exposes three endpoints covering the core data surfaces of the Banco do Brasil Licitacoes-e platform. list_all_statuses returns the fixed set of tender lifecycle stage objects, each with a code and name. These codes are the required input for the second endpoint and represent stages such as open, suspended, canceled, or concluded tenders.
Buyer and Status Queries
list_buyers_by_status accepts a status_code string and returns an array of buyer rows, where each row includes buyer_id, buyer_name, sub_status_code, sub_status_text, tender_count, and display_text. One row is returned per buyer–sub-status combination, so a single buyer may appear multiple times under different sub-statuses. The response also includes main_status_code and total_buyer_rows for quick aggregate checks. Response volume varies by status — high-activity stages may return many rows while others return few.
Tender Detail Retrieval
get_tender_details takes a numeric tender_id (e.g. '1055555') and returns a details object of key-value pairs drawn from the tender's full record. Fields include Cliente, Pregoeiro (auctioneer), Resumo da licitação (tender summary), Edital, Processo, modality, status, and associated dates. The returned field set reflects whatever metadata is present on the tender record, so coverage can vary by tender age and type.
The Licitacoes-e API is a managed, monitored endpoint for licitacoes-e.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when licitacoes-e.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official licitacoes-e.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor how many active tenders each government buyer has under a specific lifecycle status
- Build a tender alert system that tracks new entries for a given buyer_id across status changes
- Aggregate tender_count totals per sub_status to map procurement activity across agencies
- Retrieve full tender details — including Pregoeiro, modality, and deadlines — for bid preparation
- Cross-reference buyer_name and tender counts to identify the most active procurement entities on the platform
- Audit tender lifecycle stages by listing all valid status codes and mapping active tenders to each
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.