The whole source, organized and ready to query: every endpoint on this page answers in milliseconds. Every response carries
as_of: how current the data is. How datasets work.Search sanctions
POST /br/cgu/sanctions-search/v1 Dataset
Searches the five registers by any combination of name, CNPJ or CPF, register,
party type and the sanctioning body’s state.
as_of (how current the data is), the applied filters, total (matches across every page), page, per_page, total_pages, count and sanctions[], by name. A party with several sanctions has several.
Every sanction carries id (the key, e.g. ceis-72529), list (ceis, cnep, ceaf, cepim or leniency), sanction_code (CGU’s own code), party_type (individual or company), document_type (cpf, cnpj or foreign), document (a CNPJ in full, a CPF masked the way CGU masks it, ***.456.789-**), name, names[] (every name the register gives the party), sanction_type, start_date, end_date, publication_date, final_judgment_date, information_date (all yyyy-mm-dd), publication, publication_detail, scope, sanctioning_body, sanctioning_body_state (the body’s state, not the party’s), sanctioning_body_sphere (federal, state or municipal), legal_basis, process_number, information_source, notes, fine_amount (reais, CNEP fines), reason (why a non-profit is barred), public_servant ({ position, role, unit, act_number }, CEAF only) and agreement ({ status, terms, effects[] }, leniency agreements only).
Empty fields are null. Values stay in Portuguese, as CGU writes them.
query matches every name the register gives the party (as sanctioned, as
the sanctioning body reported it, and the company’s registered and trade
names), word by word and without stemming. document_number is an exact
match on a CNPJ or a CPF; CPFs come back masked. Brought up to date daily.A sanction on the register is in force: CGU removes one when it ends, and it
stops matching here the same day. A past
end_date does not mean it has
ended; a declaration of unfitness, for one, lasts until the company is
rehabilitated.One sanction
POST /br/cgu/sanction/v1 Dataset
Resolves one sanction by its id and returns the full record.
found, id, as_of and sanction (null when not found).
Every sanction carries id (the key, e.g. ceis-72529), list (ceis, cnep, ceaf, cepim or leniency), sanction_code (CGU’s own code), party_type (individual or company), document_type (cpf, cnpj or foreign), document (a CNPJ in full, a CPF masked the way CGU masks it, ***.456.789-**), name, names[] (every name the register gives the party), sanction_type, start_date, end_date, publication_date, final_judgment_date, information_date (all yyyy-mm-dd), publication, publication_detail, scope, sanctioning_body, sanctioning_body_state (the body’s state, not the party’s), sanctioning_body_sphere (federal, state or municipal), legal_basis, process_number, information_source, notes, fine_amount (reais, CNEP fines), reason (why a non-profit is barred), public_servant ({ position, role, unit, act_number }, CEAF only) and agreement ({ status, terms, effects[] }, leniency agreements only).
Empty fields are null. Values stay in Portuguese, as CGU writes them.
An id no register carries returns
found: false with HTTP 200, not an
error. That is also the answer for a sanction CGU has removed.Full reference
Schemas, all response fields, and an interactive playground.