Court record checks, with consent

Brazilian court records, with a yes from the person you check.

They authorize, you make one API call, and you get their lawsuits organized by court, case type and latest activity. Works with the CPF, the taxpayer ID every person in Brazil has.

No consent from the person, no lookup.

How it works

Three steps, one call.

Consent comes first. After that, it's a regular request and a response your system already knows how to read.

  1. 1Before the check

    The person authorizes

    You collect consent in your own flow, whether that's hiring, signup or a contract, and send the acceptance time and purpose along with the request.

  2. 2The check

    You make one call

    A single POST with the CPF. The idempotency key makes sure a retry after a network error never turns into a second lookup.

  3. 3The response

    You get structured data

    JSON with each lawsuit and its proceedings: court, case type, subject matter, parties and latest activity. Ready for your system or for a human reviewer.

Use cases

For decisions that need context.

When a hire, a new customer or a contract in Brazil depends on knowing what's on file in the courts, and the person agrees to the check.

Hiring

Check the court history of candidates who agreed to it, with the purpose recorded in the request itself.

HR · recruiting · employer of record

Customer onboarding

Add the check to credit, insurance or account onboarding, with consent collected in your own form.

Fintechs · insurers · lenders

Vendors and partners

Run due diligence on partners and representatives before you sign, with each person's authorization.

Compliance · procurement · legal

Rentals

Screen tenants and guarantors who agreed to the check, without asking them for a stack of certificates.

Property managers · landlords

Every request needs a legitimate purpose, stated in the call. The result shows what's on file in the courts; the decision is still yours and must follow the law.

Security and privacy

Privacy isn't a feature. It's how the product works.

Verinook does one thing, with as little data as possible and with proof that the person agreed. Built around the LGPD, Brazil's data protection law.

Consent is required

Without the person's authorization and acceptance time, the API rejects the request. There's no way around it.

Every consent is recorded

We keep who authorized, when and for what purpose, so you can back up every check you run.

Isolated per company

Each company uses its own keys. One account's checks and consents never show up in another's.

Only what's needed

Court records only. Sealed cases and confidential parties are left out of the result.

Consent can be revoked

If the person changes their mind, you record the revocation through the API and that consent stops working for new checks.

Keys with limits

Each key has its own scope and usage limits, and every call goes into your account's audit trail.

HTTPS on every callDesigned for the LGPD from day oneNo data beyond court records

API

One request. A predictable response.

REST and JSON, key-based authentication and the same envelope on every response: ok, data, error and meta.

Request
curl https://api.verinook.com/v1/consultas/processos \
  -H "Authorization: Bearer $VERINOOK_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "value": "12345678909",
    "purpose": "Hiring: financial analyst role",
    "authorization": "consent",
    "accepted_at": "2026-11-07T14:32:10-03:00"
  }'
Trimmed response
{
  "ok": true,
  "data": {
    "subject": {
      "cpf": "12345678909",
      "name": "MARIA EXEMPLO"
    },
    "process_count": 2,
    "processes": [
      {
        "number": "0004187-22.2023.8.26.0100",
        "court": "TJSP",
        "instances": [{
          "classes": […], "subjects": […],
          "last_movement": {
            "dataHora": "2026-09-12T10:41:00",
            "descricao": "Juntada de Petição"
          },
          "parties": [{
            "name": "MARIA EXEMPLO",
            "side": "PASSIVO",
            "is_subject": true
          }, …]
        }]
      }, …
    ],
    "warnings": []
  },
  "error": null,
  "meta": { "request_id": "c1f0…" }
}
  • Errors that tell you what to doEvery error has a stable code and a clear message, like an invalid CPF or a reached limit.
  • No double lookupsIdempotency-Key is required. Retry with the same key and you get the same response, with no new lookup.
  • Limits in plain sightGET /v1/limits shows how many of today's checks you've used and how many are left.
Pricing

Priced for your volume.

We're shaping our plans with our first customers. Tell us how many checks you run a month and we'll put together a proposal.

Let's talk about your volume

Whether you're just starting or hiring by the thousands, you get the same access. Only the monthly limit changes.

In every plan

  • REST API with structured JSON results
  • Consent recorded on every check
  • Per-company keys with their own limits
  • Idempotency to prevent duplicate checks
Questions

Frequently asked questions

Does the person have to authorize the check?

Yes, always. A request is only accepted with the person's authorization, the acceptance time and the purpose. Without them, the API rejects it.

What's in the result?

For each lawsuit: case number, court, proceedings, case type, subject matter, parties and their side, and the latest activity. Sealed cases are not included.

Does it work for people outside Brazil?

No. Verinook checks Brazilian courts using the CPF, the taxpayer ID of people in Brazil. Your company can be based anywhere.

Do you look up other data, like addresses or phone numbers?

No. Verinook only checks court records. We don't look up contact details, addresses, location or any other personal data.

How do I get started?

Create your company account at app.verinook.com, generate an API key and run your first check using the example on this page.

Start with consent. End with context.

Create your company account and bring court record checks into your hiring, onboarding or contracting flow.