PPF Directory Line Search
Overview
Search for PPF directory line entries by filtering on SIREN, SIRET, or other identifiers. This endpoint provides a live proxy to France's PPF Annuaire search API, enabling lookup of PA, Plateforme Agréée, registration details for a given company.
Endpoint Information
| Property | Value |
|---|---|
| URL | /annuaire/FR/directory-line/search |
| Method | POST |
| Content-Type | application/json |
| Base URL | Stage Environment URL https://api-fr-stage.docnova.ai/ |
| Base URL | Production Environment URL https://api-fr.docnova.ai/ |
| Authorization | R-Auth header, JWT token |
Example Request
curl --location 'https://api-fr.docnova.ai/annuaire/FR/directory-line/search' \
--header 'Accept: */*' \
--header 'Content-Type: application/json' \
--header 'R-Auth: <jwt-token>' \
--data '{
"filtres": {
"siren": {
"op": "strict",
"valeur": "{siren}"
}
},
"limite": 10
}'
Request Parameters
Headers
| Field | Type | Required | Description |
|---|---|---|---|
| R-Auth | JWT | Yes | User session JWT token. Sent without a Bearer prefix. |
| Content-Type | string | Yes | Must be application/json. |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| filtres | object | Yes | Filter criteria for the search. |
| filtres.siren | object | No | Filter by SIREN number. |
| filtres.siren.op | string | Yes | Operator. Use strict for exact match. |
| filtres.siren.valeur | string | Yes | 9-digit SIREN number to search for. |
| limite | integer | No | Maximum number of results to return. Default: 10. |
Responses
200 - Successful Response
{
"resultats": [
{
"identifiantAdressage": "945350858",
"matriculePlateforme": "0144",
"identifiantRoutage": null,
"siren": "945350858",
"siret": null,
"suffixeAdressage": null,
"dateFinEffet": null,
"dateFinEffective": "9999-12-31",
"historisation": {
"idInstance": 22484275,
"dateDebutEffet": "2026-08-07",
"dateDefinition": null,
"creePar": null,
"masque": null
},
"plateforme": null,
"uniteLegale": null,
"etablissement": null,
"codeRoutage": null
}
],
"recherche": null,
"nombre_total_resultats": 1
}
Response Fields
| Field | Type | Nullable | Description |
|---|---|---|---|
| resultats | array | No | List of matching directory line entries. |
| nombre_total_resultats | integer | No | Total number of matching results. |
| recherche | object | Yes | Search metadata returned by PPF. |
resultats Item Fields
| Field | Type | Nullable | Description |
|---|---|---|---|
| identifiantAdressage | string | Yes | Primary addressing identifier, SIREN, SIRET, or routing code. |
| matriculePlateforme | string | Yes | PPF registration code of the Plateforme Agréée. |
| identifiantRoutage | string | Yes | Routing identifier. |
| siren | string (9) | Yes | Company SIREN number. |
| siret | string (14) | Yes | Establishment SIRET number. |
| suffixeAdressage | string | Yes | Sub-unit suffix for SIRET entries. |
| dateFinEffet | LocalDate | Yes | Planned validity end date. |
| dateFinEffective | LocalDate | Yes | Actual effective end date. 9999-12-31 means no end date. |
| historisation.idInstance | integer | Yes | PPF-assigned unique instance identifier. Use this with the PPF Directory Lookup endpoint. |
| historisation.dateDebutEffet | LocalDate | Yes | Effective start date of this registration. |
⚠️ Important: Use the idInstance from this response, not from the SIREN lookup endpoint, when calling /annuaire/FR/directory-line/instance/{idInstance}. The SIREN lookup returns a different idInstance belonging to the company's legal record, which is unrelated to the PA registration.
Error Responses
All errors follow this structure:
{
"errorMessage": "<description>",
"errorType": "<error key>",
"errorTitle": "<HTTP status>",
"status": "<code>",
"timestamp": "ISO8601",
"path": "<request path>"
}
| Status | Condition | Message |
|---|---|---|
| 401 | Missing, malformed, or expired R-Auth header. | Not authorized for this action |
| 500 | Unexpected error during PPF communication. | An unexpected error occurred |
| 503 | PPF integration disabled in server configuration. | PPF integration is currently unavailable |