curl --request GET \
--url https://api.registry.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/people/{document}import requests
url = "https://api.registry.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/people/{document}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.registry.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/people/{document}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.registry.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/people/{document}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.registry.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/people/{document}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.registry.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/people/{document}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.registry.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/people/{document}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"document": "52998224725",
"name": "MARIA EXEMPLO DA SILVA",
"socialName": "MARIA EXEMPLO",
"gender": "FEMALE",
"birthDate": "1984-09-17T00:00:00.000Z",
"nationality": "BRASILEIRA",
"motherName": "ANA EXEMPLO DA SILVA",
"fatherName": "JOSE EXEMPLO DA SILVA",
"maritalStatus": "CASADO",
"maritalStatusUpdatedAt": "2019-05-02T00:00:00.000Z",
"taxIdStatus": "REGULAR",
"taxIdStatusDate": "2026-10-01T00:00:00.000Z",
"taxIdRegistrationDate": "2001-03-15T00:00:00.000Z",
"taxIdFiscalRegion": "SP",
"deceased": false,
"deathYear": "2021",
"createdAt": "2026-10-29T15:00:00.000Z",
"updatedAt": "2026-10-29T15:00:00.000Z"
}{
"traceId": "1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b",
"code": "PERSON_NOT_FOUND",
"origin": "REGISTRY",
"message": "Person not found"
}{
"traceId": "1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b",
"code": "BAD_REQUEST",
"origin": "REGISTRY",
"message": "Bad Request: Your request is invalid or incomplete. Please make sure you are requesting with the right fields.",
"fields": [
{
"field": "organizationId",
"message": "Invalid UUID",
"code": "ORGANIZATIONID_UUID"
}
]
}{
"traceId": "1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b",
"code": "PERSON_LOOKUP_UNAVAILABLE",
"origin": "REGISTRY",
"message": "Person lookup unavailable"
}Get a person by CPF
Gets a person by CPF.
curl --request GET \
--url https://api.registry.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/people/{document}import requests
url = "https://api.registry.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/people/{document}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.registry.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/people/{document}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.registry.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/people/{document}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.registry.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/people/{document}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.registry.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/people/{document}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.registry.v2.portao3.com.br/realms/{realmId}/organizations/{organizationId}/people/{document}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"document": "52998224725",
"name": "MARIA EXEMPLO DA SILVA",
"socialName": "MARIA EXEMPLO",
"gender": "FEMALE",
"birthDate": "1984-09-17T00:00:00.000Z",
"nationality": "BRASILEIRA",
"motherName": "ANA EXEMPLO DA SILVA",
"fatherName": "JOSE EXEMPLO DA SILVA",
"maritalStatus": "CASADO",
"maritalStatusUpdatedAt": "2019-05-02T00:00:00.000Z",
"taxIdStatus": "REGULAR",
"taxIdStatusDate": "2026-10-01T00:00:00.000Z",
"taxIdRegistrationDate": "2001-03-15T00:00:00.000Z",
"taxIdFiscalRegion": "SP",
"deceased": false,
"deathYear": "2021",
"createdAt": "2026-10-29T15:00:00.000Z",
"updatedAt": "2026-10-29T15:00:00.000Z"
}{
"traceId": "1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b",
"code": "PERSON_NOT_FOUND",
"origin": "REGISTRY",
"message": "Person not found"
}{
"traceId": "1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b",
"code": "BAD_REQUEST",
"origin": "REGISTRY",
"message": "Bad Request: Your request is invalid or incomplete. Please make sure you are requesting with the right fields.",
"fields": [
{
"field": "organizationId",
"message": "Invalid UUID",
"code": "ORGANIZATIONID_UUID"
}
]
}{
"traceId": "1-68ee2a1b-3c4d5e6f7a8b9c0d1e2f3a4b",
"code": "PERSON_LOOKUP_UNAVAILABLE",
"origin": "REGISTRY",
"message": "Person lookup unavailable"
}PERSON_LOOKUP_RESTRICTED, without a reason.Path Parameters
ID of your realm.
Format: UUID
ID of the organization making the request.
Format: UUID
CPF of the person: 11 digits. Dots, dashes and spaces are ignored.
Response
Successful response
A person, by CPF. Text comes in upper case, as the registry publishes it.
CPF of the person, 11 digits.
"52998224725"
Full name.
"MARIA EXEMPLO DA SILVA"
Social name, when the person registered one.
"MARIA EXEMPLO"
MALE or FEMALE.
MALE, FEMALE "FEMALE"
Date of birth.
"1984-09-17T00:00:00.000Z"
Nationality, as published.
"BRASILEIRA"
Mother's name.
"ANA EXEMPLO DA SILVA"
Father's name.
"JOSE EXEMPLO DA SILVA"
Marital status, as published.
"CASADO"
When the marital status was last updated at the source.
"2019-05-02T00:00:00.000Z"
Status of the CPF at Receita Federal: REGULAR, PENDING_REGULARIZATION, SUSPENDED, CANCELED, ANNULLED, HOLDER_DECEASED or INCOMPLETE_DATA.
REGULAR, PENDING_REGULARIZATION, SUSPENDED, CANCELED, ANNULLED, HOLDER_DECEASED, INCOMPLETE_DATA "REGULAR"
When the CPF status was last checked at Receita Federal.
"2026-10-01T00:00:00.000Z"
When the CPF was registered.
"2001-03-15T00:00:00.000Z"
Receita Federal fiscal region of the CPF.
"SP"
Whether there is a record of the person's death.
false
Year of death, when deceased is true.
"2021"
When this person was first added to the registry.
"2026-10-29T15:00:00.000Z"
When this record last changed.
"2026-10-29T15:00:00.000Z"