openapi: 3.2.0 info: title: Amber Public Checklists API version: 1.3.0 description: Read your brand's catalog, sourcing, orders, shipments, finance, and documents. All business endpoints are read-only and require an API key. Products are Parent Products; Product Options and SKUs are separate resources. Use filters to find records, follow their IDs to related data, and paginate to retrieve every result. See the integration tutorials for complete examples and data conventions for amounts, IDs, and timestamps. servers: - url: https://app.amber.ai/api/public/v1 tags: - name: Checklists paths: /brands/{brand}/checklists: get: tags: - Checklists summary: List Checklists operationId: listChecklists security: - ApiKeyAuth: [] parameters: - name: brand in: path required: true description: Brand slug authorized by this API key. schema: type: string example: acme - name: cursor in: query required: false description: Opaque nextCursor from the same collection and filters. Omit on the first request. schema: type: string - name: limit in: query required: false schema: type: integer minimum: 1 maximum: 100 default: 25 - name: name in: query required: false description: Exact, case-sensitive match. Spaces and punctuation are literal. schema: type: string minLength: 1 maxLength: 255 description: Exact, case-sensitive match. Spaces and punctuation are literal. - name: categoryId in: query required: false schema: type: string pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ - name: productId in: query required: false schema: type: string pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ responses: '200': description: A page of matching records. totalItems counts all matches across pages. When nextCursor is null, you have reached the last page. content: application/json: schema: $ref: '#/components/schemas/ChecklistsList' headers: Link: description: Origin-relative URL for the next page, with rel="next". Resolve against this response URL. Preserves filters and page size; omitted when nextCursor is null. schema: type: string '400': description: Invalid parameter, unsupported include, or cursor used with different filters. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing, invalid, expired, or out-of-scope API key. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: The record was not found or is not available to your brand. content: application/json: schema: $ref: '#/components/schemas/Error' '429': description: Rate limit exceeded. Retry after the indicated delay. content: application/json: schema: $ref: '#/components/schemas/Error' headers: Retry-After: description: Seconds before retrying. schema: type: integer minimum: 0 '500': description: Unexpected server error. content: application/json: schema: $ref: '#/components/schemas/Error' /brands/{brand}/checklists/{id}: get: tags: - Checklists summary: Get Checklists operationId: getChecklists security: - ApiKeyAuth: [] parameters: - name: brand in: path required: true description: Brand slug authorized by this API key. schema: type: string example: acme - name: id in: path required: true description: Stable resource identifier. schema: type: string pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ responses: '200': description: The requested record. content: application/json: schema: $ref: '#/components/schemas/Checklists' '400': description: Invalid parameter, unsupported include, or cursor used with different filters. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Missing, invalid, expired, or out-of-scope API key. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: The record was not found or is not available to your brand. content: application/json: schema: $ref: '#/components/schemas/Error' '429': description: Rate limit exceeded. Retry after the indicated delay. content: application/json: schema: $ref: '#/components/schemas/Error' headers: Retry-After: description: Seconds before retrying. schema: type: integer minimum: 0 '500': description: Unexpected server error. content: application/json: schema: $ref: '#/components/schemas/Error' components: schemas: Error: type: object properties: error: type: string errorCode: type: string details: description: Parameter validation issues, when available. $ref: '#/components/schemas/Error/$defs/__schema0' required: - error - errorCode additionalProperties: false $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: 'null' - type: array items: $ref: '#/components/schemas/Error/$defs/__schema0' - type: object propertyNames: type: string additionalProperties: $ref: '#/components/schemas/Error/$defs/__schema0' ChecklistsList: type: object properties: items: type: array items: type: object properties: id: type: string pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ name: type: string items: $ref: '#/components/schemas/ChecklistsList/$defs/__schema0' categoryId: anyOf: - type: string pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ - type: 'null' productId: anyOf: - type: string pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ - type: 'null' createdAt: type: string updatedAt: type: string required: - id - name - items - categoryId - productId - createdAt - updatedAt additionalProperties: false nextCursor: type: - string - 'null' totalItems: type: integer description: Total number of matching records across all pages. required: - items - nextCursor - totalItems additionalProperties: false $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: 'null' - type: array items: $ref: '#/components/schemas/ChecklistsList/$defs/__schema0' - type: object propertyNames: type: string additionalProperties: $ref: '#/components/schemas/ChecklistsList/$defs/__schema0' Checklists: type: object properties: id: type: string pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ name: type: string items: $ref: '#/components/schemas/Checklists/$defs/__schema0' categoryId: anyOf: - type: string pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ - type: 'null' productId: anyOf: - type: string pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ - type: 'null' createdAt: type: string updatedAt: type: string required: - id - name - items - categoryId - productId - createdAt - updatedAt additionalProperties: false $defs: __schema0: anyOf: - type: string - type: number - type: boolean - type: 'null' - type: array items: $ref: '#/components/schemas/Checklists/$defs/__schema0' - type: object propertyNames: type: string additionalProperties: $ref: '#/components/schemas/Checklists/$defs/__schema0' securitySchemes: ApiKeyAuth: type: http scheme: bearer description: A brand-scoped or global amb_sk_... API key.