Report Schedules
Use the Report Schedule API to manage automated report schedules from outside of Addepar. Schedule reports to run on a recurring basis and monitor their configuration.
Overview
| Base route | /v1/report_schedule |
| Produces | JSON |
| Pagination | Yes |
| OAuth scopes | REPORTS_WRITE |
Access requirements
GET: Access to reporting.
POST, PATCH, DELETE: Access to reporting, scheduler, and portfolios.
Resource attributes
| Attribute | Description |
|---|---|
report_id | Integer -- The ID of the report to schedule. Example: 37 |
report_name | String -- Read-only. The display name of the report. Example: "Quarterly Performance Report" |
portfolio_id | Array -- Portfolio IDs included in the schedule. Example: [56659, 23546] |
frequency | String -- Recurrence interval. Values: DAILY, WEEKLY, MONTHLY, QUARTERLY, ANNUALLY Example: "QUARTERLY" |
start_date | String -- Schedule start date in YYYY-MM-DD format. Example: "2026-10-01" |
time | String -- Scheduled run time in firm timezone. Format: HH:MM. Example: "09:00" |
report_time_period | String -- Time period covered by the report. Values: PAST_DAY, PAST_WEEK, PAST_MONTH, PAST_QUARTER, PAST_YEAR, CUSTOM Example: "PAST_QUARTER" |
portal_publishing | String -- Portal publishing behavior. Values: PUBLISH, DO_NOT_PUBLISH, USE_CONTACT_PREFERENCE Example: "USE_CONTACT_PREFERENCE" |
email_notification | String -- Email notification behavior. Values: NOTIFY, DO_NOT_NOTIFY, USE_CONTACT_PREFERENCE Example: "USE_CONTACT_PREFERENCE" |
label | String -- Label tagged to the file in File Vault. Example: "Performance" |
next_run_date | String -- Read-only. Next scheduled run date. YYYY-MM-DD format. Example: "2027-01-01" |
Filter parameters
Use filter parameters with the GET list endpoint to narrow results.
| Parameter | Description |
|---|---|
| filter[reportId] | Returns only schedules tied to the specified report IDs. Example: report_ids[]=2&report_ids[]=4 |
| filter[entity] | Returns only schedules for the specified entity or group ID. Example: entity_ids[]=218 |
| filter[frequency] | Returns only schedules matching the specified frequency. Example: frequencies[]=DAILY |
| filter[creator] | Returns only schedules matching the specified creator. Example: creator_ids[]=5 |
Get all schedules
Retrieves all report schedules within the authenticated user's firm.
GET /v1/report_schedule
Authentication
All requests require a base64-encoded API key pair:
Authorization: Basic {base64(key_id:key_secret)}See Access & Authentication for setup.
curl -X GET "https://{firm}.addepar.com/api/v1/report_schedule" \
-H "Authorization: Basic {credentials}" \
-H "Addepar-Firm: 1" \
-H "Accept: application/vnd.api+json"
{
"data": [
{
"id": "142",
"type": "report_schedules",
"attributes": {
"email_notification": "USE_CONTACT_PREFERENCE",
"frequency": "QUARTERLY",
"label": "Performance",
"next_run_date": "2027-01-01",
"portfolio_id": [56659, 23546],
"portal_publishing": "USE_CONTACT_PREFERENCE",
"report_id": 37,
"report_name": "Quarterly Performance Report",
"report_time_period": "PAST_QUARTER",
"start_date": "2026-10-01",
"time": "09:00"
},
"links": {
"self": "/v1/report_schedule/142"
}
},
{
"id": "143",
"type": "report_schedules",
"attributes": {
"email_notification": "NOTIFY",
"frequency": "MONTHLY",
"label": "Holdings",
"next_run_date": "2026-09-01",
"portfolio_id": [12345],
"portal_publishing": "PUBLISH",
"report_id": 42,
"report_name": "Monthly Holdings Summary",
"report_time_period": "PAST_MONTH",
"start_date": "2026-08-01",
"time": "05:00"
},
"links": {
"self": "/v1/report_schedule/143"
}
}
],
"included": [],
"links": {
"next": "/v1/report_schedule?page[limit]=25&page[cursor]=abc123"
}
}
{
"errors": [
{
"id": "forbidden",
"status": "403",
"title": "Forbidden",
"detail": "Insufficient permissions. Required: access to reporting."
}
]
}
Filtering
Combine query parameters to narrow results:
GET /v1/report_schedule?report_ids[]=37&frequencies[]=QUARTERLY
Response codes:
200 OK-- Success401 Unauthorized-- Invalid or missing authentication403 Forbidden-- Lacking reporting permission
Get a schedule by ID
Retrieves details for a specific schedule.
GET /v1/report_schedule/:id
curl -X GET "https://{firm}.addepar.com/api/v1/report_schedule/142" \
-H "Authorization: Basic {credentials}" \
-H "Addepar-Firm: 1" \
-H "Accept: application/vnd.api+json"
{
"data": {
"id": "142",
"type": "report_schedules",
"attributes": {
"email_notification": "USE_CONTACT_PREFERENCE",
"frequency": "QUARTERLY",
"label": "Performance",
"next_run_date": "2027-01-01",
"portfolio_id": [56659, 23546, 65987],
"portal_publishing": "USE_CONTACT_PREFERENCE",
"report_id": 37,
"report_name": "Quarterly Performance Report",
"report_time_period": "PAST_QUARTER",
"start_date": "2026-10-01",
"time": "09:00"
},
"links": {
"self": "/v1/report_schedule/142"
}
},
"included": []
}
{
"errors": [
{
"id": "not_found",
"status": "404",
"title": "Not Found",
"detail": "Schedule does not exist or is not accessible with current permissions."
}
]
}
Response codes:
200 OK-- Success401 Unauthorized-- Invalid or missing authentication403 Forbidden-- Lacking reporting permission404 Not Found-- Schedule not found or not accessible
Create a schedule
Creates a new report schedule.
POST /v1/report_schedule
Required fields
You must include
report_id,portfolio_id,frequency,start_date, andtimein the request body.
curl -X POST "https://{firm}.addepar.com/api/v1/report_schedule" \
-H "Authorization: Basic {credentials}" \
-H "Addepar-Firm: 1" \
-H "Content-Type: application/vnd.api+json" \
-H "Accept: application/vnd.api+json" \
-d '{
"data": {
"type": "report_schedules",
"attributes": {
"report_id": 37,
"portfolio_id": [56659, 23546],
"frequency": "QUARTERLY",
"start_date": "2026-10-01",
"time": "09:00",
"report_time_period": "PAST_QUARTER",
"portal_publishing": "USE_CONTACT_PREFERENCE",
"email_notification": "USE_CONTACT_PREFERENCE",
"label": "Performance"
}
}
}'
{
"data": {
"id": "144",
"type": "report_schedules",
"attributes": {
"email_notification": "USE_CONTACT_PREFERENCE",
"frequency": "QUARTERLY",
"label": "Performance",
"next_run_date": "2027-01-01",
"portfolio_id": [56659, 23546],
"portal_publishing": "USE_CONTACT_PREFERENCE",
"report_id": 37,
"report_name": "Quarterly Performance Report",
"report_time_period": "PAST_QUARTER",
"start_date": "2026-10-01",
"time": "09:00"
},
"links": {
"self": "/v1/report_schedule/144"
}
},
"included": []
}
{
"errors": [
{
"id": "bad_request",
"status": "400",
"title": "Bad Request",
"detail": "Validation failed: 'frequency' is required."
}
]
}
Response codes:
201 Created-- Schedule created successfully400 Bad Request-- Missing or invalid parameters401 Unauthorized-- Invalid or missing authentication403 Forbidden-- Lacking reporting, scheduler, or portfolio permission404 Not Found-- Report not found or not accessible409 Conflict-- Duplicate schedule
Edit a schedule
Updates an existing schedule. Only include the attributes you want to change.
PATCH /v1/report_schedule/:id
curl -X PATCH "https://{firm}.addepar.com/api/v1/report_schedule/142" \
-H "Authorization: Basic {credentials}" \
-H "Addepar-Firm: 1" \
-H "Content-Type: application/vnd.api+json" \
-H "Accept: application/vnd.api+json" \
-d '{
"data": {
"id": "142",
"type": "report_schedules",
"attributes": {
"frequency": "MONTHLY",
"time": "07:00",
"portal_publishing": "PUBLISH",
"email_notification": "NOTIFY"
}
}
}'
{
"data": {
"id": "142",
"type": "report_schedules",
"attributes": {
"email_notification": "NOTIFY",
"frequency": "MONTHLY",
"label": "Performance",
"next_run_date": "2026-11-01",
"portfolio_id": [56659, 23546, 65987],
"portal_publishing": "PUBLISH",
"report_id": 37,
"report_name": "Quarterly Performance Report",
"report_time_period": "PAST_QUARTER",
"start_date": "2026-10-01",
"time": "07:00"
},
"links": {
"self": "/v1/report_schedule/142"
}
},
"included": []
}
{
"errors": [
{
"id": "bad_request",
"status": "400",
"title": "Bad Request",
"detail": "Invalid value for 'frequency'. Must be one of: DAILY, WEEKLY, MONTHLY, QUARTERLY, ANNUALLY."
}
]
}
Response codes:
200 OK-- Schedule updated successfully400 Bad Request-- Invalid parameters401 Unauthorized-- Invalid or missing authentication403 Forbidden-- Lacking reporting, scheduler, or portfolio permission404 Not Found-- Schedule not found or not accessible
Delete a schedule
Permanently deletes an existing schedule.
DELETE /v1/report_schedule/:id
Irreversible
This operation cannot be undone. The schedule's execution history is also removed.
curl -X DELETE "https://{firm}.addepar.com/api/v1/report_schedule/142" \
-H "Authorization: Basic {credentials}" \
-H "Addepar-Firm: 1" \
-H "Accept: application/vnd.api+json"
HTTP/1.1 204 No Content
{
"errors": [
{
"id": "not_found",
"status": "404",
"title": "Not Found",
"detail": "Schedule 142 does not exist or is not accessible."
}
]
}
Response codes:
204 No Content-- Schedule deleted successfully401 Unauthorized-- Invalid or missing authentication403 Forbidden-- Lacking reporting, scheduler, or portfolio permission404 Not Found-- Schedule not found or not accessible
Related resources
- Generated Reports -- Access completed report runs and download files.
- Report List -- Retrieve report IDs for use with reporting endpoints.
- Jobs -- Understand async job patterns used across the API.
Updated 2 days ago