Reports & Artifacts — Developer Docs
Generate due-diligence and feasibility reports, then download artifacts through one-time links.
How do I generate and download reports?
| Endpoint | What it does | Rate limit |
|---|---|---|
POST /v1/projects/{project_id}/reports | Start a report job (202 with job_id, nullable run_id and poll) | 5/min |
GET /v1/runs/{run_id} | Poll the run; a succeeded report names its result.deliverable_ids | 120/min |
GET /v1/projects/{project_id}/runs | List the project's runs in cursor pages | 60/min |
GET /v1/projects/{project_id}/deliverables | List ready files in cursor pages | 60/min |
GET /v1/projects/{project_id}/deliverables/{deliverable_id} | Read file metadata without minting a link | 60/min |
POST /v1/projects/{project_id}/deliverables/{deliverable_id}/links | Mint a fresh one-time download link | 30/min |
GET /v1/downloads/{token} | Stream the file a one-time link names; the link is the credential | 60/min per IP |
Report generation:
report_typeisdue_diligenceorfeasibility.- Generation is asynchronous: follow the returned
poll. - When
pollnames/v1/runs/{run_id}, poll that run until it is terminal, respectingretry_after_seconds; a finished report has statussucceeded. - When no run was recorded or the credential lacks
project:read,pollkeeps the report path.
REST callers can poll that path; MCP callers look for the report with precisiondocs_list_deliverables in a few minutes.
- If a matching report job is already queued or running, the API attaches to the in-flight job instead of dispatching (and billing) a duplicate.
Deliverable downloads:
- Use a report run's
result.deliverable_ids, an export or agent turn'sartifact_idasdeliverable_id, or list the project's ready deliverables.
Listing and reading metadata mint no link.
- The links endpoint (
precisiondocs_create_download_link) returnsurl,expires_atandsingle_use: the URL works once and expires after 15 minutes, and the file streams from our server without exposing storage URLs or credentials.
Request another link whenever you need a fresh one; reminting is free.
- Hand your user only these PrecisionDocs links.
If your own code downloads the file, mint a fresh link for the user, because the one you used is spent.