Benchmark Proxies

Benchmark proxies allow entities' estimated returns to be derived from benchmark returns. A benchmark proxy configuration associates an entity with a benchmark starting from a specific date.

Base route/v1/benchmark_proxies
EndpointsGET
/v1/benchmark_proxies
/v1/benchmark_proxies/:id

POST
/v1/benchmark_proxies

PATCH
/v1/benchmark_proxies/:id

DELETE
/v1/benchmark_proxies/:id
/v1/benchmark_proxies/entity/:entityId
ProducesJSON
Application permissions required"API Access: Create, edit, and delete"
OAuth scopesGET
estimated_performance:read

POST, PATCH, and DELETE
estimated_performance:write

Resource overview

Benchmark proxies are described by the below attributes.

AttributeDescriptionExample
entity_idThe entity ID that the proxy is for. Number. Required.12345
benchmark_idThe benchmark ID to use as a proxy for returns. Number. Required.789
benchmark_nameThe name of the benchmark (read-only). String."S&P 500"
as_of_dateThe date from which this proxy configuration applies, in YYYY-MM-DD format. String. Required."2024-01-15"

Get benchmark proxies

Returns benchmark proxies filtered by one or more entity IDs.

GET /v1/benchmark_proxies

  • filter[entity_id]: Comma-separated list of entity IDs to filter by (required).
  • page[limit]: Maximum number of items to return per page (optional).

Example

GET https://examplefirm.addepar.com/api/v1/benchmark_proxies?filter[entity_id]=12345
HTTP/1.1 200 OK

{
    "data": [
        {
            "type": "benchmark_proxies",
            "id": "12345_2024-01-15",
            "attributes": {
                "entity_id": 12345,
                "benchmark_id": 789,
                "benchmark_name": "S&P 500",
                "as_of_date": "2024-01-15"
            }
        },
        {
            "type": "benchmark_proxies",
            "id": "12345_2024-06-01",
            "attributes": {
                "entity_id": 12345,
                "benchmark_id": 456,
                "benchmark_name": "Russell 2000",
                "as_of_date": "2024-06-01"
            }
        }
    ]
}

Response codes

  • 200 OK: Success
  • 400 Bad Request: Missing or invalid filter[entity_id] parameter
  • 403 Forbidden: Lacking necessary permissions
  • 404 Not Found: Entity ID is nonexistent or not permissioned

Get a single benchmark proxy

Returns a single benchmark proxy by its composite ID.

GET /v1/benchmark_proxies/:id

  • id: The composite ID in format {entityId}_{as_of_date} (e.g., 12345_2024-01-15) (required).

Example

GET https://examplefirm.addepar.com/api/v1/benchmark_proxies/12345_2024-01-15
HTTP/1.1 200 OK

{
    "data": {
        "type": "benchmark_proxies",
        "id": "12345_2024-01-15",
        "attributes": {
            "entity_id": 12345,
            "benchmark_id": 789,
            "benchmark_name": "S&P 500",
            "as_of_date": "2024-01-15"
        }
    }
}

Response codes

  • 200 OK: Success
  • 400 Bad Request: Invalid ID format
  • 403 Forbidden: Lacking necessary permissions
  • 404 Not Found: Benchmark proxy not found or entity not permissioned

Create or update benchmark proxies

Creates or updates benchmark proxies using upsert semantics. If a proxy with the same entity ID and as-of date already exists, it will be updated with the new benchmark ID; otherwise, a new proxy will be created.

POST /v1/benchmark_proxies

Example

POST https://examplefirm.addepar.com/api/v1/benchmark_proxies

{
    "data": [
        {
            "type": "benchmark_proxies",
            "attributes": {
                "entity_id": 12345,
                "benchmark_id": 789,
                "as_of_date": "2024-01-15"
            }
        }
    ]
}
HTTP/1.1 201 Created

{
    "data": [
        {
            "type": "benchmark_proxies",
            "id": "12345_2024-01-15",
            "attributes": {
                "entity_id": 12345,
                "benchmark_id": 789,
                "benchmark_name": "S&P 500",
                "as_of_date": "2024-01-15"
            }
        }
    ]
}

Validation requirements

  • The entity_id must reference an existing value-based ValuableEntity
  • The benchmark_id must reference an existing benchmark
  • No duplicate as-of dates are allowed for the same entity in a single request
  • User must have write permissions for estimated returns

Response codes

  • 201 Created: Success
  • 400 Bad Request: Invalid payload, missing required attributes, invalid benchmark ID, invalid entity type, or duplicate as-of dates in request
  • 403 Forbidden: Lacking the required permissions to write estimated returns
  • 404 Not Found: Entity ID or benchmark ID is nonexistent or not permissioned

Update a single benchmark proxy

Updates the benchmark ID for an existing benchmark proxy. Only the benchmark_id attribute can be modified; entity_id and as_of_date are immutable.

PATCH /v1/benchmark_proxies/:id

  • id: The composite ID in format {entityId}_{as_of_date} (e.g., 12345_2024-01-15) (required).

Example

PATCH https://examplefirm.addepar.com/api/v1/benchmark_proxies/12345_2024-01-15

{
    "data": {
        "type": "benchmark_proxies",
        "id": "12345_2024-01-15",
        "attributes": {
            "benchmark_id": 456
        }
    }
}
HTTP/1.1 200 OK

{
    "data": {
        "type": "benchmark_proxies",
        "id": "12345_2024-01-15",
        "attributes": {
            "entity_id": 12345,
            "benchmark_id": 456,
            "benchmark_name": "Russell 2000",
            "as_of_date": "2024-01-15"
        }
    }
}

Response codes

  • 200 OK: Success
  • 400 Bad Request: Invalid payload, attempting to modify immutable attributes, or invalid benchmark ID
  • 403 Forbidden: Lacking the required permissions to write estimated returns
  • 404 Not Found: Benchmark proxy not found or entity not permissioned

Delete a single benchmark proxy

Deletes a single benchmark proxy configuration.

DELETE /v1/benchmark_proxies/:id

  • id: The composite ID in format {entityId}_{as_of_date} (e.g., 12345_2024-01-15) (required).

Example

DELETE https://examplefirm.addepar.com/api/v1/benchmark_proxies/12345_2024-01-15
HTTP/1.1 204 No Content

Response codes

  • 204 No Content: Successfully deleted the benchmark proxy
  • 400 Bad Request: Invalid ID format
  • 403 Forbidden: Lacking the required permissions to write estimated returns
  • 404 Not Found: Benchmark proxy not found or entity not permissioned

Delete all benchmark proxies for an entity

Deletes all benchmark proxy configurations for a specific entity.

DELETE /v1/benchmark_proxies/entity/:entityId

  • entityId: The entity ID (integer) (required).

Example

DELETE https://examplefirm.addepar.com/api/v1/benchmark_proxies/entity/12345
HTTP/1.1 204 No Content

Response codes

  • 204 No Content: Successfully deleted all benchmark proxies for the entity
  • 400 Bad Request: Invalid entity ID format
  • 403 Forbidden: Lacking the required permissions to write estimated returns
  • 404 Not Found: Entity ID is nonexistent or not permissioned

Did this page help you?