Look up and validate the CURP in seconds
We get the Unique Population Registry Key from RENAPO. We validate the one you already have on file against that same source. The answer says whether the record exists.
CURP retrieval and validation
Both query the National Population Registry and return what it publishes.
CURP retrieval
With the given name, surnames, date of birth, sex and state of birth, we query RENAPO. We hand back the eighteen-character key it has on record.
RENAPO validation
You send a key already on file and we look it up in that same registry. If it exists, the answer carries its holder's details.
Validation returns the record and the holder of the key.
Singula queries RENAPO and returns the CURP record: whether it exists, its data and whose name it is under. The answer arrives in seconds, with its receipt in the same query.
How it works
Both operations run in three steps.
You send the data
From your system or from the dashboard, with the key to validate or with the person's birth details.
Your system or the dashboard
We ask RENAPO
Getting and validating query the same registry. The response returns what RENAPO publishes.
Official source
You get the record
The answer comes straight back. If the key belongs to a customer on file, it is stored under them.
Straight to the file
The response returns the RENAPO record and the date of the lookup.
The full record
Given names, surnames, date of birth, sex and state, exactly as registered with RENAPO.
The standing of the record
What state RENAPO holds that key in today, and which kind of document the person was registered with.
The official spelling
The spelling under which RENAPO holds the person's name and details.
A record of the lookup
Every lookup keeps its date and its receipt.
The field-by-field detail lives in the documentation.
The cross-check against your file
When the customer is already on file, the answer flags which fields in your record agree with RENAPO and which do not. The cross-check comes in the same response, with the official value for each field.
Where it fits in your operation
The same CURP lookup runs at four points of the operation.
Customer onboarding
The lookup confirms the record before the account opens. The file is prefilled with what RENAPO publishes.
Compliance files
Every lookup is stored in the customer's file with its receipt and its date. The full history is read from one place.
Employees and vendors
Before a contract is signed or a vendor is onboarded, you confirm the person is registered nationally.
Existing records
The same lookup runs over records already captured, one at a time or in batches. The response flags the entries that do not match RENAPO.
The rest of the file is built on a validated CURP
Each Singula product adds a different layer of the same file, on the same account.
See identity verification- 01
The holder's identity
Verification with an official document and a selfie confirms the person is the holder of that record.
- 02
The voter ID card
INE validation confirms the card is current and belongs to those details.
- 03
Tax standing
The RFC lookup confirms with the tax authority that the tax ID is registered.
- 04
Restricted lists
Screening against public lists says whether the person appears on any of them before onboarding.
- 05
The customer file
Every lookup is filed under the customer, so the whole history lives in one place.
- 06
The holder's consent
A CURP is personal data; the privacy notice and the subject's consent are collected before any lookup. On Singula's side, what was checked and when stays on record.
Everything runs through the API.
Every operation on this page runs as an API call. The full field-by-field reference is in the documentation.
- Use it directly (the value in the body) or on a customer file. Same response.
curl -X POST https://api.singula.mx/app/curp \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"name": "Maria", "last_name": "Garcia",
"mothers_last_name": "Rodriguez", "gender": "M",
"birth_day": "15", "birth_month": "03",
"birth_year": "1990", "birth_place": "DF"}'
→ { "request_id": "6622f8a1c1d2e3f4a5b6c7d8", "data": "GARM900315MDFRRL09" }Frequently asked questions
Yes. Retrieval returns the key to prefill a form. Validation puts on record that the entry exists at RENAPO and whose name it is under.
The response indicates the key is not in the national registry. A later lookup returns the record if it has since appeared in RENAPO.
The answer arrives in seconds, within the same lookup. For batch processing, the result is delivered straight to your system as soon as it is ready.
Yes. When the key belongs to a customer registered in Singula, the result is stored in their file. The match against your data comes back in the same response.
Yes. The test environment is free and responds with sample data in the same structure as the real result.
Validate your first CURP today
Create your account and start in the test environment.
Create free account