Generated Reports
Generated reports represent completed report generation jobs. A job produces PDF output for the portfolios associated with a report, either from a manual run or a schedule trigger. This API provides read-only access to job metadata and file downloads.
Use this API to list completed report jobs, check status, identify failures, and download the resulting archive.
Overview
| Base route | /v1/generated_reports |
| Produces | JSON |
| Pagination | Yes |
| Available methods | GET only (read-only) |
| OAuth scopes | FILES (plus USERS for creator endpoint) |
Access requirements
Access to all tools and portfolios.
Resource attributes
| Attribute | Type | Description |
|---|---|---|
id | UUID | Unique job identifier. |
report_id | Integer | ID of the report definition this job ran. |
report_name | String | Name of the report. |
status | String | FINISHED, ERROR, or CANCELED. |
started_at | String | UTC timestamp when the job started. |
completed_at | String | UTC timestamp when the job finished. |
job_type | String | SCHEDULED (triggered by schedule) or AD_HOC (manual run). |
generated_portfolios | Array | Successfully generated portfolios. Each object: portfolio_type, portfolio_id, portfolio_name, file_id, has_been_published. |
failed_portfolios | Array | Portfolios that failed. Each object: portfolio_type, portfolio_id, portfolio_name. |
Relationships
| Relationship | Type | Description |
|---|---|---|
creator | users | User who initiated the job. |
zipped_file | files | Zip archive containing all generated PDFs. |
Access these via:
- GET
/v1/generated_reports/:id/creatoror/v1/generated_reports/:id/zipped_filefor full resource details. - GET
/v1/generated_reports/:id/relationships/creator(orzipped_file) for ID-only linkage. - GET
/v1/generated_reports/:id/zipped_file/downloadfor binary file download.
Filter parameters
All filters apply to the list endpoint (GET /v1/generated_reports).
| Parameter | Description |
|---|---|
filter[completed_after] | Jobs completed after this UTC timestamp. Example: 2021-05-14T12:03:39Z |
filter[completed_before] | Jobs completed before this UTC timestamp. |
filter[status] | Comma-separated statuses. Example: FINISHED,ERROR |
filter[entityId] | Jobs for a specific entity portfolio. |
filter[groupId] | Jobs for a specific group portfolio. |
Get all generated reports
Returns all accessible report jobs, sorted by completion time (most recent first).
GET /v1/generated_reports
curl -X GET "https://{firm}.addepar.com/api/v1/generated_reports?filter[status]=FINISHED&page[size]=50" \
-H "Authorization: Basic {credentials}" \
-H "Addepar-Firm: 1" \
-H "Accept: application/vnd.api+json"
{
"data": [
{
"type": "generated_reports",
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"attributes": {
"report_id": 42,
"report_name": "Quarterly Performance Report",
"status": "FINISHED",
"started_at": "2021-02-14T10:15:30.00Z",
"completed_at": "2021-02-14T14:25:45.00Z",
"job_type": "AD_HOC",
"generated_portfolios": [
{
"portfolio_type": "entity",
"portfolio_id": 21,
"portfolio_name": "Tony Stark",
"file_id": 101,
"has_been_published": false
}
],
"failed_portfolios": []
},
"relationships": {
"creator": {
"data": {"type": "users", "id": "84"},
"links": {
"self": "/v1/generated_reports/a1b2c3d4-e5f6-7890-abcd-ef1234567890/relationships/creator",
"related": "/v1/generated_reports/a1b2c3d4-e5f6-7890-abcd-ef1234567890/creator"
}
},
"zipped_file": {
"data": {"type": "files", "id": "61"},
"links": {
"self": "/v1/generated_reports/a1b2c3d4-e5f6-7890-abcd-ef1234567890/relationships/zipped_file",
"related": "/v1/generated_reports/a1b2c3d4-e5f6-7890-abcd-ef1234567890/zipped_file"
}
}
}
}
],
"included": [],
"links": { "next": "/v1/generated_reports?page[number]=1&page[size]=50" }
}
Response codes:
200 OK-- Success400 Bad Request-- Invalid filter parameters403 Forbidden-- Insufficient permissions
Get a generated report
Returns a single report job by UUID.
GET /v1/generated_reports/:id
curl -X GET "https://{firm}.addepar.com/api/v1/generated_reports/a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
-H "Authorization: Basic {credentials}" \
-H "Addepar-Firm: 1" \
-H "Accept: application/vnd.api+json"
{
"data": {
"type": "generated_reports",
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"attributes": {
"report_id": 42,
"report_name": "Quarterly Performance Report",
"status": "ERROR",
"started_at": "2021-02-14T10:15:30.00Z",
"completed_at": "2021-02-14T14:25:45.00Z",
"job_type": "AD_HOC",
"generated_portfolios": [
{
"portfolio_type": "entity",
"portfolio_id": 21,
"portfolio_name": "Tony Stark",
"file_id": 101,
"has_been_published": false
}
],
"failed_portfolios": [
{
"portfolio_type": "entity",
"portfolio_id": 22,
"portfolio_name": "Thanos"
}
]
}
}
}
Response codes:
200 OK-- Success403 Forbidden-- Insufficient permissions404 Not Found-- Report does not exist or is still generating
Download the zip archive
Returns the binary zip file containing all generated PDFs for a completed job.
GET /v1/generated_reports/:id/zipped_file/download
curl -X GET "https://{firm}.addepar.com/api/v1/generated_reports/a1b2c3d4-e5f6-7890-abcd-ef1234567890/zipped_file/download" \
-H "Authorization: Basic {credentials}" \
-H "Addepar-Firm: 1" \
-o "report.zip"
Returns Content-Type: application/binary with a Content-Disposition attachment header.
Response codes:
200 OK-- Binary file returned403 Forbidden-- Insufficient permissions404 Not Found-- Report does not exist or has no archive
Related
- Report Schedules -- Manage automated report generation schedules
- Report List -- Discover report IDs for use with reporting endpoints
- Files -- Download individual generated files via
GET /v1/files/:id/download
Updated 4 days ago