4klyft API (1.0.0)

Download OpenAPI specification:

4klyft API Support: [email protected] License: Proprietary

Commerce and order-fulfilment platform API for 4klyft.

Overview

This API provides endpoints for managing:

  • Catalog (PIM/DAM): products, variants, attributes, options, categories, brands, collections, assortments, and media
  • Sales: orders, customers, merchants, sales channels, and channel order import
  • Inventory: stock items, levels, lots, and serial units across custodians
  • Warehousing & Operations: goods receipt/issue, holds, and custodian operations
  • Fulfilment: fulfilment orders dispatched to third-party (3PL) providers
  • Shipping: carriers, shipments, labels, tracking, returns, and proof of delivery
  • Finance & Billing: payments, settlements, invoices, credit notes, tax, and subscriptions
  • Integration: sales-channel connections, providers, webhooks, and catalog/order sync
  • Documents: operational document generation and requests
  • Storage: file/drive storage with chunked upload and signed access
  • Identity & Access (IAM): authentication, users, roles, permissions, and tenants
  • Platform services: notifications, scheduling, numbering, data exchange, analytics, and workspace tables & views

Authentication

All API endpoints (except /api/docs and /api/v1/iam/auth/*) require JWT Bearer token authentication. Include the token in the Authorization header:

Authorization: Bearer <your-jwt-token>

Rate Limiting

Every /api/ request is rate-limited per caller — by your authenticated identity when a token is present, otherwise by client IP. The authentication endpoints (/auth/login, /auth/refresh, /auth/request-password-reset) carry stricter, IP-based limits.

Each response advertises your current budget via headers:

  • X-RateLimit-Limit — the bucket size
  • X-RateLimit-Remaining — tokens left in the current window
  • X-RateLimit-Reset — Unix timestamp when a token next frees up

Exceeding a limit returns 429 Too Many Requests (RFC 6585) with a Retry-After header (seconds to wait). Back off and retry after the indicated delay rather than hammering the endpoint.

Error Handling

The API uses RFC 7807 Problem Details for error responses.

Scheduling

Resource 'Scheduling' operations.

List schedules

Tenant-scoped list of schedules, filterable by status and taskKind.

Authorizations:
Bearer
query Parameters
page
integer
Default: 1

The collection page number

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

Create a schedule

Declares a schedule for a registered task kind. Validates the config against the kind's schema and computes the first run.

Authorizations:
Bearer
Request Body schema:
required

The new Schedule resource

taskKind
string
Default: ""
object
triggerType
string
Default: ""

one_off | periodic

runAt
string or null
cronExpression
string or null
timezone
string or null
Default: "UTC"
startAt
string or null
endAt
string or null
owner
string or null
scopeTier
string or null
Value: "tenant"

Responses

Request samples

Content type
{
  • "taskKind": "",
  • "config": {
    },
  • "triggerType": "",
  • "runAt": "string",
  • "cronExpression": "string",
  • "timezone": "UTC",
  • "startAt": "string",
  • "endAt": "string",
  • "owner": "string",
  • "scopeTier": "tenant"
}

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "taskKind": "",
  • "label": "",
  • "config": {
    },
  • "triggerType": "",
  • "runAt": "string",
  • "cronExpression": "string",
  • "timezone": "string",
  • "startAt": "string",
  • "endAt": "string",
  • "owner": "",
  • "scopeTier": "",
  • "requiredScope": "string",
  • "status": "",
  • "nextRunAt": "string",
  • "lastRunAt": "string",
  • "lastRunStatus": "string",
  • "retryPolicy": {
    },
  • "currentAttempt": 1,
  • "retryAt": "string",
  • "createdAt": "string"
}

Get a schedule

Get a schedule

Authorizations:
Bearer
path Parameters
id
required
string

Schedule identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "taskKind": "",
  • "label": "",
  • "config": {
    },
  • "triggerType": "",
  • "runAt": "string",
  • "cronExpression": "string",
  • "timezone": "string",
  • "startAt": "string",
  • "endAt": "string",
  • "owner": "",
  • "scopeTier": "",
  • "requiredScope": "string",
  • "status": "",
  • "nextRunAt": "string",
  • "lastRunAt": "string",
  • "lastRunStatus": "string",
  • "retryPolicy": {
    },
  • "currentAttempt": 1,
  • "retryAt": "string",
  • "createdAt": "string"
}

Cancel a schedule

Cancel a schedule

Authorizations:
Bearer
path Parameters
id
required
string

Schedule identifier

Responses

Response samples

Content type
{
  • "type": "/errors/validation-error",
  • "title": "Validation Error",
  • "status": 400,
  • "detail": "The provided input is invalid",
  • "violations": [
    ],
  • "instance": "string"
}

Pause a schedule

Pause a schedule

Authorizations:
Bearer
path Parameters
id
required
string

Schedule identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "taskKind": "",
  • "label": "",
  • "config": {
    },
  • "triggerType": "",
  • "runAt": "string",
  • "cronExpression": "string",
  • "timezone": "string",
  • "startAt": "string",
  • "endAt": "string",
  • "owner": "",
  • "scopeTier": "",
  • "requiredScope": "string",
  • "status": "",
  • "nextRunAt": "string",
  • "lastRunAt": "string",
  • "lastRunStatus": "string",
  • "retryPolicy": {
    },
  • "currentAttempt": 1,
  • "retryAt": "string",
  • "createdAt": "string"
}

Resume a paused schedule

Resume a paused schedule

Authorizations:
Bearer
path Parameters
id
required
string

Schedule identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "taskKind": "",
  • "label": "",
  • "config": {
    },
  • "triggerType": "",
  • "runAt": "string",
  • "cronExpression": "string",
  • "timezone": "string",
  • "startAt": "string",
  • "endAt": "string",
  • "owner": "",
  • "scopeTier": "",
  • "requiredScope": "string",
  • "status": "",
  • "nextRunAt": "string",
  • "lastRunAt": "string",
  • "lastRunStatus": "string",
  • "retryPolicy": {
    },
  • "currentAttempt": 1,
  • "retryAt": "string",
  • "createdAt": "string"
}

Run a schedule immediately

Run a schedule immediately

Authorizations:
Bearer
path Parameters
id
required
string

Schedule identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "id": "",
  • "taskKind": "",
  • "label": "",
  • "config": {
    },
  • "triggerType": "",
  • "runAt": "string",
  • "cronExpression": "string",
  • "timezone": "string",
  • "startAt": "string",
  • "endAt": "string",
  • "owner": "",
  • "scopeTier": "",
  • "requiredScope": "string",
  • "status": "",
  • "nextRunAt": "string",
  • "lastRunAt": "string",
  • "lastRunStatus": "string",
  • "retryPolicy": {
    },
  • "currentAttempt": 1,
  • "retryAt": "string",
  • "createdAt": "string"
}

List a schedule's run history

Paginated firing history for a schedule, most recent first.

Authorizations:
Bearer
path Parameters
runId
required
string

ScheduleRun identifier

query Parameters
page
integer
Default: 1

The collection page number

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "view": {
    },
  • "member": [
    ]
}

List schedulable task kinds

The catalog of registered task kinds — each with its label, description, required scope, and declarative config schema that drives the create form.

Authorizations:
Bearer

Responses

Response samples

Content type
{
  • "totalItems": 0,
  • "search": {
    },
  • "member": [
    ]
}

Get a task kind

Get a task kind

Authorizations:
Bearer
path Parameters
key
required
string

TaskKind identifier

Responses

Response samples

Content type
{
  • "@context": "string",
  • "@id": "string",
  • "@type": "string",
  • "key": "",
  • "label": "",
  • "description": "",
  • "requiredScope": "string",
  • "audience": [
    ],
  • "configSchema": [
    ]
}