Positions

The positions resource is used to track employment positions.

Position object

{
  "id": "0198bf9e-788d-708b-a7a4-237c54d87f5e",
  "tenant": "01988bb8-1cfb-7c87-9326-93op0349288e",
  "location": null,
  "employer": "0198bf9e-788a-7de1-96d9-qb0ri8dmu035",
  "staff_contact": null,
  "member": "0198aee3-e20a-72e4-9ed9-zqjlbvi6ifqd",
  "position_identifier": null,
  "title": "Sales Associate ",
  "category": "ie",
  "type": "part_time",
  "industry": "other",
  "hours_week": 20,
  "notes": null,
  "meta": null,
  "date_start": "2024-01-01",
  "date_end": "2025-07-31",
  "archived_at": null,
  "created_at": "2025-08-18 19:58:10",
  "updated_at": "2025-09-30 12:30:01"
}

Fields

  • id
    required readonly string
    Unique ID of the record.
  • tenant
    required readonly string
    Unique ID of the tenant.
  • location
    nullable string
    Unique ID of the location.
  • employer
    required string
    Unique ID of the employer.
  • staff_contact
    nullable string
    Unique ID of the staff contact.
  • member
    nullable string
    Unique ID of the member.
  • position_identifier
    nullable string
    Unique identifier for the position within the tenant.
  • title
    required string
    Title of the position.
  • category
    required string
    One of:
    • dy (One day job)
    • gp (Group placement)
    • ie (Independent employment)
    • te (Transitional employment)
    • se (Supported employment)
    • other (Other)
  • type
    required string
    One of:
    • part_time (Part-time)
    • full_time (Full-time)
    • per_diem (Per diem)
    • contract (Contract)
    • internship (Internship)
    • seasonal (Seasonal)
    • self_employed (Self-employed)
    • temporary (Temporary)
  • industry
    required string
    One of:
    • administrative (Administrative)
    • agriculture (Agriculture)
    • construction (Construction)
    • education (Education)
    • finance (Finance)
    • food (Food service)
    • healthcare (Healthcare)
    • manufacturing (Manufacturing)
    • professional (Professional services)
    • real_estate (Real estate)
    • retail (Retail)
    • service (Services)
    • trades (Trades)
    • transportation (Transportation)
    • utilities (Utilities)
    • other (Other)
  • hours_week
    required integer
    Approximate number of hours per week.
  • notes
    nullable string
    Additional notes about the position.
  • meta
    nullable object
    Additional metadata about the position.
  • date_start
    required string
    Start date of the position (YYYY-MM-DD).
  • date_end
    nullable string
    End date of the position (YYYY-MM-DD). This value must be after date_start.
  • archived_at
    nullable string
    UTC timestamp of when the record was archived.
  • created_at
    required readonly string
    UTC timestamp of when the record was created.
  • updated_at
    nullable readonly string
    UTC timestamp of when the record was last updated.

Create a position

POST /tenants/{tenantId}/posiitons

The request body must include a position object.

Required permissions

positions:create locations:read contacts:read members:read staff:read

Response

HTTP status Title Description Schema
201 Created Successfully created Position object
400 Bad Request Invalid or missing field(s) Error object
404 Not Found Tenant not found Error object
409 Conflict Position identifier already exists for teannt Error object

List positions

GET /tenants/{tenantId}/positions

Required permissions

positions:read locations:read contacts:read members:read staff:read

Response

HTTP status Title Description Schema
200 OK An associative array of position objects
400 Bad Request Invalid parameters in the request query Error object
404 Not Found Tenant not found Error object

Read a position

GET /tenants/{tenantId}/positions/{id}

Required permissions

positions:read locations:read contacts:read members:read staff:read

Response

HTTP status Title Description Schema
200 OK Position object
400 Bad Request Invalid parameters in the request query Error object
404 Not Found Tenant or attendance ID not found Error object

Update a position

PATCH /tenants/{tenantId}/positions/{id}

The request body must include parts of an position object.

Required permissions

positions:update locations:read contacts:read members:read staff:read

Response

HTTP status Title Description Schema
200 OK Updated position record Position object
400 Bad Request Invalid or missing field(s) Error object
404 Not Found Tenant or position ID not found Error object
409 Conflict Contact already checked in Error object

Delete a position

DELETE /tenants/{tenantId}/positions/{id}

Required permissions

positions:delete

Response

HTTP status Title Description Schema
204 No content Successfully deleted
404 Not Found Tenant ID not found Error object
Was this page helpful?
© 2026 Bloom Data · System status