openapi: 3.1.0 info: title: Assembled Requirements API description: | Create and list staffing requirements that express how many agents are needed by queue, site, team, or skill across time intervals. Requirement types describe the family of need (for example, headcount vs. occupancy targets). Requirements feed AI scheduling and real-time staffing recommendations. version: '2026-05-24' contact: name: Assembled Support url: https://support.assembled.com servers: - url: https://api.assembledhq.com description: Production Server security: - BasicAuth: [] tags: - name: Requirements - name: Requirement Types paths: /v0/requirements: get: summary: Assembled List Requirements operationId: listRequirements tags: [Requirements] parameters: - in: query name: start_time required: true schema: { type: string, format: date-time } - in: query name: end_time required: true schema: { type: string, format: date-time } - in: query name: queue_ids schema: { type: string } responses: '200': description: Requirements content: application/json: schema: type: object properties: requirements: type: array items: { $ref: '#/components/schemas/Requirement' } post: summary: Assembled Create Requirement operationId: createRequirement tags: [Requirements] requestBody: required: true content: application/json: schema: { $ref: '#/components/schemas/RequirementInput' } responses: '201': description: Created content: application/json: schema: { $ref: '#/components/schemas/Requirement' } /v0/requirement_types: get: summary: Assembled List Requirement Types operationId: listRequirementTypes tags: [Requirement Types] responses: '200': description: Requirement types content: application/json: schema: type: object properties: requirement_types: type: array items: { $ref: '#/components/schemas/RequirementType' } components: securitySchemes: BasicAuth: { type: http, scheme: basic } schemas: Requirement: type: object properties: id: { type: string } requirement_type_id: { type: string } queue_id: { type: string, nullable: true } site_id: { type: string, nullable: true } team_id: { type: string, nullable: true } skill_id: { type: string, nullable: true } start_time: { type: string, format: date-time } end_time: { type: string, format: date-time } required_count: { type: number } RequirementInput: type: object required: [requirement_type_id, start_time, end_time, required_count] properties: requirement_type_id: { type: string } queue_id: { type: string } site_id: { type: string } team_id: { type: string } skill_id: { type: string } start_time: { type: string, format: date-time } end_time: { type: string, format: date-time } required_count: { type: number } RequirementType: type: object properties: id: { type: string } name: { type: string } description: { type: string }