Spoolman API

Spoolman API as documented publicly: 12 operations. Contract generated from the documentation by API Evangelist (2026-10-28); not the provider's own document.

Operations 12

POST /api/appconnection/DeleteNotificationWebhook Deletes the App Connection webhook notification URL to prevent future callbacks. #
POST /api/appconnection/SetNotificationWebhook Sets or updates the App Connection notification webhook URL. #
GET /api/appconnection/TestWebhook App developers can easily invoke test webhook calls from the OctoEverywhere service to the configured WebhookUrl using this test API. #
GET /api/appconnection/info Returns current state and useful details for one App Connection. #
POST /api/gadget/GetStatusFromAppConnection Returns the current state of Gadget, OctoEverywhere's AI failure detection assistant, for the printer associated with an App Connection. #
POST /api/gadget/v1/cancelcontext/{id} Close a context early. #
POST /api/gadget/v1/contextinfo/{id} Read the context's current settings and state. #
POST /api/gadget/v1/createcontext POST /api/gadget/v1/createcontext #
POST /api/gadget/v1/extendcontext/{id} Extend a context's lifetime when a print needs more time. #
POST /api/live/createfromappconnection The Create Live Link API creates a shareable Live Link for the printer associated with an App Connection. #
GET /appportal/v1 Start the App Connection Portal for app setup. #
GET /appportal/v1/complete Default completion URL for the App Connection Portal where the portal navigates upon setup success or failure. #

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/spoolman:spoolman-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

spoolman-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Spoolman API
  version: '2026-10-28'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-28: 12 operation(s) read from 8 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; Spoolman has published no machine-readable contract that the
    pipeline could find. Engine: anthropic.'
  x-evidence-tiers:
    code-example: 1
    documentation: 11
    pages-with-code: 1
    pages-read: 8
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-28'
  x-generator: generate-contract-from-docs.py
  x-engine: anthropic
  x-sources:
  - https://docs.octoeverywhere.com/app-connections/apis/info-api
  - https://docs.octoeverywhere.com/app-connections/apis/notification-webhook
  - https://docs.octoeverywhere.com/app-connections/apis/live-links
  - https://docs.octoeverywhere.com/app-connections/apis/gadget-status
  - https://docs.octoeverywhere.com/ai-failure-detection-apis/create-context
  - https://docs.octoeverywhere.com/ai-failure-detection-apis/context-management
  - https://docs.octoeverywhere.com/app-connections/portal
  - https://docs.octoeverywhere.com/app-connections/usage
servers:
- url: https://octoeverywhere.com
paths:
  /api/appconnection/DeleteNotificationWebhook:
    post:
      operationId: post_api_appconnection_DeleteNotificationWebhook
      tags:
      - Api
      summary: Deletes the App Connection webhook notification URL to prevent future callbacks.
      x-source: https://docs.octoeverywhere.com/app-connections/apis/notification-webhook
      parameters:
      - name: AppToken
        in: header
        required: false
        schema:
          type: string
        description: The appApiToken returned by the App Connection Portal.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiAppconnectionDeletenotificationwebhookRequest'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/appconnection/SetNotificationWebhook:
    post:
      operationId: post_api_appconnection_SetNotificationWebhook
      tags:
      - Api
      summary: Sets or updates the App Connection notification webhook URL.
      x-source: https://docs.octoeverywhere.com/app-connections/apis/notification-webhook
      parameters:
      - name: AppToken
        in: header
        required: false
        schema:
          type: string
        description: The appApiToken returned by the App Connection Portal.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiAppconnectionSetnotificationwebhookRequest'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/appconnection/TestWebhook:
    get:
      operationId: get_api_appconnection_TestWebhook
      tags:
      - Api
      summary: App developers can easily invoke test webhook calls from the OctoEverywhere service to the configured WebhookUrl using this test
        API.
      x-source: https://docs.octoeverywhere.com/app-connections/apis/notification-webhook
      parameters:
      - name: AppToken
        in: header
        required: true
        schema:
          type: string
        description: The appApiToken returned by the App Connection Portal.
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /api/appconnection/info:
    get:
      operationId: get_api_appconnection_info
      tags:
      - Api
      summary: Returns current state and useful details for one App Connection.
      x-source: https://docs.octoeverywhere.com/app-connections/apis/info-api
      parameters:
      - name: AppToken
        in: header
        required: true
        schema:
          type: string
        description: The appApiToken returned by the App Connection Portal.
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiAppconnectionInfoResponse'
      x-evidence:
        kind: documentation
  /api/gadget/GetStatusFromAppConnection:
    post:
      operationId: post_api_gadget_GetStatusFromAppConnection
      tags:
      - Api
      summary: Returns the current state of Gadget, OctoEverywhere's AI failure detection assistant, for the printer associated with an App Connection.
      x-source: https://docs.octoeverywhere.com/app-connections/apis/gadget-status
      parameters:
      - name: AppToken
        in: header
        required: true
        schema:
          type: string
        description: The appApiToken returned by the App Connection Portal.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiGadgetGetstatusfromappconnectionRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiGadgetGetstatusfromappconnectionResponse'
      x-evidence:
        kind: documentation
  /api/gadget/v1/cancelcontext/{id}:
    post:
      operationId: post_api_gadget_v1_cancelcontext_id
      tags:
      - Api
      summary: Close a context early.
      x-source: https://docs.octoeverywhere.com/ai-failure-detection-apis/context-management
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiGadgetV1CancelcontextIdResponse'
      x-evidence:
        kind: documentation
  /api/gadget/v1/contextinfo/{id}:
    post:
      operationId: post_api_gadget_v1_contextinfo_id
      tags:
      - Api
      summary: Read the context's current settings and state.
      x-source: https://docs.octoeverywhere.com/ai-failure-detection-apis/context-management
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiGadgetV1ContextinfoIdResponse'
      x-evidence:
        kind: documentation
  /api/gadget/v1/createcontext:
    post:
      operationId: post_api_gadget_v1_createcontext
      tags:
      - Api
      summary: POST /api/gadget/v1/createcontext
      x-source: https://docs.octoeverywhere.com/ai-failure-detection-apis/create-context
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '201':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiGadgetV1CreatecontextResponse'
      x-evidence:
        kind: code-example
        language: curl
        snippet: "curl -X POST  'https://gadget-pv1-oeapi.octoeverywhere.com/api/gadget/v1/createcontext'  -H 'X-API-Key: prod_YOUR_API_KEY' \
          \ -H 'Content-Type: application/json'  -d '{}' \n Headers ¶ \n Name \n Type \n Required \n Description \n X-API-Key \n string \n Yes\
          \ \n Your Gadget API key. \n JSON Request Body ¶ \n All fields are optional. Omit them or send null to use their defaults. WarningConfidenceLevel\
          \ and PauseCon"
  /api/gadget/v1/extendcontext/{id}:
    post:
      operationId: post_api_gadget_v1_extendcontext_id
      tags:
      - Api
      summary: Extend a context's lifetime when a print needs more time.
      x-source: https://docs.octoeverywhere.com/ai-failure-detection-apis/context-management
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: X-API-Key
        in: header
        required: true
        schema:
          type: string
        description: The context's owning, creating API key.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiGadgetV1ExtendcontextIdRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiGadgetV1ExtendcontextIdResponse'
      x-evidence:
        kind: documentation
  /api/live/createfromappconnection:
    post:
      operationId: post_api_live_createfromappconnection
      tags:
      - Api
      summary: The Create Live Link API creates a shareable Live Link for the printer associated with an App Connection.
      x-source: https://docs.octoeverywhere.com/app-connections/apis/live-links
      parameters:
      - name: AppToken
        in: header
        required: true
        schema:
          type: string
        description: The appApiToken returned by the App Connection Portal.
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostApiLiveCreatefromappconnectionRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostApiLiveCreatefromappconnectionResponse'
      x-evidence:
        kind: documentation
  /appportal/v1:
    get:
      operationId: get_appportal_v1
      tags:
      - Appportal
      summary: Start the App Connection Portal for app setup.
      x-source: https://docs.octoeverywhere.com/app-connections/portal
      parameters:
      - name: appId
        in: query
        required: true
        schema:
          type: string
        description: The App ID assigned to your app by OctoEverywhere. It identifies which app created the App Connection and is used in the
          portal UI.
      - name: returnUrl
        in: query
        required: false
        schema:
          type: string
        description: URL-encoded completion URL. If omitted, the portal navigates to https://octoeverywhere.com/appportal/v1/complete . Returned
          query parameters are appended to this URL.
      - name: printerId
        in: query
        required: false
        schema:
          type: string
        description: The OctoEverywhere Printer ID the user is trying to connect to. If it belongs to the user's account, the portal selects it
          by default. If not, the portal starts the flow to add it.
      - name: appLogoUrl
        in: query
        required: false
        schema:
          type: string
        description: URL-encoded logo URL shown in the portal. The image is displayed in a 100x100px square. Logos with solid circular backgrounds
          and transparent corners work best.
      - name: octoPrintApiKeyAppName
        in: query
        required: false
        schema:
          type: string
        description: URL-encoded app name to show in OctoPrint's API key settings. If present, the portal attempts to generate an OctoPrint API
          key for your app.
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /appportal/v1/complete:
    get:
      operationId: get_appportal_v1_complete
      tags:
      - Appportal
      summary: Default completion URL for the App Connection Portal where the portal navigates upon setup success or failure.
      x-source: https://docs.octoeverywhere.com/app-connections/portal
      parameters:
      - name: success
        in: query
        required: true
        schema:
          type: boolean
        description: Indicates whether the portal flow succeeded.
      - name: id
        in: query
        required: false
        schema:
          type: string
        description: The new App Connection ID. Store it with the user's printer record.
      - name: url
        in: query
        required: false
        schema:
          type: string
        description: The App Connection root URL. Use this in place of the local printer URL for remote access.
      - name: appApiToken
        in: query
        required: false
        schema:
          type: string
        description: API token for OctoEverywhere App APIs for this App Connection. Store it securely; it is only returned once.
      - name: printername
        in: query
        required: false
        schema:
          type: string
        description: The user-assigned printer name.
      - name: userPrinterAccessUrl
        in: query
        required: false
        schema:
          type: string
        description: User-facing OctoEverywhere printer URL. This is useful for UI links, but it is not the app-authenticated App Connection URL.
      - name: printerLastKnownLocalIp
        in: query
        required: false
        schema:
          type: string
        description: Last known LAN IP address for the printer, if known. This can help your app discover and prefer the local printer connection
          when available.
      - name: authBasicHttpUser
        in: query
        required: false
        schema:
          type: string
        description: Generated HTTP Basic auth username. Returned when basic auth is used.
      - name: authBasicHttpPassword
        in: query
        required: false
        schema:
          type: string
        description: Generated HTTP Basic auth password. Returned when basic auth is used.
      - name: authBearerToken
        in: query
        required: false
        schema:
          type: string
        description: Generated bearer token. Returned when bearer auth is used.
      - name: octoPrintApiKey
        in: query
        required: false
        schema:
          type: string
        description: Generated OctoPrint API key, if octoPrintApiKeyAppName was requested and key creation succeeded.
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
components:
  schemas:
    PostApiAppconnectionDeletenotificationwebhookRequest:
      type: object
      properties:
        AppToken:
          type: string
          description: Required if not sent as a header.
    PostApiAppconnectionSetnotificationwebhookRequest:
      type: object
      properties:
        AppToken:
          type: string
          description: Required if not sent as a header.
        WebhookUrl:
          type: string
          description: The HTTPS URL OctoEverywhere should call when a matching notification event fires. The URL may include query parameters
            with app-specific identifiers, tokens, or routing metadata.
        InclusiveEventTypesFilter:
          type: integer
          description: Notification event enum values to deliver. If omitted, all notification events are delivered.
      required:
      - WebhookUrl
    GetApiAppconnectionInfoResponse:
      type: object
      properties:
        PrinterName:
          type: string
          description: The name assigned to the printer in OctoEverywhere by the user.
        PrinterLocalIp:
          type: string
          description: Last known LAN IP address for the printer, if known. Useful for local printer discovery after OctoEverywhere setup.
        IsOnline:
          type: boolean
          description: true when the printer is currently connected to OctoEverywhere.
        LastDisconnectTimeUtc:
          type: string
          description: Last time the printer disconnected from OctoEverywhere.
        LastConnectionTimeUtc:
          type: string
          description: Last time the printer connected to OctoEverywhere.
        UserFacingPrinterUrl:
          type: string
          description: URL the user can open for normal OctoEverywhere remote access. This URL requires the user to be logged in and is useful
            for app web views or user-facing links. It is not the app-authenticated App Connection URL.
        PrinterLimits:
          type: object
          description: Current account limits that can affect App Connection requests.
        MaxDownloadFileSizeBytes:
          type: integer
          description: Maximum file size the user can download through the App Connection. Depends on the user's supporter level.
        MaxUploadFileSizeBytes:
          type: integer
          description: Maximum file size the user can upload through the App Connection. Depends on the user's supporter level.
        MaxSingleWebcamStreamLengthSeconds:
          type: integer
          description: Maximum duration for one webcam stream session.
    PostApiGadgetGetstatusfromappconnectionRequest:
      type: object
      properties:
        AppToken:
          type: string
          description: The appApiToken returned by the App Connection Portal. Only required in the body if it was not sent as a header.
    PostApiGadgetGetstatusfromappconnectionResponse:
      type: object
      properties:
        State:
          type: integer
          description: Gadget state enum. See Gadget States.
        Status:
          type: string
          description: Short user-facing status text for the active print. Expected to be about four words or fewer.
        StatusColor:
          type: string
          description: 'One-character status color: g green, y yellow, r red, or w white/neutral.'
        Rating:
          type: integer
          description: Print-quality rating from 1 to 10.
    PostApiGadgetV1CancelcontextIdResponse:
      type: object
      properties:
        ContextId:
          type: string
          description: The context ID supplied in the request.
        IsCancelled:
          type: boolean
          description: Always true after a successful cancellation.
    PostApiGadgetV1ContextinfoIdResponse:
      type: object
      properties:
        ContextId:
          type: string
          description: The context ID supplied in the request. Keep it private.
        CreatedAtUtc:
          type: string
          description: Original creation time. Extensions do not change it.
        ExpiresAtUtc:
          type: string
          description: Current processing deadline, including extensions. null means no explicit deadline was configured.
        MaxProcessCountPerMinute:
          type: integer
          description: The per-server rolling-minute limit, or null if unset.
        ReferenceId:
          type: string
          description: Your reference from creation, or null if unset.
        WarningConfidenceLevel:
          type: integer
          description: Confidence needed to suggest a warning, from 1 to 5 . Defaults to 3 at creation.
        PauseConfidenceLevel:
          type: integer
          description: Confidence needed to suggest a pause, from 1 to 5 . Defaults to 3 at creation.
        IsCancelled:
          type: boolean
          description: Whether the context was permanently canceled.
        IsExpired:
          type: boolean
          description: Whether its configured deadline has been reached, using the service's clock. false when no deadline was set.
    PostApiGadgetV1CreatecontextResponse:
      type: object
      properties:
        ContextId:
          type: string
        ProcessRequestUrl:
          type: string
        FallbackProcessRequestUrl:
          type: string
        ExpiresAtUtc:
          type:
          - string
          - 'null'
        MaxProcessCountPerMinute:
          type:
          - string
          - 'null'
        ReferenceId:
          type:
          - string
          - 'null'
    PostApiGadgetV1ExtendcontextIdRequest:
      type: object
      properties:
        ExpireAfterSec:
          type: integer
          description: Requested total lifetime from CreatedAtUtc , from 1 through 1209600 seconds (14 days).
      required:
      - ExpireAfterSec
    PostApiGadgetV1ExtendcontextIdResponse:
      type: object
      properties:
        ContextId:
          type: string
          description: The same context ID supplied in the request.
        ExpiresAtUtc:
          type: string
          description: The effective deadline after the request. It can be later than requested if another request already extended it, or null
            if no deadline was configured.
    PostApiLiveCreatefromappconnectionRequest:
      type: object
      properties:
        AppToken:
          type: string
          description: Required if not sent as a header.
        ExpirationHours:
          type: number
          description: Number of hours until the Live Link expires. Must be between 1 and 17520. Defaults to 24 hours if omitted.
        EndWhenCurrentPrintIsComplete:
          type: boolean
          description: When true, ExpirationHours is ignored and the Live Link tracks the active print. When the print completes, live access
            ends and the link becomes a static print result page.
    PostApiLiveCreatefromappconnectionResponse:
      type: object
      properties:
        LiveId:
          type: string
          description: Live Link ID. This is a random alphanumeric string, and its length may change over time.
        Url:
          type: string
          description: Full URL the user can share.
        ShortUrl:
          type: string
          description: Short URL that redirects to Url.
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
security:
- apiKey: []
tags:
- name: Api
- name: Appportal