3dpack-ing Typed API

The typed API from 3dpack-ing — 2 operation(s) for typed.

Operations 2

POST /api/v1/calculate Pack typed rows into the best of several candidate containers #
POST /api/v1/best-boxes Which of several boxes best holds an item, and how many it takes #

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/3dpack-ing:3dpack-ing-typed-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

3dpack-ing-typed-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 3dpack Ing Typed API
  version: 1.2.1
  contact:
    name: 3DPACK.ING
    url: https://3dpack.ing
    email: contact@3dpack.ing
  license:
    name: Proprietary
    url: https://3dpack.ing/terms.html
  description: 'Operations tagged typed across 2 of this provider''s published API definitions: 3dpack-ing-openapi.json, 3dpack-ing-original.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://3dpack.ing
  description: Production
tags:
- name: typed
paths:
  /api/v1/calculate:
    post:
      operationId: typedCalculate
      summary: Pack typed rows into the best of several candidate containers
      description: The solver's own API under this site's keys. Send candidate containers and items as rows; get the chosen container, every placement, what did not fit, and the empty spaces. Forwarded unchanged; part of the API plans and Business.
      tags:
      - typed
      security:
      - apiKeyHeader: []
        apiUsernameHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SolverCalculateRequest'
      responses:
        '200':
          description: The plan.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SolverCalculateResponse'
        '400':
          description: A key without X-API-Username, a body that is not a JSON object, or rows the solver rejected (its message is passed through).
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '401':
          description: No X-API-Key header.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '402':
          description: 'Not an error: the key belongs to a plan that does not include the typed API. It is part of the API plans and Business.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '403':
          description: The key was refused, or the address is not a real mailbox.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '502':
          description: The solver did not answer. Nothing was charged.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
    servers:
    - url: https://3dpack.ing
      description: Production
  /api/v1/best-boxes:
    post:
      operationId: typedBestBoxes
      summary: Which of several boxes best holds an item, and how many it takes
      description: Cartonization. One item and up to twenty candidate boxes; one entry per box with the quantity that fits, the placements and the remaining volume. Forwarded unchanged; part of the API plans and Business.
      tags:
      - typed
      security:
      - apiKeyHeader: []
        apiUsernameHeader: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BestBoxesRequest'
      responses:
        '200':
          description: One entry per candidate box.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BestBoxesResponse'
        '400':
          description: A key without X-API-Username, a body that is not a JSON object, or rows the solver rejected (its message is passed through).
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '401':
          description: No X-API-Key header.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '402':
          description: 'Not an error: the key belongs to a plan that does not include the typed API. It is part of the API plans and Business.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '403':
          description: The key was refused, or the address is not a real mailbox.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '502':
          description: The solver did not answer. Nothing was charged.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
    servers:
    - url: https://3dpack.ing
      description: Production
components:
  schemas:
    SolverCalculateResponse:
      title: Calculation Output
      required:
      - SelectedContainer
      - ItemsPut
      - ItemsNotPut
      - EmptyContainers
      properties:
        SelectedContainer:
          required:
          - Height
          - Width
          - Length
          type: object
          properties:
            Height:
              maximum: 19999
              minimum: 1
              type: integer
            Width:
              maximum: 19999
              minimum: 1
              type: integer
            Length:
              maximum: 19999
              minimum: 1
              type: integer
            MaxWeight:
              maximum: 100000000
              minimum: 1
              type: integer
              default: 0
            Stability:
              maximum: 100
              minimum: 75
              type: integer
              default: 75
        ItemsNotPut:
          type: array
          items:
            required:
            - Height
            - Width
            - Length
            - Quantity
            - TagOrColor
            type: object
            properties:
              Height:
                maximum: 19999
                minimum: 1
                type: integer
              Width:
                maximum: 19999
                minimum: 1
                type: integer
              Length:
                maximum: 19999
                minimum: 1
                type: integer
              Quantity:
                type: integer
              TagOrColor:
                minLength: 1
                type: string
        ItemsPut:
          type: array
          items:
            required:
            - Item
            - Coord
            type: object
            properties:
              Item:
                required:
                - Height
                - Width
                - Length
                - Quantity
                - TagOrColor
                - ContainerIndex
                type: object
                properties:
                  Height:
                    maximum: 19999
                    minimum: 1
                    type: integer
                  Width:
                    maximum: 19999
                    minimum: 1
                    type: integer
                  Length:
                    maximum: 19999
                    minimum: 1
                    type: integer
                  Quantity:
                    type: integer
                    default: 1
                  TagOrColor:
                    minLength: 1
                    type: string
                  ContainerIndex:
                    minimum: 0
                    type: integer
              Coord:
                required:
                - X
                - Y
                - Z
                type: object
                properties:
                  X:
                    maximum: 19999
                    minimum: 0
                    type: integer
                  Y:
                    maximum: 19999
                    minimum: 0
                    type: integer
                  Z:
                    maximum: 19999
                    minimum: 0
                    type: integer
              ContainerIndex:
                minimum: 0
                type: integer
        EmptyContainers:
          type: array
          items:
            required:
            - Coord
            - Width
            - Length
            - Height
            - ContainerIndex
            type: object
            properties:
              Coord:
                required:
                - X
                - Y
                - Z
                type: object
                properties:
                  X:
                    maximum: 19999
                    minimum: 0
                    type: integer
                  Y:
                    maximum: 19999
                    minimum: 0
                    type: integer
                  Z:
                    maximum: 19999
                    minimum: 0
                    type: integer
              Width:
                maximum: 19999
                minimum: 1
                type: integer
              Length:
                maximum: 19999
                minimum: 1
                type: integer
              Height:
                maximum: 19999
                minimum: 1
                type: integer
              ContainerIndex:
                minimum: 0
                type: integer
    SolverCalculateRequest:
      title: Calculation Input
      required:
      - Candidates
      - Items
      properties:
        Candidates:
          minItems: 1
          type: array
          items:
            required:
            - Height
            - Width
            - Length
            type: object
            properties:
              Height:
                maximum: 19999
                minimum: 1
                type: integer
              Width:
                maximum: 19999
                minimum: 1
                type: integer
              Length:
                maximum: 19999
                minimum: 1
                type: integer
              MaxWeight:
                maximum: 100000000
                minimum: 1
                type: integer
                default: 0
              Stability:
                maximum: 100
                minimum: 75
                type: integer
                default: 75
        Items:
          type: array
          items:
            minItems: 1
            required:
            - Height
            - Width
            - Length
            - Quantity
            - TagOrColor
            type: object
            properties:
              Height:
                maximum: 19999
                minimum: 1
                type: integer
              Width:
                maximum: 19999
                minimum: 1
                type: integer
              Length:
                maximum: 19999
                minimum: 1
                type: integer
              Quantity:
                maximum: 19999
                minimum: 1
                type: integer
              Weight:
                maximum: 100000000
                minimum: 1
                type: integer
                default: 0
              Priority:
                maximum: 100
                minimum: 1
                type: integer
              TagOrColor:
                minLength: 1
                type: string
              KeepTop:
                type: boolean
                default: false
              KeepBottom:
                type: boolean
                default: false
              NoTop:
                type: boolean
                default: false
              Rotation:
                type: boolean
                default: true
              StackCapacity:
                minimum: 0
                type: integer
              StackWeightCapacity:
                minimum: 0
                type: integer
              Gap:
                minimum: 0
                type: integer
        Speed:
          enum:
          - Fast
          - VeryFast
          - Slow
          - Instant
          type: string
          default: Fast
        CalculationMode:
          enum:
          - MinimizeLength
          - MinimizeHeight
          type: string
          default: MinimizeLength
        ContainerMode:
          type: string
          description: Reserved. The solver currently rejects an explicit value; omit this field. With no ContainerMode set, the solver packs into the best single candidate container.
        AllowMixedStack:
          enum:
          - Allow
          - Disallow
          type: string
          default: Allow
      description: The solver's own contract. Whole numbers in any unit used consistently (millimetres and grams are usual); dimensions 1–19,999.
    Container:
      required:
      - Height
      - Width
      - Length
      type: object
      properties:
        Height:
          maximum: 19999
          minimum: 1
          type: integer
        Width:
          maximum: 19999
          minimum: 1
          type: integer
        Length:
          maximum: 19999
          minimum: 1
          type: integer
        MaxItems:
          type: integer
        MaxWeight:
          maximum: 100000000
          minimum: 1
          type: integer
          default: 0
        Stability:
          maximum: 100
          minimum: 75
          type: integer
          default: 75
    BestBoxesResponse:
      title: Calculation Output
      required:
      - ContainerDimensions
      - ItemsPut
      - Quantity
      - RemainingVolume
      type: array
      items:
        type: object
        properties:
          ContainerDimensions:
            maxLength: 25
            minLength: 5
            type: string
          Quantity:
            maximum: 1000
            minimum: 0
            type: integer
          RemainingVolume:
            minimum: 0
            type: integer
            format: int64
          ItemsPut:
            type: array
            items:
              required:
              - Item
              - Coord
              type: object
              properties:
                Item:
                  required:
                  - Height
                  - Width
                  - Length
                  - Quantity
                  - TagOrColor
                  - ContainerIndex
                  type: object
                  properties:
                    Height:
                      maximum: 19999
                      minimum: 1
                      type: integer
                    Width:
                      maximum: 19999
                      minimum: 1
                      type: integer
                    Length:
                      maximum: 19999
                      minimum: 1
                      type: integer
                    Quantity:
                      type: integer
                      default: 1
                    TagOrColor:
                      minLength: 1
                      type: string
                    ContainerIndex:
                      minimum: 0
                      type: integer
                Coord:
                  required:
                  - X
                  - Y
                  - Z
                  type: object
                  properties:
                    X:
                      maximum: 19999
                      minimum: 0
                      type: integer
                    Y:
                      maximum: 19999
                      minimum: 0
                      type: integer
                    Z:
                      maximum: 19999
                      minimum: 0
                      type: integer
    BestBoxesRequest:
      title: Calculation Input
      required:
      - Candidates
      properties:
        Candidates:
          maxItems: 20
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/Container'
        Item:
          minItems: 1
          required:
          - Height
          - Width
          - Length
          type: object
          properties:
            Height:
              maximum: 19999
              minimum: 1
              type: integer
            Width:
              maximum: 19999
              minimum: 1
              type: integer
            Length:
              maximum: 19999
              minimum: 1
              type: integer
            KeepTop:
              type: boolean
              default: false
            KeepBottom:
              type: boolean
              default: false
            NoTop:
              type: boolean
              default: false
            Weight:
              maximum: 100000000
              minimum: 1
              type: integer
              default: 0
            StackCapacity:
              minimum: 0
              type: integer
            StackWeightCapacity:
              minimum: 0
              type: integer
            Gap:
              minimum: 0
              type: integer
        Speed:
          enum:
          - Fast
          - VeryFast
          - Slow
          - Instant
          type: string
          default: Fast
        CalculationMode:
          enum:
          - MinimizeLength
          - MinimizeHeight
          type: string
          default: MinimizeLength
  securitySchemes:
    apiKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
      description: Alternative to sending `apiKey` in the body. `username` is still required alongside it.
    apiUsernameHeader:
      type: apiKey
      in: header
      name: X-API-Username
      description: The account the key belongs to. Required with X-API-Key on the typed endpoints.
externalDocs:
  description: Human-readable API reference
  url: https://3dpack.ing/api-docs.html
x-refined-from:
- 3dpack-ing-openapi.json
- 3dpack-ing-original.json