fonciqAPI
Tâches

Lire une tâche

Portée `jobs:read`. État, documents, résultat et capacité du jour de chaque compte touché. Il n'existe pas de route séparée pour la capacité : elle est portée par cette réponse. Tant que l'index n'est pas analysé, `result` est nul. Une tâche terminée d'un seul lot porte `result.index`. Un lot groupé porte `result.indexes`, un bloc par lot. Chaque bloc contient le PDF (`pdf_url`), l'adresse des lignes (`entries_url`) et `entries`. Le CSV est `GET /v1/jobs/{id}/results`. Pour un compte, `cap` vaut 540 index par jour (heure de Toronto). `on_demand_reserve` vaut 180. Les surveillances ne peuvent pas prendre cette réserve. `watch_budget_remaining` vaut min(360 − index de surveillance utilisés ce jour-là, 540 − index utilisés ce jour-là) pour ce compte. `used_today` compte les index réellement envoyés au Registre sur ce compte, appels à la demande et surveillances confondus.

GET
/v1/jobs/{id}
AuthorizationBearer <token>

Clé d'API de l'organisation. Le secret n'est montré qu'une fois. Le préfixe affichable d'une clé d'essai est fq_test_. Le hachage SHA-256 est la seule forme conservée. Le panneau d'essai de cette documentation n'envoie qu'une clé fq_test_ et n'effectue aucun débit.

Dans : en-tête

Paramètres de chemin

idstring

Corps de la réponse

application/json

application/json

application/json

application/json

curl -X GET "https://api.fonciq.ca/v1/jobs/string"
{
  "id": "job_01HZX",
  "status": "queued",
  "kind": "registre",
  "result": null,
  "documents": [],
  "capacity": [
    {
      "account_id": "rfa_exemple",
      "cap": 540,
      "on_demand_reserve": 180,
      "used_today": 12,
      "watch_budget_remaining": 348,
      "resets_at": "2026-10-25T04:00:00Z"
    }
  ]
}
{
  "error": {
    "code": "unauthorized",
    "message": "Clé d'API refusée.",
    "request_id": "req_01HZX"
  }
}
{
  "error": {
    "code": "account_not_found",
    "message": "Ce compte du Registre n'appartient pas à l'organisation.",
    "request_id": "req_01HZX"
  }
}
{
  "error": {
    "code": "rate_limited",
    "message": "Trop de requêtes pour cette clé.",
    "request_id": "req_01HZX"
  }
}

Lire les lignes d'un index GET

Portée `jobs:read`. Lecture directe des lignes conservées pour cet index. Même objet qu'une tâche terminée : `parse`, `unparsed_retained` et `entries`. JSON par défaut. `format=csv` ou `Accept: text/csv` renvoie le CSV. `format` l'emporte. Toute autre valeur reçoit `400` et le code `invalid_request`. `404` lorsque le document n'est pas un index produit pour l'organisation. Le PDF de cet index reste la source, même si `entries` est vide. `parse.confidence` et la confiance de chaque ligne valent `unscored`. `needs_review` est nul sur une ligne structurée. `unparsed_retained` vaut `false` et `unparsed` est omis. Aucune ligne n'est inventée. Un tirage sans PDF n'a pas de lignes.

Lire le résultat d'une tâche GET

Portée `jobs:read`. Lignes d'index de la tâche. JSON par défaut : `indexes`, un bloc par lot. Une tâche unitaire a un seul élément. Un lot groupé en a un par lot. `format=csv` ou `Accept: text/csv` aplatit les lignes structurées en CSV. `format` l'emporte. Toute autre valeur reçoit `400` et le code `invalid_request`. Colonnes, dans cet ordre : `lot`, `matricule`, `inscription`, `date`, `nature`, `parties`, `document_url`, `read_method`, `confidence`, `needs_review`, `page_status`. Une rangée par ligne structurée. `parties` est `Rôle: Nom`, joint par `; `. `matricule` vient du rôle du MAMH pour ce lot. La cellule est vide sinon. `document_url` est le PDF d'index, qui fait foi. `confidence` vaut `unscored`. `needs_review` est vide sur une ligne structurée, comme `null` en JSON. `read_method` et `page_status` sont vides : ces valeurs sont prévues. Les radiations, les remarques, `seqnt_prodt`, `portal_href` et `raw_text` restent dans le JSON. Tant que `unparsed_retained` vaut `false`, le CSV ne contient que les lignes structurées. Les rangées écartées ne sont pas écrites comme des lignes vides.