> ## Documentation Index
> Fetch the complete documentation index at: https://docs.proteodata.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Primeira consulta

> Exemplos em cURL, JavaScript, Python e PHP

Para **dados básicos PF**, use o slug `cpf-basic` e o CPF só com dígitos em **`document`** — [Dados básicos PF](dev/dados-basicos-pf). Para **dados básicos PJ**, use `cnpj-basic` e o CNPJ com 14 dígitos — [Dados básicos PJ](dev/dados-basicos-pj). Para **KYC e compliance PF**, use `cpf-kyc` — [KYC e compliance PF](dev/kyc-compliance-pf). Para **KYC familiares de 1º nível PF**, use `cpf-kyc-relatives` — [KYC familiares de 1º nível PF](dev/kyc-familiares-primeiro-nivel-pf). Para **Compliance casas de apostas PF**, use `cpf-betting-compliance` — [Compliance casas de apostas PF](dev/compliance-casas-apostas-pf). Para **KYC e compliance PJ**, use `cnpj-kyc` — [KYC e compliance PJ](dev/kyc-compliance-pj).

Substitua os placeholders:

* `BASE_URL` — URL base da API (sem barra no final), alinhada ao campo `servers` do OpenAPI.
* `SUA_API_KEY` — sua API Key.
* `SLUG_DO_PRODUTO` — ex.: `cpf-basic`, `cnpj-basic`, `cpf-kyc`, `cpf-kyc-relatives`, `cpf-betting-compliance` ou `cnpj-kyc`.
* `VALOR_DOCUMENTO` — valor esperado pelo produto (ex.: CPF ou CNPJ só dígitos).

## Checklist rápido (tour inicial)

* Copie sua API key no Portal (ela é exibida apenas uma vez após a criação).
* Abra a referência de **Dados básicos PF**.
* Clique em **Try it**, informe `Authorization: Bearer SUA_API_KEY` e rode a chamada.
* Confirmando `200`, volte ao Dashboard e finalize o passo do onboarding.

## Exemplos

<CodeGroup>
  ```bash cURL theme={null}
  curl -sS -X POST "${BASE_URL}/v1/query/SLUG_DO_PRODUTO" \
    -H "Authorization: Bearer SUA_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"document":"VALOR_DOCUMENTO"}'
  ```

  ```javascript JavaScript theme={null}
  const baseUrl = process.env.BASE_URL;
  const apiKey = process.env.PROTEO_API_KEY;

  const res = await fetch(`${baseUrl}/v1/query/SLUG_DO_PRODUTO`, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${apiKey}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ document: "VALOR_DOCUMENTO" }),
  });

  const json = await res.json();
  console.log(res.status, json);
  ```

  ```python Python theme={null}
  import os
  import urllib.request
  import json

  base = os.environ["BASE_URL"]
  key = os.environ["PROTEO_API_KEY"]

  req = urllib.request.Request(
      f"{base}/v1/query/SLUG_DO_PRODUTO",
      data=json.dumps({"document": "VALOR_DOCUMENTO"}).encode("utf-8"),
      method="POST",
      headers={
          "Authorization": f"Bearer {key}",
          "Content-Type": "application/json",
      },
  )
  with urllib.request.urlopen(req) as resp:
      print(resp.status, json.load(resp))
  ```

  ```php PHP theme={null}
  <?php
  $base = getenv('BASE_URL');
  $key = getenv('PROTEO_API_KEY');
  $payload = json_encode(['document' => 'VALOR_DOCUMENTO']);

  $ch = curl_init("{$base}/v1/query/SLUG_DO_PRODUTO");
  curl_setopt_array($ch, [
      CURLOPT_POST => true,
      CURLOPT_HTTPHEADER => [
          'Authorization: Bearer ' . $key,
          'Content-Type: application/json',
      ],
      CURLOPT_POSTFIELDS => $payload,
      CURLOPT_RETURNTRANSFER => true,
  ]);
  $body = curl_exec($ch);
  $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  curl_close($ch);
  echo $code . " " . $body . PHP_EOL;
  ```
</CodeGroup>

## Resposta de sucesso (formato)

```json theme={null}
{
  "data": { }
}
```

O conteúdo de `data` depende do produto. Veja também a **Referência da API** para o contrato e os detalhes do endpoint do produto que utilizar.
