Zum Inhalt springen
Anmelden

SCHRAMME Platform API

v6e40c49e091c · https://api.christoph-schramme.de/

REST API of the SCHRAMME Platform. Authenticate with `Authorization: Bearer sk_…` (keys are created in the admin control center). Every key carries scopes; effective rights never exceed those of the key's creator. Errors use the shape `{ error: { code, message, requestId, issues? } }`.

Meta

get/v1/healthöffentlich

Liveness of the API

200 Success · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

get/v1/statusöffentlich

Public platform status

Abstract product states, 90-day daily history and public incident notes – the same data as the status page.

200 Success · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

get/v1/me

Describe the calling API key

Returns the key's granted scopes and the scopes that are effective with the creator's current permissions.

200 Success · 401 Missing or invalid API key · 403 Key lacks the required scope · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

Print

get/v1/print/ordersscope: print.read

List print orders

Parameter

  • statusquery · stringStatus filter; `open` = every non-final status
  • qquery · stringFull-text search or exact number
  • pagequery · integer
  • pageSizequery · integer

200 Success · 401 Missing or invalid API key · 403 Key lacks the required scope · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

get/v1/print/orders/{id}scope: print.read

Get a print order with files, history and comments

Parameter

  • idpath · Pflicht · string

200 Success · 401 Missing or invalid API key · 403 Key lacks the required scope · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

post/v1/print/orders/{id}/decisionscope: print.write

Approve or reject a pending print order

Parameter

  • idpath · Pflicht · string
Request-Body (JSON Schema)
{
  "type": "object",
  "properties": {
    "decision": {
      "type": "string",
      "enum": [
        "approve",
        "reject"
      ]
    },
    "reason": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "decision"
  ]
}

200 Success · 401 Missing or invalid API key · 403 Key lacks the required scope · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

post/v1/print/orders/{id}/statusscope: print.write

Change the status of a print order

Follows the order workflow; invalid transitions return 409 INVALID_STATE.

Parameter

  • idpath · Pflicht · string
Request-Body (JSON Schema)
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "approved",
        "preparation",
        "in_progress",
        "done",
        "ready",
        "completed",
        "cancelled"
      ]
    },
    "note": {
      "type": [
        "string",
        "null"
      ]
    },
    "actualGrams": {
      "anyOf": [
        {
          "type": "string",
          "const": ""
        },
        {
          "type": "null"
        },
        {
          "type": "number"
        }
      ]
    }
  },
  "required": [
    "status"
  ]
}

200 Success · 401 Missing or invalid API key · 403 Key lacks the required scope · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

get/v1/print/filamentsscope: print.read

List filament spools with remaining and reserved amounts

Parameter

  • includeArchivedquery · string · true | false

200 Success · 401 Missing or invalid API key · 403 Key lacks the required scope · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

Coding

get/v1/coding/ordersscope: coding.read

List coding orders

Parameter

  • statusquery · stringStatus filter; `open` = every non-final status
  • qquery · stringFull-text search or exact number
  • pagequery · integer
  • pageSizequery · integer

200 Success · 401 Missing or invalid API key · 403 Key lacks the required scope · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

get/v1/coding/orders/{id}scope: coding.read

Get a coding order

Internal estimates are only included when the key's creator may read pricing.

Parameter

  • idpath · Pflicht · string

200 Success · 401 Missing or invalid API key · 403 Key lacks the required scope · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

post/v1/coding/orders/{id}/decisionscope: coding.write

Approve or reject a pending coding order

Parameter

  • idpath · Pflicht · string
Request-Body (JSON Schema)
{
  "type": "object",
  "properties": {
    "decision": {
      "type": "string",
      "enum": [
        "approve",
        "reject"
      ]
    },
    "reason": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "decision"
  ]
}

200 Success · 401 Missing or invalid API key · 403 Key lacks the required scope · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

post/v1/coding/orders/{id}/statusscope: coding.write

Change the status of a coding order

Parameter

  • idpath · Pflicht · string
Request-Body (JSON Schema)
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "approved",
        "preparation",
        "in_progress",
        "done",
        "ready",
        "completed",
        "cancelled"
      ]
    },
    "note": {
      "type": [
        "string",
        "null"
      ]
    },
    "actualGrams": {
      "anyOf": [
        {
          "type": "string",
          "const": ""
        },
        {
          "type": "null"
        },
        {
          "type": "number"
        }
      ]
    }
  },
  "required": [
    "status"
  ]
}

200 Success · 401 Missing or invalid API key · 403 Key lacks the required scope · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

Support

get/v1/support/ticketsscope: support.read

List support tickets

`status` also accepts `overdue` (SLA breached).

Parameter

  • statusquery · stringStatus filter; `open` = every non-final status
  • qquery · stringFull-text search or exact number
  • pagequery · integer
  • pageSizequery · integer
  • priorityquery · string · low | normal | high | urgent
  • scopequery · string · all | unassigned

200 Success · 401 Missing or invalid API key · 403 Key lacks the required scope · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

get/v1/support/tickets/{id}scope: support.read

Get a ticket with its conversation

Internal notes are only included when the key's creator may read them.

Parameter

  • idpath · Pflicht · string

200 Success · 401 Missing or invalid API key · 403 Key lacks the required scope · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

patch/v1/support/tickets/{id}scope: support.write

Update status, priority, category or assignee

Parameter

  • idpath · Pflicht · string
Request-Body (JSON Schema)
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "waiting_for_supporter",
        "help_ready",
        "in_progress",
        "closed"
      ]
    },
    "priority": {
      "type": "string",
      "enum": [
        "low",
        "normal",
        "high",
        "urgent"
      ]
    },
    "categoryId": {
      "type": [
        "string",
        "null"
      ]
    },
    "assigneeId": {
      "type": [
        "string",
        "null"
      ]
    }
  }
}

200 Success · 401 Missing or invalid API key · 403 Key lacks the required scope · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

Knowledge base

get/v1/kb/articlesöffentlich

Search published help articles

Public. With a `support.read` key, internal articles are included.

Parameter

  • qquery · string
  • localequery · string · de | en
  • categoryquery · string
  • tagquery · string

200 Success · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

get/v1/kb/articles/{slug}öffentlich

Get a help article (Markdown body)

Parameter

  • slugpath · Pflicht · string
  • localequery · string · de | en

200 Success · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)

Users

get/v1/usersscope: users.read

List users (no secrets, no security data)

Parameter

  • qquery · string
  • rolequery · string
  • pagequery · integer
  • pageSizequery · integer

200 Success · 401 Missing or invalid API key · 403 Key lacks the required scope · 422 Validation failed · 429 Rate limit exceeded (see Retry-After)