LoadOptimizer.ai Health API

The Health API from LoadOptimizer.ai — 1 operation(s) for health.

Operations 1

GET /health Service liveness echo #

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/loadoptimizer-ai:loadoptimizer-ai-health-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

loadoptimizer-ai-health-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Load Optimizer Health API
  version: 2.0.0
  summary: Asynchronous box-packing / load-optimization API.
  description: 'Submitting work is **asynchronous**: every solve is a *job* you create, poll, then collect.


    This is the documentation of the **Load Optimizer API v2**: it describes what `/v2` supports;

    what it does not describe is not supported.


    ## Job lifecycle

    `queued → running → succeeded | failed | cancelled` (last three terminal). Poll `GET /jobs/{id}` until terminal.


    ## Conventions

    Values from a fixed set (enum values, in a request body or in list filters such as `status`, `saved` and

    `sort`) are matched without regard to case, and come back in the spelling published here: `"MM"` reads

    back as `"mm"`. Names and codes keep their case: group names, a SKU''s code (`externalId`, also as a

    filter) and system-catalogue slugs are case-sensitive. The idempotency fingerprint compares the body as you

    sent it: an enum value in another case makes a different body, so while the key is kept (see `Idempotency-Key`)

    the same key gets the `409`.'
  contact:
    email: contact@loadoptimizer.ai
servers:
- url: https://api.loadoptimizer.ai/v2
  description: Production environment of the Load Optimizer API.
  x-internal: false
security:
- ApiKey: []
tags:
- name: Health
  description: Check that the API is up. Needs no API key and does not count against the rate limit.
paths:
  /health:
    get:
      tags:
      - Health
      operationId: getHealth
      summary: Service liveness echo
      description: 'Anonymous liveness check. Always answers `status: "ok"` if the API is up at all; it deliberately runs no readiness checks of its own. Sending your key is harmless but pointless: this operation sits outside the authenticated surface, so it answers the same whether you send one, send a bad one, or send none, and it never reports on your plan.'
      security: []
      responses:
        '200':
          description: The API is up and answering requests.
          content:
            application/json:
              schema:
                type: object
                required:
                - status
                - version
                - apiVersion
                properties:
                  status:
                    type: string
                    enum:
                    - ok
                  version:
                    type: string
                    description: Opaque build identifier, e.g. `1a2b3c4d`. Compare it for equality to spot a deploy; do not parse it.
                  apiVersion:
                    type: string
                    pattern: ^\d+\.\d+\.\d+$
                    description: The version of the contract this API serves, the contract's `info.version`, such as `2.0.0`. The Changelog names each release by it, so compare the two to see which changes the API you call already has.
              examples:
                live:
                  summary: The API is up
                  value:
                    status: ok
                    version: 1a2b3c4d
                    apiVersion: 2.0.0
        '500':
          $ref: '#/components/responses/ServerProblem'
components:
  schemas:
    Problem:
      type: object
      description: 'RFC 9457 `problem+json`. `code` is stable & machine-readable when present; `errors[].pointer` locates

        the offending field, query parameter or header. Two `/v2` errors have an **empty body** instead:

        `401` and the idempotency `409`.

        See [Errors & troubleshooting](errors.html).'
      properties:
        type:
          type: string
          format: uri
          description: 'A reference for the response''s status code, not for the specific failure: two failures with different `code` values share one `type`. RFC 9457 permits `about:blank` here; this API never sends that, and the `429` responses carry no `type` at all. Switch on `code`, never on this field.'
        title:
          type: string
        status:
          type: integer
          format: int32
        detail:
          type: string
          description: Human-readable explanation, present on some errors and often naming the limit value that was exceeded. Never switch on it; switch on code.
        code:
          $ref: '#/components/schemas/ProblemCode'
        errors:
          type: array
          description: Field-level problems. Only on a 400 `validation_failed`.
          items:
            type: object
            properties:
              pointer:
                type: string
                description: For a body field, a JSON Pointer (RFC 6901) into the request body, over the member names as this contract spells them (camelCase, also when you sent another case), e.g. /carriers/0/externalId. A name you chose yourself (a group name, an overrides member) appears as sent, with ~ written as ~0 and / as ~1. For a query parameter or a header, its name without a leading /, e.g. limit or Idempotency-Key. An empty string means the body as a whole.
              code:
                type: string
                enum:
                - validation_failed
                - ambiguous_source
                - library_entry_not_found
                - override_field_not_allowed
                description: 'validation_failed, unless a field code applies: ambiguous_source or library_entry_not_found on the libraryId of a job carrier or cargo line, or override_field_not_allowed on its overrides.'
              message:
                type: string
      required:
      - title
      - status
    ProblemCode:
      type: string
      description: Stable, machine-readable top-level error-code registry, by HTTP status.
      enum:
      - validation_failed
      - ambiguous_source
      - override_field_not_allowed
      - customer_api_not_entitled
      - mixed_palletizing_not_entitled
      - load_planning_not_entitled
      - link_sharing_not_entitled
      - request_body_not_supported
      - libraries_not_entitled
      - library_read_only
      - internal_server_error
      - job_not_found
      - result_not_ready
      - artifact_not_ready
      - saved_load_not_found
      - library_not_found
      - library_entry_not_found
      - job_already_terminal
      - job_not_succeeded
      - saved_load_exists
      - external_id_taken
      - payload_too_large
      - unsupported_media_type
      - max_items_per_job
      - max_carriers_per_job
      - max_carrier_instances_per_job
      - max_saved_loads
      - max_library_entries
      - too_many_active_jobs
      - monthly_quota_exceeded
      - rate_limit_exceeded
  responses:
    ServerProblem:
      description: 'The request could not be completed for a reason the API did not anticipate. Transient as far as a caller can tell: retry, and if it persists contact support. The cause is recorded internally and is deliberately absent from the body, so there is nothing here to branch on beyond `code`.'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
          examples:
            internalServerError:
              summary: An unanticipated failure while handling the request
              value:
                type: https://tools.ietf.org/html/rfc9110#section-15.6.1
                title: Internal server error.
                status: 500
                code: internal_server_error
                detail: The request could not be completed. Retry; if it keeps failing, contact support.
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-Api-Key
      description: 'Customer API key bound to your account, e.g. `X-Api-Key: ck_live_...`. Create it in the web app (see https://app.loadoptimizer.ai/docs/api-keys); the full key is shown only once.'
x-provenance:
  method: harvested
  publisher: LoadOptimizer.ai
  source: https://www.loadoptimizer.ai/docs/loadoptimizer-openapi.yaml
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)