Alertalicitacao APIalertalicitacao.com.br ↗
Access Brazilian government procurement listings (licitações) by keyword or state. Search, browse, and fetch detail records via 4 structured JSON endpoints.
What is the Alertalicitacao API?
The Alerta Licitação API exposes 4 endpoints for querying open Brazilian government procurement opportunities (licitações) from alertalicitacao.com.br. Use search_licitacoes to find listings by keyword, list_by_state to browse by UF, get_licitacao to retrieve full detail records, or list_states to get a count of open licitações across all 27 Brazilian states. Each record returns structured fields including orgão, modalidade, objeto, cidade, and data_abertura.
curl -X GET 'https://api.parse.bot/scraper/1210cd96-33c5-4ada-bd2d-ee6ce6d0a4e9/search_licitacoes?keyword=obras' \ -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 alertalicitacao-com-br-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.
"""Walkthrough: Alerta Licitação SDK — find Brazilian procurement opportunities."""
from parse_apis.alerta_licitação_api import AlertaLicitacao, BrazilianState, LicitacaoNotFound
client = AlertaLicitacao()
# List all states with their open procurement counts
for state in client.states.list(limit=5):
print(state.uf, state.nome, state.total_licitacoes)
# Browse licitações for a specific state using the enum
sp = client.state(uf=BrazilianState.SP)
for lic in sp.licitacoes(limit=3):
print(lic.identificador, lic.titulo, lic.cidade)
# Search by keyword and drill into full details
result = client.licitacaos.search(keyword="obras", limit=1).first()
if result:
detail = result.refresh()
print(detail.titulo, detail.modalidade, detail.data_abertura, detail.orgao)
# Direct lookup by identifier with typed error handling
try:
full = client.licitacaos.get(licitacao_id="INVALID-ID-99999")
print(full.titulo)
except LicitacaoNotFound as exc:
print(f"Not found: {exc.licitacao_id}")
print("exercised: states.list / state.licitacoes / licitacaos.search / refresh / licitacaos.get")
Full-text search over open Brazilian procurement listings (licitações) by keyword. Returns matching results with identifier, title, city, state, object description, and metadata. Results are limited to publicly available samples for non-subscribers. Pagination is not available; a single page of results is returned.
| Param | Type | Description |
|---|---|---|
| keyword | string | Search keyword for procurement listings (e.g., 'obras', 'equipamentos', 'serviços de TI'). |
{
"type": "object",
"fields": {
"note": "string — informational note about result limitations",
"keyword": "string — the keyword that was searched",
"licitacoes": "array of licitação objects with identificador, titulo, link, visualizacoes, data_abertura, cidade, uf, orgao, objeto, and optionally valor_estimado",
"total_results": "integer — number of results returned"
},
"sample": {
"data": {
"note": "Search results are limited to examples for non-subscribers. Use list_by_state for more comprehensive listings.",
"keyword": "obras",
"licitacoes": [
{
"uf": "SP",
"link": "https://alertalicitacao.com.br/!licitacao/DOU-a83741d2352c6dfa0b21",
"orgao": "Prefeitura Municipal de Guaimbê",
"cidade": "Guaimbê - SP",
"objeto": "prefeituras. estado de são paulo...",
"titulo": "CONCORRÊNCIA PÚBLICA Nº 4/2026",
"data_abertura": "01/07/2026 09:00",
"identificador": "DOU-a83741d2352c6dfa0b21",
"visualizacoes": 54
}
],
"total_results": 2
},
"status": "success"
}
}About the Alertalicitacao API
Endpoints and Coverage
The API covers four operations against alertalicitacao.com.br's database of open procurement listings. search_licitacoes accepts a keyword parameter (e.g., 'obras', 'serviços de TI') and returns matching licitação objects, each with fields like identificador, titulo, orgao, objeto, cidade, uf, and data_abertura. Results are limited to publicly available samples for non-subscribers, and the note field in the response documents that limitation explicitly. Pagination is not available on this endpoint.
State-Based Browsing
list_by_state accepts a two-letter Brazilian state code (state, e.g., SP, MG, BA) and returns up to roughly 20 sample listings for that state, plus a total_licitacoes_no_estado integer indicating the full count of open licitações in the state when that figure is available. This makes it straightforward to gauge procurement volume by region before drilling into individual records.
Detail Records and State Index
get_licitacao takes a licitacao_id obtained from either search or browse results and returns the complete record for a single listing: titulo, orgao, modalidade, objeto, cidade, uf, data_abertura (in DD/MM/YYYY HH:MM format), link, and link_edital when the official edital document URL is available. list_states requires no inputs and returns all 27 state entries, each with uf, nome, and total_licitacoes, giving a snapshot of current procurement activity nationwide.
The Alertalicitacao API is a managed, monitored endpoint for alertalicitacao.com.br — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when alertalicitacao.com.br 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 alertalicitacao.com.br 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 new procurement listings matching specific goods or services using the
keywordparameter insearch_licitacoes - Build a regional procurement dashboard showing open licitação counts per state using
list_statesandtotal_licitacoes - Retrieve edital document URLs via
link_editalfromget_licitacaoto automate document collection workflows - Filter procurement opportunities by modality (
modalidade) after fetching state-level listings withlist_by_state - Identify which states have the highest volume of open bids using
total_licitacoesfromlist_states - Track opening dates (
data_abertura) across multiple listings to prioritize time-sensitive procurement responses - Correlate procurement listings with orgão names to analyze which public bodies are issuing the most tenders in a given state
| 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.
Does alertalicitacao.com.br have an official developer API?+
What does `get_licitacao` return that the search and browse endpoints don't?+
get_licitacao returns the full detail record for a single listing, including modalidade (procurement modality) and link_edital (the URL to the official edital document). Those fields are not consistently present in search_licitacoes or list_by_state results, making get_licitacao the right endpoint when you need the complete record for a specific identificador.Are search results paginated, and can I retrieve the full result set for a keyword?+
search_licitacoes. The endpoint returns a limited sample of publicly available listings, and the note field in the response describes that constraint. The total_results field reflects the count returned in the current response, not a full database count. You can fork this API on Parse and revise it to add paginated retrieval if your use case requires larger result sets.Does the API expose closed or historical licitações, not just open ones?+
list_by_state and search_licitacoes both reflect active listings, and list_states counts only open procurement opportunities per state. You can fork this API on Parse and revise it to add an endpoint targeting historical or closed procurement records.How fresh is the procurement data?+
data_abertura timestamps on individual records indicate the scheduled opening date for each licitação, which helps you assess relevance. There is no explicit freshness or last-updated timestamp returned at the response envelope level.