Catalogue detail for a single fund allocation

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://docs.getpenfold.dev/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
{
  "Penfold Partner API MCP server": {
    "url": "https://docs.getpenfold.dev/mcp"
  }
}

Close
GET /fund_allocations/{fund_allocation_id}

Catalogue detail for a single fund allocation. Compound allocations (e.g. Penfold Balance) are represented as a single allocation entry. Returns the full available mid price history for the allocation's underlying funds.

Path parameters

  • fund_allocation_id string Required

Responses

  • 200 application/json

    Fund allocation detail retrieved successfully.

    Hide response attributes Show response attributes object
    • id string Required
    • name string Required
    • description string | null
    • provider string | null
    • risk_level integer | null
    • indicative_annual_fee_percent number Required

      Indicative combined annual fee percentage (Penfold administration fee at the lowest pot threshold plus fund manager charge); not personalised per worker or employer bespoke rates.

    • asset_allocation array[object] | null
      Hide asset_allocation attributes Show asset_allocation attributes object
      • asset_class string Required
      • percent number Required

        Minimum value is 0, maximum value is 100.

    • asset_allocation_as_of_date string(date) | null
    • industries array[object] | null
      Hide industries attributes Show industries attributes object
      • name string Required
      • percent number Required

        Minimum value is 0, maximum value is 100.

    • markets array[object] | null
      Hide markets attributes Show markets attributes object
      • name string Required
      • percent number Required

        Minimum value is 0, maximum value is 100.

    • performance array[object] Required

      Full historical mid unit price series in pence. Compound allocations average mid prices across underlying funds on dates where every fund has data (equal-weight mid prices on overlapping dates).

      Hide performance attributes Show performance attributes object
      • date string(date) Required

        Point date (YYYY-MM-DD). Cadence is not guaranteed to be daily.

      • value_pence integer Required

        Value at date, in pence.

  • 401 application/json

    Unauthorized.

    Hide response attribute Show response attribute object
    • error string

      A descriptive error message.

  • 404 application/json

    Fund allocation not found.

    Hide response attribute Show response attribute object
    • error string

      A descriptive error message.

  • 405 application/json

    Method not allowed

    Hide response attribute Show response attribute object
    • error string

      A descriptive error message.

  • 500 application/json

    Fund allocation data is incomplete (e.g. no linked funds) or performance could not be produced.

    Hide response attribute Show response attribute object
    • error string

      A descriptive error message.

  • 503 application/json

    Price history is temporarily unavailable.

    Hide response attribute Show response attribute object
    • error string

      A descriptive error message.

GET /fund_allocations/{fund_allocation_id}
curl \
 --request GET 'https://payroll-api.getpenfold.dev/v4/fund_allocations/{fund_allocation_id}' \
 --header "Authorization: Bearer $ACCESS_TOKEN"
Response examples (200)
{
  "id": "string",
  "name": "string",
  "description": "string",
  "provider": "string",
  "risk_level": 42,
  "indicative_annual_fee_percent": 42.0,
  "asset_allocation": [
    {
      "asset_class": "string",
      "percent": 42.0
    }
  ],
  "asset_allocation_as_of_date": "2026-05-04",
  "industries": [
    {
      "name": "string",
      "percent": 42.0
    }
  ],
  "markets": [
    {
      "name": "string",
      "percent": 42.0
    }
  ],
  "performance": [
    {
      "date": "2026-05-04",
      "value_pence": 120000
    }
  ]
}
Response examples (401)
{
  "error": "Bad request: invalid data provided."
}
Response examples (404)
{
  "error": "Bad request: invalid data provided."
}
Response examples (405)
{
  "error": "Bad request: invalid data provided."
}
Response examples (500)
{
  "error": "Bad request: invalid data provided."
}
Response examples (503)
{
  "error": "Bad request: invalid data provided."
}