> ## Documentation Index
> Fetch the complete documentation index at: https://www.twicecommerce.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get article by ID

> Returns one article by id, including its current status.



## OpenAPI

````yaml https://server.twicecommerce.com/api/admin/openapi-mintlify.json get /v1/admin/articles/{id}
openapi: 3.0.2
info:
  title: TWICE Admin API
  description: "The TWICE Admin API is the merchant-facing API of the Twice platform. It is currently in alpha: endpoints and schemas may change without notice.\n\n## Webhooks\n\nWebhooks notify your systems when resources change in Twice. A webhook subscription pairs one event type with one HTTPS endpoint of yours; whenever a matching event occurs, we POST the event to that endpoint. Subscriptions and their delivery logs are managed in the Twice admin under **Account → Integrations**.\n\n### Event types\n\n- `order.created`\n- `order.deleted`\n- `order.updated`\n\n### Payload\n\nEvery delivery is an HTTP POST with a JSON body sharing a common envelope. The typed payload of each event type is documented in the **Webhooks** section of the sidebar.\n\n```json\n{\n\t\"eventId\": \"5f2eb3a6-6cbd-4a2e-9350-6e0d1e2f9a11\",\n\t\"eventType\": \"order.created\",\n\t\"eventTime\": \"2026-08-06T12:34:56.789Z\",\n\t\"resource\": \"order\",\n\t\"resourceId\": \"0d9e0a7c-3fd1-4c8f-9c0d-2b7c6f7f2a55\",\n\t\"apiVersion\": \"2025-06\",\n\t\"data\": { \"…\": \"the API representation of the resource, or null for deletes\" }\n}\n```\n\n`data` carries the resource in the same shape the REST API returns it, as of the API version in `apiVersion`. Each subscription is pinned to the API version that was the latest when the subscription was created, so a new API version never changes the payload shape you receive — moving to a newer version is an explicit update of the subscription.\n\n### Acknowledging deliveries\n\nRespond with any **2xx** status to acknowledge a delivery. Any other status — or a timeout — counts as a failed attempt. Respond as quickly as possible and do heavy processing asynchronously after acknowledging.\n\n### Delivery semantics\n\nDeliveries are **at-least-once**: the same event can occasionally be delivered more than once, so deduplicate on the `X-Twice-Event-Id` header (or the equal `eventId` body field). Ordering is not guaranteed — when it matters, use `eventTime` or re-fetch the current state of the resource via the API.\n\n### Retries\n\nFailed deliveries are retried up to 3 times (4 attempts in total) with growing backoff — roughly 10 s, 20 s, 40 s after the preceding attempt — giving up 10 minutes after the first attempt. After 3 consecutive events fail all their attempts, the subscription is automatically disabled (`disabledReason: TOO_MANY_FAILED_DELIVERY_ATTEMPTS`) and must be re-enabled manually in the admin. Individual deliveries can also be redelivered manually from the delivery log.\n\n### Verifying signatures\n\nEach subscription has a signing secret (prefixed `whsec_`), available in the admin. Deliveries carry an HMAC-SHA256 signature of the exact raw request body in the `X-Twice-Signature` header, formatted `sha256=<hex>`. Verify it against the raw body bytes — parse the JSON only after the signature checks out:\n\n```js\nimport { createHmac, timingSafeEqual } from 'node:crypto';\n\nconst expected = 'sha256=' + createHmac('sha256', secret).update(rawBody, 'utf8').digest('hex');\nconst signature = req.headers['x-twice-signature'];\nconst isValid =\n\ttypeof signature === 'string' &&\n\tsignature.length === expected.length &&\n\ttimingSafeEqual(Buffer.from(signature), Buffer.from(expected));\n```"
  version: 2025-06
servers:
  - url: https://server.twicecommerce.com
security:
  - ApiKeyAuth: []
paths:
  /v1/admin/articles/{id}:
    get:
      tags:
        - articles
      summary: Get article by ID
      description: Returns one article by id, including its current status.
      operationId: admin.articles.get
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: dateRange
          in: query
          style: deepObject
          schema:
            type: object
            properties:
              start:
                nullable: true
                type: string
                format: date-time
                pattern: >-
                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
              end:
                nullable: true
                type: string
                format: date-time
                pattern: >-
                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
            required:
              - start
              - end
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  codes:
                    type: array
                    items:
                      type: string
                  name:
                    type: string
                  binLocation:
                    nullable: true
                    type: string
                  binLocationOrigin:
                    nullable: true
                    type: string
                    enum:
                      - article
                      - sku
                  status:
                    type: string
                    enum:
                      - active
                      - inactive
                      - draft
                  parentId:
                    nullable: true
                    type: string
                  path:
                    type: string
                  createdAt:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  archivedAt:
                    nullable: true
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                  taxonomyCategoryId:
                    nullable: true
                    type: string
                  taxonomyCategory:
                    nullable: true
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      fullName:
                        type: string
                      level:
                        type: number
                      parentId:
                        nullable: true
                        type: string
                      isLeaf:
                        type: boolean
                    required:
                      - id
                      - name
                      - fullName
                      - level
                      - parentId
                      - isLeaf
                    additionalProperties: false
                  media:
                    type: object
                    properties:
                      fileId:
                        type: string
                      articleId:
                        type: string
                      media:
                        type: object
                        properties:
                          id:
                            type: string
                          tenantId:
                            type: string
                          fileUrl:
                            type: string
                          mimeType:
                            type: string
                          originalName:
                            type: string
                          folderPath:
                            nullable: true
                            type: string
                          size:
                            type: number
                          createdAt:
                            type: string
                          updatedAt:
                            type: string
                          deletedAt:
                            nullable: true
                            type: string
                          updatedById:
                            nullable: true
                            type: string
                          createdById:
                            nullable: true
                            type: string
                        required:
                          - id
                          - tenantId
                          - fileUrl
                          - mimeType
                          - originalName
                          - folderPath
                          - size
                          - createdAt
                          - updatedAt
                          - deletedAt
                          - updatedById
                          - createdById
                        additionalProperties: false
                      orderIndex:
                        type: number
                    required:
                      - fileId
                      - articleId
                      - orderIndex
                    additionalProperties: false
                  documents:
                    type: object
                    properties:
                      fileId:
                        type: string
                      articleId:
                        type: string
                      document:
                        type: object
                        properties:
                          id:
                            type: string
                          tenantId:
                            type: string
                          fileUrl:
                            type: string
                          mimeType:
                            type: string
                          originalName:
                            type: string
                          folderPath:
                            nullable: true
                            type: string
                          size:
                            type: number
                          createdAt:
                            type: string
                          updatedAt:
                            type: string
                          deletedAt:
                            nullable: true
                            type: string
                          updatedById:
                            nullable: true
                            type: string
                          createdById:
                            nullable: true
                            type: string
                        required:
                          - id
                          - tenantId
                          - fileUrl
                          - mimeType
                          - originalName
                          - folderPath
                          - size
                          - createdAt
                          - updatedAt
                          - deletedAt
                          - updatedById
                          - createdById
                        additionalProperties: false
                      orderIndex:
                        type: number
                      comment:
                        nullable: true
                        type: string
                    required:
                      - fileId
                      - articleId
                      - orderIndex
                      - comment
                    additionalProperties: false
                  attributes:
                    type: object
                    properties:
                      id:
                        type: string
                      name:
                        type: string
                      key:
                        type: string
                      value:
                        nullable: true
                        anyOf:
                          - type: string
                          - type: number
                          - type: boolean
                          - type: array
                            items:
                              type: string
                      format:
                        type: string
                        enum:
                          - text
                          - number
                          - boolean
                          - date
                          - datetime
                          - formula
                          - select
                          - multiselect
                      groupId:
                        nullable: true
                        type: string
                      groupName:
                        nullable: true
                        type: string
                      systemGroup:
                        nullable: true
                        type: string
                        enum:
                          - sustainability
                          - system
                      origin:
                        type: string
                        enum:
                          - article
                          - sku
                          - customer
                          - catalog
                    required:
                      - id
                      - name
                      - key
                      - value
                      - format
                      - groupId
                      - groupName
                      - systemGroup
                      - origin
                    additionalProperties: false
                  tags:
                    nullable: true
                    type: object
                    properties:
                      id:
                        type: string
                      value:
                        type: string
                      scope:
                        type: string
                        enum:
                          - inventory
                          - catalog
                          - customers
                          - orders
                      createdAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      updatedAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    required:
                      - id
                      - value
                      - scope
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                  sku:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      name:
                        type: string
                      code:
                        type: string
                      tags:
                        type: object
                        properties:
                          id:
                            type: string
                          value:
                            type: string
                          scope:
                            type: string
                            enum:
                              - inventory
                              - catalog
                              - customers
                              - orders
                          createdAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                          updatedAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                        required:
                          - id
                          - value
                          - scope
                          - createdAt
                          - updatedAt
                        additionalProperties: false
                      bufferTimeAmountBefore:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      bufferTimeUnitBefore:
                        type: string
                        enum:
                          - seconds
                          - minutes
                          - hours
                          - days
                          - weeks
                          - months
                          - years
                      bufferTimeAmountAfter:
                        type: integer
                        minimum: 0
                        maximum: 9007199254740991
                      bufferTimeUnitAfter:
                        type: string
                        enum:
                          - seconds
                          - minutes
                          - hours
                          - days
                          - weeks
                          - months
                          - years
                    required:
                      - id
                      - name
                      - code
                    additionalProperties: false
                  itemCosts:
                    type: number
                  itemIncome:
                    type: number
                  purchasePrice:
                    nullable: true
                    type: number
                  purchasePriceOrigin:
                    nullable: true
                    type: string
                    enum:
                      - article
                      - sku
                  condition:
                    nullable: true
                    type: string
                  description:
                    nullable: true
                  descriptionOrigin:
                    nullable: true
                    type: string
                    enum:
                      - article
                      - sku
                  bufferTimeAmountBefore:
                    nullable: true
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  bufferTimeUnitBefore:
                    type: string
                    enum:
                      - seconds
                      - minutes
                      - hours
                      - days
                      - weeks
                      - months
                      - years
                  bufferTimeOriginBefore:
                    nullable: true
                    type: string
                    enum:
                      - article
                      - sku
                  bufferTimeAmountAfter:
                    nullable: true
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  bufferTimeUnitAfter:
                    type: string
                    enum:
                      - seconds
                      - minutes
                      - hours
                      - days
                      - weeks
                      - months
                      - years
                  bufferTimeOrigin:
                    nullable: true
                    type: string
                    enum:
                      - article
                      - sku
                  profitability:
                    type: number
                  conflicts:
                    type: object
                    properties:
                      byLocation:
                        type: object
                        additionalProperties:
                          type: object
                          properties:
                            locationId:
                              type: string
                            conflictDates:
                              type: array
                              items:
                                type: string
                            total:
                              type: number
                            earliestDate:
                              nullable: true
                              type: string
                              format: date-time
                              pattern: >-
                                ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                            stockItemConflicts:
                              type: array
                              items:
                                type: object
                                properties:
                                  orderId:
                                    type: string
                                  name:
                                    type: string
                                  start:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                                  end:
                                    nullable: true
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                                required:
                                  - orderId
                                  - name
                                  - start
                                  - end
                                additionalProperties: false
                          required:
                            - locationId
                            - conflictDates
                            - total
                            - earliestDate
                          additionalProperties: false
                    required:
                      - byLocation
                    additionalProperties: false
                  aggregateData:
                    type: object
                    properties:
                      totalCount:
                        type: number
                      lastCreated:
                        nullable: true
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      lastUpdated:
                        nullable: true
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    required:
                      - totalCount
                      - lastCreated
                      - lastUpdated
                    additionalProperties: false
                  snapshotDate:
                    type: object
                    properties:
                      from:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      to:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    required:
                      - from
                      - to
                    additionalProperties: false
                  unavailability:
                    type: object
                    properties:
                      id:
                        type: string
                      range:
                        type: object
                        properties:
                          start:
                            nullable: true
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                          end:
                            nullable: true
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                        required:
                          - start
                          - end
                        additionalProperties: false
                      tenantId:
                        type: string
                      articleId:
                        nullable: true
                        type: string
                      orderId:
                        nullable: true
                        type: string
                      blockerType:
                        nullable: true
                        type: string
                      orderStockItemId:
                        nullable: true
                        type: string
                      slotId:
                        type: string
                      scheduledEventId:
                        nullable: true
                        type: string
                      createdAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      intervals:
                        type: object
                        properties:
                          type:
                            type: string
                            enum:
                              - sale
                              - sales-reservation
                              - buffer
                              - booking
                          range:
                            type: object
                            properties:
                              start:
                                nullable: true
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                              end:
                                nullable: true
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                            required:
                              - start
                              - end
                            additionalProperties: false
                          unavailabilityId:
                            type: string
                          tenantId:
                            type: string
                        required:
                          - type
                          - range
                          - unavailabilityId
                          - tenantId
                        additionalProperties: false
                    required:
                      - id
                      - range
                      - tenantId
                      - articleId
                      - orderId
                      - blockerType
                      - orderStockItemId
                      - slotId
                      - scheduledEventId
                      - createdAt
                    additionalProperties: false
                  scheduledEvents:
                    type: object
                    properties:
                      id:
                        type: string
                      articleId:
                        type: string
                      startDate:
                        nullable: true
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      endDate:
                        nullable: true
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      type:
                        type: string
                        enum:
                          - reservation
                          - note
                      name:
                        nullable: true
                        type: string
                      comment:
                        nullable: true
                        type: string
                      tenantId:
                        type: string
                      createdAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                      serviceLocationId:
                        type: string
                    required:
                      - id
                      - articleId
                      - startDate
                      - endDate
                      - type
                      - name
                      - comment
                      - tenantId
                      - createdAt
                      - serviceLocationId
                    additionalProperties: false
                  articleLocations:
                    type: object
                    properties:
                      id:
                        type: string
                      articleId:
                        type: string
                      serviceLocationId:
                        nullable: true
                        type: string
                      slotId:
                        type: string
                      range:
                        type: object
                        properties:
                          start:
                            nullable: true
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                          end:
                            nullable: true
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                        required:
                          - start
                          - end
                        additionalProperties: false
                      createdAt:
                        type: string
                        format: date-time
                        pattern: >-
                          ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                    required:
                      - id
                      - articleId
                      - serviceLocationId
                      - slotId
                      - range
                      - createdAt
                    additionalProperties: false
                  quantity:
                    type: object
                    properties:
                      total:
                        type: number
                      byLocation:
                        type: object
                        properties:
                          serviceLocationId:
                            type: string
                          count:
                            type: number
                          fromDate:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                        required:
                          - serviceLocationId
                          - count
                        additionalProperties: false
                    required:
                      - total
                      - byLocation
                    additionalProperties: false
                  availability:
                    type: object
                    properties:
                      total:
                        type: number
                      byLocation:
                        type: object
                        properties:
                          serviceLocationId:
                            type: string
                          count:
                            type: number
                          fromDate:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                        required:
                          - serviceLocationId
                          - count
                        additionalProperties: false
                    required:
                      - total
                      - byLocation
                    additionalProperties: false
                  temporalStock:
                    type: object
                    properties:
                      stockBalance:
                        type: object
                        properties:
                          range:
                            type: object
                            properties:
                              start:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                              end:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                            required:
                              - start
                              - end
                            additionalProperties: false
                          value:
                            type: number
                        required:
                          - range
                          - value
                        additionalProperties: false
                      stockAvailableToSell:
                        type: object
                        properties:
                          range:
                            type: object
                            properties:
                              start:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                              end:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                            required:
                              - start
                              - end
                            additionalProperties: false
                          value:
                            type: number
                        required:
                          - range
                          - value
                        additionalProperties: false
                      stockCommitted:
                        type: object
                        properties:
                          range:
                            type: object
                            properties:
                              start:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                              end:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                            required:
                              - start
                              - end
                            additionalProperties: false
                          value:
                            type: number
                        required:
                          - range
                          - value
                        additionalProperties: false
                      stockUtilisation:
                        type: object
                        properties:
                          range:
                            type: object
                            properties:
                              start:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                              end:
                                type: string
                                format: date-time
                                pattern: >-
                                  ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                            required:
                              - start
                              - end
                            additionalProperties: false
                          value:
                            type: number
                        required:
                          - range
                          - value
                        additionalProperties: false
                    required:
                      - stockBalance
                      - stockAvailableToSell
                      - stockCommitted
                      - stockUtilisation
                    additionalProperties: false
                required:
                  - id
                  - codes
                  - name
                  - binLocation
                  - status
                  - createdAt
                  - taxonomyCategoryId
                  - aggregateData
                  - unavailability
                  - scheduledEvents
                  - articleLocations
                additionalProperties: false
        '400':
          description: '400'
        '401':
          description: '401'
        '403':
          description: '403'
        '404':
          description: '404'
        '429':
          description: '429'
        '500':
          description: '500'
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      name: X-API-KEY
      in: header
      description: API key for the Twice API

````