Lookup osce · rnp-by-ruc by RUC
https://api.latinfo.dev/pe/osce/rnp-by-ruc/ruc/{ruc}
An anonymous role and position associated with the company, with its effective-start date. Coverage: Governance/ownership-role categories for legal-entity providers in RNP publications. Lookup by ruc as a string, preserving leading zeros. Accepted syntax and normalization are defined by the contract below. Person names and document identifiers are excluded. These records cannot identify owners or beneficial owners. Returns all records as an array. Import time is not observation time; inspect freshness headers. Add limit (1–500) and offset to retrieve an explicit page; without them the complete original array is returned. X-Total-Count gives the exact row count; follow Link rel=next to retrieve all pages.
Source contract
- Publisher
- OSCE / OECE, Peru
- Coverage
- Governance/ownership-role categories for legal-entity providers in RNP publications.
- Record meaning
- An anonymous role and position associated with the company, with its effective-start date.
- Identifier
- Lookup by ruc as a string, preserving leading zeros. Accepted syntax and normalization are defined by the contract below.
- Accepted pattern
^\d{11}$- Cardinality
many- License
- Reuse permission has not been verified. Public access is not a reuse license.
Known limitations
- Person names and document identifiers are excluded. These records cannot identify owners or beneficial owners.
Parameters
rucstringpathrequiredRUC in the source's normalized format. Keep identifiers as strings; preserve leading zeros.
Example: 20100000335
limitintegerqueryOptional page size. Supplying limit or offset enables explicit pagination; default page size is 100.
offsetintegerqueryRow offset, default 0. Keep the same source generation while collecting pages.
generationstringqueryOpaque source-generation guard, automatically included in the next-page Link. A changed generation returns 409; restart retrieval.
Request example
curl https://api.latinfo.dev/pe/osce/rnp-by-ruc/ruc/20100000335 \
-H "Authorization: Bearer $LATINFO_API_KEY"
Responses
200Published source records. Missing data is not a clearance or a negative finding.
Response headers
X-Latinfo-Imported-AtImport time, not the date of the government observation.
X-Source-Updated-AtPublisher update time, when known.
X-Latest-Observation-AtLatest date in returned records, when known.
X-Freshness-Statusstring
CURRENT · DELAYED · STALE · UNKNOWNX-Credits-CostActual credits charged for this request.
X-Source-GenerationOpaque immutable source generation. Follow the guarded next-page Link when collecting a history.
X-Total-CountExact row count for this identifier when pagination is requested.
X-Page-Offsetinteger
X-Page-Limitinteger
LinkNext page URL, rel=next. Absent at the end.
application/jsonResponse fields
[].ruc string requiredLookup by ruc as a string, preserving leading zeros. Accepted syntax and normalization are defined by the contract below.
[].tipo_rol string requiredPublished anonymous role category; no person name or document identifier is returned.
[].fecha_inicio_vigencia string requiredPublished fecha inicio vigencia date. Format: YYYYMMDD.
[].forma_societaria string requiredRegistered company legal form.
[].cargo string requiredPublished governance position; empty when no matching position is supplied. No person identity is exposed.
Response schema
{
"type": "array",
"items": {
"type": "object",
"properties": {
"ruc": {
"type": "string",
"description": "Lookup by ruc as a string, preserving leading zeros. Accepted syntax and normalization are defined by the contract below."
},
"tipo_rol": {
"type": "string",
"description": "Published anonymous role category; no person name or document identifier is returned.",
"x-latinfo-meaning": "text"
},
"fecha_inicio_vigencia": {
"type": "string",
"description": "Published fecha inicio vigencia date. Format: YYYYMMDD.",
"x-latinfo-meaning": "date"
},
"forma_societaria": {
"type": "string",
"description": "Registered company legal form.",
"x-latinfo-meaning": "text"
},
"cargo": {
"type": "string",
"description": "Published governance position; empty when no matching position is supplied. No person identity is exposed.",
"x-latinfo-meaning": "text"
}
},
"required": [
"ruc",
"tipo_rol",
"fecha_inicio_vigencia",
"forma_societaria",
"cargo"
],
"additionalProperties": false
}
}400Invalid identifier or query. Correct the input before retrying.
401Missing or invalid API key. Authenticate before retrying.
404No published record, or identifier outside the legal-entity scope. Not proof that the company does not exist.
409Source generation changed during paginated retrieval. Restart from offset 0.
429Rate or credit limit exceeded. Inspect the response and rate-limit headers before retrying.
503Source unavailable. Report unavailable, not an empty result.
Example JSON
Illustrative schema example. This is not a live response.
[
{
"ruc": "string",
"tipo_rol": "string",
"fecha_inicio_vigencia": "string",
"forma_societaria": "string",
"cargo": "string"
}
]Provenance and limitations
Coverage varies by country and public source. A missing field is not evidence that the underlying fact does not exist. Public registries may be delayed or contain source errors; inspect the returned evidence and source date before relying on a result.