Paack Generate labels API

The Generate labels API from Paack — 1 operation(s) for generate labels.

Operations 1

POST /labels Create label request PDF #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/paack:paack-generate-labels-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

paack-generate-labels-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: The body fields to generate the labels.
  title: Labeler Generate labels API
  version: 3.0.0
servers:
- url: https://api.paack.io/v3
  description: Production environment
- url: https://api.staging.paack.io/v3
  description: Staging environment
security:
- Bearer: []
tags:
- name: Generate labels
paths:
  /labels:
    post:
      description: 'Generates labels for an order.


        The body of the call to the Labeler API uses a structured JSON format with mandatory and optional fields. The JSON must be properly structured to be accepted and mandatory fields must be populated. Each property in the request has a specific data type for the value; all values must conform to the required data type.


        The number of generated PDF labels depends on the number of objects in the `parcels` array. `barcode` identifies a label and is the only required field within the object.'
      operationId: CreateLabelRequestPDF
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateLabelRequestJson'
            example:
              customer:
                first_name: Martín
                last_name: Fierro
              delivery_address:
                city: Barcelona
                country: ES
                line1: Via Augusta
                line2: 17, Principal
                post_code: 08006
              expected_delivery_ts:
                start:
                  date: '2022-04-28'
                  time: '10:00:00'
              order_details: null
              external_id: 5cef0f5-1a0-44-b0f-96faa0
              parcels:
              - barcode: 034724878233029420
                height: 28.2
                length: 38.1
                width: 48.3
                weight: 12.1
              - barcode: 034724878233029499
                height: 19
                length: 12.33
                width: 33.1
                weight: 18.3
              - barcode: 034724878233029437
                height: 18.5
                length: 9.3
                width: 13.33
                weight: 2.5
              pick_up_address:
                city: Barcelona
                country: ES
                line1: Avinguda Diagonal, 1234
                line2: null
                post_code: 08021
              service_type: NT4
        description: Request to generate labels (for PDF, as many labels as objects in the parcels[] array; for ZPL, first parcel in the parcels[] array or parcel indicated by the parcel_number value).
      responses:
        '200':
          $ref: '#/components/responses/Response200'
        '206':
          $ref: '#/components/responses/Response206'
        '400':
          $ref: '#/components/responses/Response400'
        '401':
          $ref: '#/components/responses/Response401'
      tags:
      - Generate labels
      summary: Create label request PDF
      x-summary-source: derived
components:
  responses:
    Response206:
      content:
        '*/*':
          schema:
            properties: {}
            type: object
          example: See Labeler API > Examples.
      description: 'In case of an `HTTP 206` response, the Labeler API returns partial content, in the format specified in the `template_id` field of the request body. This occurs due to exceeding the character field length or due to unsupported characters.<br /><br />- Response body: The label in the specified format is returned but the displayed information is incomplete: names can be truncated and unsupported characters converted into question marks (``?``).<br /><br />'
    Response200:
      content:
        '*/*':
          schema:
            properties: {}
            type: object
          example: See Labeler API > Examples.
      description: In case of an `HTTP 200` response, the Labeler API returns the file in the format specified in the `template_id` field in the request body. The default file format is PDF.
    Response401:
      content:
        application/json:
          schema:
            properties:
              code:
                description: HTTP response code.
                type: number
                enum:
                - 401
              message:
                description: Error details.
                type: string
                enum:
                - Jwt is missing
                - Jwt is expired
            type: object
          example:
            code: 401
            message: Jwt is missing
      description: Communicates a missing or expired access token for authorization.
    Response400:
      content:
        text/plain:
          schema:
            properties:
              error:
                $ref: '#/components/schemas/ErrorSchema'
            type: object
          example:
            error:
              code: SYS001
              message: 'field delivery_address: required'
      description: If the information you provided is invalid, the HTTP code of the response is 400. For instance, you didn't use the specified data type or missed required fields.<br />- Response body as described here.<br /><br />Learn more in Labeler API > Troubleshooting.
  schemas:
    WindowObject:
      description: Contains the objects `start` and `end` indicating the order delivery's timeslot.
      properties:
        end:
          $ref: '#/components/schemas/WindowDatetime'
        start:
          $ref: '#/components/schemas/WindowDatetime'
      required:
      - start
      - end
      type: object
      x-go-package: github.com/PaackEng/lms-backend/infra/http
    CreateLabelRequestJsonTemplateId:
      description: Defines the format of the label. `1` is for a single ZPL label, `2` is for printing multiple ZPL labels at once; `null` or  missing property returns a PDF.
      enum:
      - 1
      type: integer
      x-go-package: github.com/PaackEng/lms-backend/infra/http
    CreateLabelRequestJsonCustomer:
      description: 'Contains the properties `first_name` and `last_name`.


        **PDF Display limits**:

        * `first_name` and `last_name` combined can take up to 45 characters (2 graphic lines).

        * A max. of approx. 23 characters can be displayed for `last_name`.


        **ZPL Display limits**:

        * `first_name` and `last_name` combined can take up to 29 characters (1 graphic line).

        * A max. of approx. 23 characters can be displayed for `last_name`.

        '
      properties:
        first_name:
          description: Specifies your customer's first name.
          maxLength: 45
          minLength: 1
          type: string
          x-go-name: FirstName
        last_name:
          description: Specifies your customer's last name.
          maxLength: 23
          type: string
          x-go-name: LastName
      required:
      - first_name
      - last_name
      type: object
      x-go-package: github.com/PaackEng/lms-backend/infra/http
    AddressDelivery:
      description: 'Specifies the address of the delivery.


        **Display limits**:

        * `city` can take up to 58 characters.

        * A max. of approx. 60 characters (2 graphic lines) can be displayed for `line1` and `line2` combined.

        * A max. of approx. 30 characters can be displayed for `line2`.'
      properties:
        city:
          description: Specifies the city.
          maxLength: 58
          minLength: 1
          type: string
          x-go-name: City
        country:
          description: Specifies, in ISO 3166 alpha 2 format, the country.
          maxLength: 2
          minLength: 2
          type: string
          x-go-name: Country
        line1:
          description: Specifies the primary address.
          maxLength: 60
          minLength: 1
          type: string
          x-go-name: Line1
        line2:
          description: Specifies additional address information.
          maxLength: 30
          type: string
          x-go-name: Line2
        post_code:
          description: Specifies the ZIP code.
          maxLength: 10
          minLength: 4
          type: string
          x-go-name: PostCode
      required:
      - city
      - country
      - line1
      - post_code
      type: object
      x-go-package: github.com/PaackEng/lms-backend/infra/http
    CreateLabelRequestJson:
      properties:
        customer:
          $ref: '#/components/schemas/CreateLabelRequestJsonCustomer'
        delivery_address:
          $ref: '#/components/schemas/AddressDelivery'
        delivery_type:
          description: 'Identifies a direct of reverse order. Example: reverse.'
          type: string
        expected_delivery_ts:
          $ref: '#/components/schemas/WindowObject'
        external_id:
          description: Uniquely identifies the order within the retailer.
          maxLength: 30
          minLength: 1
          type: string
          x-go-name: ExternalId
        order_details:
          description: Specifies custom information on the order.
          items:
            $ref: '#/components/schemas/CreateLabelRequestJsonOrderDetails'
          type: array
        parcel_number:
          $ref: '#/components/schemas/CreateLabelRequestJsonParcelNumber'
        parcels:
          description: 'Defines the parcels included in the order. Each object included in this array corresponds to one parcel identified by its barcode.


            **Display limits**:

            * The dimensions are not displayed if all three values are 0.'
          items:
            $ref: '#/components/schemas/CreateLabelRequestJsonParcelsElem'
          type: array
          x-go-name: Parcels
        pick_up_address:
          $ref: '#/components/schemas/AddressPickup'
        retailer_name:
          description: 'Specifies the retailer name.


            **Display limits**:

            * `retailer_name` can take up to 60 characters.'
          maxLength: 60
          minLength: 1
          type: string
        service_type:
          description: Defines the code that identifies the delivery day type, timeslot type, and available slot length.
          type: string
          enum:
          - ST2
          - ST4
          - STZ
          - SF2
          - SF4
          - SFZ
          - NT2
          - NT4
          - NTH
          - NTZ
          - NF2
          - NF4
          - NFA
          - XF4
          - NFZ
          - PT2
          - PT4
          - PTH
          - PTA
          - PTZ
          - PF2
          - PF4
          - PFA
          - PFZ
          - CT2
          - CT4
          - CTH
          - CTZ
          - XFZ
          - CF2
          - CF4
          - CFA
          - CFZ
          - WT2
          - WT4
          - WTH
          - WTZ
          - WF2
          - WF4
          - WFA
          - WFZ
          - XTZ
          - XF2
          - ST3
          - DDD
          - ND
          - SD
          - UNK
          - RFA
          - RT2
          - RT4
        template_id:
          $ref: '#/components/schemas/CreateLabelRequestJsonTemplateId'
      required:
      - customer
      - delivery_address
      - expected_delivery_ts
      - external_id
      - parcels
      - service_type
      title: Defines the request to generate labels.
      type: object
      x-go-package: github.com/PaackEng/lms-backend/infra/http
    CreateLabelRequestJsonOrderDetails:
      description: 'Contains the properties `name`, `type`, and `value`. Specifies custom information on the order. In case of `"name": "sale_number"` and `"type": "string"`, the `value` appears on the label instead of the `external_id`.'
      properties:
        name:
          default: sale_number
          description: Specifies the name of the custom field.
          minLength: 1
          type: string
        type:
          description: Specifies the type of the custom field.
          enum:
          - string
          - currency
          - country
          - number
          - boolean
          - uuid
          - uri
          - date
          - time
          - object
          - array
          - null
          minLength: 1
          type: string
        value:
          default: ''
          description: Specifies the value of the custom field.
          type: string
      required:
      - name
      - type
      - value
      type: object
      x-go-package: github.com/PaackEng/lms-backend/infra/http
    ErrorSchema:
      description: Contains the properties `code` and `message`.
      properties:
        code:
          description: Error code.
          type: string
          enum:
          - SYS001
        message:
          description: Error details.
          type: string
      type: object
    WindowDatetime:
      description: Contains the properties `date` and `time`.
      properties:
        date:
          description: Specifies the date in `YYYY-MM-DD` format.
          maxLength: 10
          minLength: 10
          type: string
          x-go-name: Date
        time:
          description: Specifies the UTC time in `hh:mm:ss` format.
          maxLength: 8
          minLength: 8
          type: string
          x-go-name: Time
      required:
      - date
      - time
      type: object
      x-go-package: github.com/PaackEng/lms-backend/infra/http
    AddressPickup:
      description: 'Specifies the pickup address.


        **Display limits**:

        * `city` can take up to 43 characters.

        * A max. of approx. 43 characters (2 graphic lines) can be displayed for `line1` and `line2` combined.

        * A max. of approx. 22 characters can be displayed for `line2`.'
      properties:
        city:
          description: Specifies the city.
          maxLength: 43
          minLength: 1
          type: string
          x-go-name: City
        country:
          description: Specifies, in ISO 3166 alpha 2 format, the country.
          maxLength: 2
          minLength: 2
          type: string
          x-go-name: Country
        line1:
          description: Specifies the primary address.
          maxLength: 43
          minLength: 1
          type: string
          x-go-name: Line1
        line2:
          description: Specifies additional address information.
          maxLength: 22
          type: string
          x-go-name: Line2
        post_code:
          description: Specifies the ZIP code.
          maxLength: 10
          minLength: 4
          type: string
          x-go-name: PostCode
      required:
      - city
      - country
      - line1
      - post_code
      type: object
      x-go-package: github.com/PaackEng/lms-backend/infra/http
    CreateLabelRequestJsonParcelsElem:
      description: 'Defines the parcels included in the order. Each object included in this array corresponds to one parcel identified by its `barcode`.


        **Display limits**:

        * The dimensions are not displayed if all three values are 0.'
      properties:
        barcode:
          description: Identifies the parcel. For ZPL labels, the maximum number of permitted characters is 25. For PDF labels, the maximum number of permitted characters is 33.
          maxLength: 33
          minLength: 1
          type: string
          x-go-name: Barcode
        height:
          description: Specifies the parcel's height in cm.
          format: double
          minimum: 0
          type: number
          x-go-name: Height
        length:
          description: Specifies the parcel's length in cm.
          format: double
          minimum: 0
          type: number
          x-go-name: Length
        weight:
          description: Specifies the parcel's weight in kg.
          format: double
          maximum: 30
          minimum: 0
          type: number
          x-go-name: Weight
        sku:
          description: Specifies the retailer barcode.
          format: string
          minimum: 0
          maximum: 33
          type: string
        width:
          description: Specifies the parcel's width in cm.
          format: double
          minimum: 0
          type: number
          x-go-name: Width
      required:
      - barcode
      type: object
      x-go-package: github.com/PaackEng/lms-backend/infra/http
    CreateLabelRequestJsonParcelNumber:
      description: For ZPL labels, (`template_id` = `1` or `template_id` = `2`), specifies either the first parcel or all parcels from the `parcels[]` array to return. For PDF labels, all parcels from the `parcels[]` array are returned in the response.
      type: integer
      x-go-package: github.com/PaackEng/lms-backend/infra/http
  securitySchemes:
    Bearer:
      in: header
      name: Authorization
      type: apiKey
x-provenance:
  method: searched
  source: https://paack.readme.io/reference
  harvested: '2026-10-14'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://paack.readme.io/reference/labels.md
  merge:
    pages: 1
    deduped: 0
    conflicts_kept_first: 0