---
title: "Create or update allocations to a group, keyed on (jobId, groupId, effectiveDate)"
method: POST
path: "/v1/org/{orgId}/allocation/group/{groupId}"
tags: ["allocation"]
---

# Create or update allocations to a group, keyed on (jobId, groupId, effectiveDate)

`POST /v1/org/{orgId}/allocation/group/{groupId}`

## Path parameters

- `orgId` string, required
- `groupId` string, required

## Request body

- AllocationCreateRow[]
  - `jobId` string, required
  - `allocation` number, required
  - `effectiveDate` string, date, required
  - `endDate` string, date
  - `notes` string
  - `derivedFromTeamAllocation` boolean

## Response `200`

ok -- inspect each row's result

- AllocationBatchResult
  - `results` AllocationRowResult[], required
    - `index` integer, required
    - `jobId` string, required
    - `allocation` GroupAllocation
      - `id` string, required — globally unique id
      - `orgId` string, required — parent organization id
      - `jobId` string, required — job that is allocated -- may be an open job
      - `groupId` string, required — group the job is allocated to
      - `groupTypeId` string, required — group type of the group this allocation is for
      - `allocation` number, required — portion of the job's capacity allocated to the group, as a decimal (0.25 means 25%)
      - `effectiveDate` string, date, required — first date this allocation applies
      - `endDate` string, date — last date this allocation applies, or null if it is open-ended
      - `notes` string — free-text note about this allocation
      - `derivedFromTeamAllocation` boolean — true when this record was derived by dividing a team-level allocation across team members
      - `createId` string — created by user id
      - `createBehalfId` string — created on behalf of user id
      - `createAttribution` Attribution
        - `principalUserId` string
        - `agentUserIds` string[]
        - `eventId` string
        - `aiChatId` string
        - `aiToolUseId` string
        - `channel` 'WEB' | 'MOBILE' | 'SLACK' | 'TEAMS' | 'MCP'
      - `createAt` string — created timestamp
      - `updateId` string — last updated by user id
      - `updateBehalfId` string — last updated on behalf of user id
      - `updateAttribution` Attribution
        - `principalUserId` string
        - `agentUserIds` string[]
        - `eventId` string
        - `aiChatId` string
        - `aiToolUseId` string
        - `channel` 'WEB' | 'MOBILE' | 'SLACK' | 'TEAMS' | 'MCP'
      - `updateAt` string — last updated timestamp
      - `deleteId` string — deleted by user id
      - `deleteBehalfId` string — deleted on behalf of user id
      - `deleteAttribution` Attribution
        - `principalUserId` string
        - `agentUserIds` string[]
        - `eventId` string
        - `aiChatId` string
        - `aiToolUseId` string
        - `channel` 'WEB' | 'MOBILE' | 'SLACK' | 'TEAMS' | 'MCP'
      - `deleteAt` string — deleted timestamp
    - `created` boolean
    - `totalAllocation` number, required
    - `warnings` string[], required
    - `error` string

## Other responses

- `400` — invalid data
- `401` — not authorized
- `403` — permission denied
- `404` — org or group not found

## Changes

- **2026-08-06** `50a1edd6b27e` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/charthop/apis/charthop-api/changes/v1/org/:orgId/allocation/group/:groupId/post.md)

---

[API](https://skmtc.dev/charthop/apis/charthop-api.md) · [All operations](https://skmtc.dev/charthop/apis/charthop-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/charthop/charthop-api/revisions/0521a07431d4/schema)
