Browse documentation

Reseller API

Current release · Updated October 4, 2026

DryKraft Reseller API reference: methods, permissions, request fields, response shapes, examples and current limits. Read authentication and error handling first.

GET/api/v1/reseller/me

Inspect reseller API identity

Access: Scoped reseller API key · Success: 200

Dedicated dk_res_ Bearer key on the central application host only. Customer keys, browser cookies and workspace headers cannot select another reseller. All reads require an active unexpired contract/key and write a metadata-only immutable request audit.

No request body is required.

Response

FieldTypeRequiredDetails
reseller_iduuidYes
reseller_namestringYesOrganization name
key_iduuidYes
scopesreseller.customers.read | reseller.plans.read | reseller.usage.read[]Yes Min 1 items. Max 3 items.
expires_atdate-timeYesISO instant with explicit UTC offset.
Request shape (illustrative)
curl --request GET \
  --url 'https://app.drykraft.com/api/v1/reseller/me' \
  --header 'Authorization: Bearer <YOUR_RESELLER_API_KEY>'
GET/api/v1/reseller/customers

List linked reseller customers

Access: Scoped reseller API key · Success: 200

Requires reseller.customers.read. Returns only the key organization’s linked workspace id/name/slug, assignment version, retail plan/version and updated_at. No users, memberships, CRM, financial records, messages or provider credentials. 25 rows per cursor page; transferred/detached customers disappear on the next request.

Query parameters

ParameterTypeRequiredDetails
cursoruuidNo

No request body is required.

Response

FieldTypeRequiredDetails
itemsobject[]Yes Max 25 items.
next_cursorstring or nullYes
Request shape (illustrative)
curl --request GET \
  --url 'https://app.drykraft.com/api/v1/reseller/customers' \
  --header 'Authorization: Bearer <YOUR_RESELLER_API_KEY>'
GET/api/v1/reseller/plans

List reseller retail plans

Access: Scoped reseller API key · Success: 200

Requires reseller.plans.read. Returns this organization’s current retail catalog version, currency/minor-unit prices, limits and capabilities. Prices are metadata, not a provider charge. 25 rows per cursor page. No cross-reseller ID lookup or mutation.

Query parameters

ParameterTypeRequiredDetails
cursoruuidNo

No request body is required.

Response

FieldTypeRequiredDetails
itemsobject[]Yes Max 25 items.
next_cursorstring or nullYes
Request shape (illustrative)
curl --request GET \
  --url 'https://app.drykraft.com/api/v1/reseller/plans' \
  --header 'Authorization: Bearer <YOUR_RESELLER_API_KEY>'
GET/api/v1/reseller/usage

Read reseller usage allowance

Access: Scoped reseller API key · Success: 200

Requires reseller.usage.read. Eight aggregate live-resource gauges, customer count, current wholesale version/limits/capabilities and collection_configured=false. No consumed credits, private customer content or settlement ledger is exposed.

No request body is required.

Response

object. reseller_id, usage(users/contacts/custom_records/pipelines/workflows/active_workflows/integrations/calendars), customer_count, grant_version, limits, aggregate_limits, max_workspaces, features and collection_configured=false.

Request shape (illustrative)
curl --request GET \
  --url 'https://app.drykraft.com/api/v1/reseller/usage' \
  --header 'Authorization: Bearer <YOUR_RESELLER_API_KEY>'