---
title: "Create an allocation"
method: POST
path: "/allocation"
tags: ["Allocations"]
---

# Create an allocation

`POST /allocation`

Creates an allocation.

## Headers

- `Accept` 'application/vnd.Creative Force.v2.3+json' | 'application/vnd.Creative Force.v2.3+xml', required
- `x-api-language` string[]

## Request body

- object
  - `amount` number, required — Amount to allocate to the entry, in the fund's currency. Cannot exceed the fund's available budget.
  - `entry` string, required — Slug of the entry to allocate funds to.
  - `fund` string, required — Slug of the fund to draw the allocation from.

## Response `201`

Allocation created.

- Allocation — Award of funds from a fund's budget to an entry, forming the entry-level grant slot that allocation payments are drawn against. Carries the allocated amount and the fund's currency, the outstanding balance due, and references to the related entrant, entry, fund, chapter, and season.
  - `amount` number — Total amount allocated to the entry from the fund, in the fund's currency.
  - `chapter` object — Chapter the entry belongs to. Emitted as an empty array when the entry has no chapter.
    - `slug` string — URL-safe identifier of the chapter.
    - `link` string, uri — Canonical URL of the chapter resource.
    - `name` object — Name of the chapter. Map keyed by locale code (for example, `en_GB` or `fr_FR`). Keys are drawn from the languages enabled on the account. Values are the translated string.
  - `created` string, date-time — Date and time when the allocation was created.
  - `currency` string — ISO 4217 currency code of the allocation's amounts, drawn from the fund's currency.
  - `entrant` object, nullable — Entrant who owns the entry the allocation belongs to. Emitted as an empty array when the entry has no entrant.
    - `slug` string — URL-safe identifier of the entrant.
    - `link` string, uri — Canonical URL of the entrant resource.
    - `name` string — Full display name of the entrant.
    - `first_name` string — Given name of the entrant.
    - `last_name` string — Family name of the entrant.
  - `entry` object, nullable — Entry the allocation belongs to. Emitted as an empty array when the allocation has no associated entry.
    - `slug` string — URL-safe identifier of the entry.
    - `id` integer — Internal numeric identifier of the entry.
    - `title` string — Title of the entry as submitted by the entrant.
    - `link` string, uri — Canonical URL of the entry resource.
  - `fund` object — Fund the allocation draws from.
    - `slug` string — URL-safe identifier of the fund.
    - `link` string, uri — Canonical URL of the fund resource.
    - `name` object — Name of the fund. Map keyed by locale code (for example, `en_GB` or `fr_FR`). Keys are drawn from the languages enabled on the account. Values are the translated string.
  - `paid` number — Outstanding amount due on the allocation, in the fund's currency, after deducting payments already made.
  - `season` object — Season the allocation belongs to.
    - `slug` string — URL-safe identifier of the season.
    - `link` string, uri — Canonical URL of the season resource.
    - `name` object — Name of the season. Map keyed by locale code (for example, `en_GB` or `fr_FR`). Keys are drawn from the languages enabled on the account. Values are the translated string.
  - `slug` string — URL-safe identifier of the allocation.
  - `updated` string, date-time — Date and time when the allocation was last updated.

## Other responses

- `400` — Request was rejected before the endpoint could process it. Common causes: invalid `Accept` header, unsupported `x-api-language` code, empty request body on `POST` / `PUT`, invalid JSON in the request body, or an invalid slug format in a path parameter.
- `401` — Missing `x-api-key` header.
- `403` — Authenticated request denied. Common causes: invalid or unknown API key, suspended account, or `api` feature not enabled for the account.
- `422` — Request was syntactically valid but could not be processed. Returned in two scenarios: - **Field-level validation failure** — one or more request fields violated the endpoint's validation rules. The body includes an `errors` map keyed by field name with one or more validation messages each. - **Resource-state precondition failure** — the request fields were all valid, but the target resource was in a state that does not permit the requested operation. The body carries only `message` and `status_code`; no `errors` map.
- `429` — Rate limit of 60 requests per minute exceeded.
- `503` — Service is temporarily unavailable due to regional maintenance.

## Changes

- **2026-07-07** (v2) `9b9103538ceb` — 2 info
  - api tag `Allocations` added
  - api tag `Allocation` removed
- **2026-07-01** (v2) `e96a96d4507e` — 7 info
  - added the media type `application/xml` for the response with the status `201`
  - added the media type `application/xml` for the response with the status `400`
  - added the media type `application/xml` for the response with the status `401`
  - added the media type `application/xml` for the response with the status `403`
  - …3 more
- **2026-06-30** (v2) `8a9285045d9c` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/tectonic/apis/award-force-api/changes/allocation/post.md)

---

[API](https://skmtc.dev/tectonic/apis/award-force-api.md) · [All operations](https://skmtc.dev/tectonic/apis/award-force-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/tectonic/award-force-api/revisions/9b9103538ceb/schema)
