---
title: "Upload funder policy file for parsing"
method: POST
path: "/api/broker_funder_policies/upload/"
---

# Upload funder policy file for parsing

`POST /api/broker_funder_policies/upload/`

Upload a spreadsheet (XLS, XLSX, CSV) or PDF containing funder policies.
The file will be parsed asynchronously and policies will be upserted for the current user.
Only one upload job can be active at a time per user.

## Request body

- BrokerFunderPolicyUploadSchema
  - `file_base64` string, required — Base64 encoded file bytes
  - `filename` string, required — Name of file

## Response `201`

Upload job created successfully

- BrokerFunderPolicyUploadJobSchema
  - `created` string, date-time
  - `error_count` integer
  - `error_details` object, nullable
  - `error_message` string, nullable
  - `filename` string, nullable
  - `finished_at` string, date-time, nullable
  - `heron_id` string
  - `last_updated` string, date-time
  - `processed_count` integer
  - `results_summary` object, nullable
  - `started_at` string, date-time, nullable
  - `status` 'queued' | 'processing' | 'completed' | 'failed'
  - `success_count` integer
  - `total_count` integer, nullable

## Other responses

- `400` — Invalid file or another job is already in progress
- `409` — Another upload job is already active

---

[API](https://skmtc.net/herondata/apis/heron-data-api.md) · [All operations](https://skmtc.net/herondata/apis/heron-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/herondata/heron-data-api/revisions/f2e441edece2/schema)
