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.
/api/v1/reseller/meInspect 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
| Field | Type | Required | Details |
|---|---|---|---|
reseller_id | uuid | Yes | |
reseller_name | string | Yes | Organization name |
key_id | uuid | Yes | |
scopes | reseller.customers.read | reseller.plans.read | reseller.usage.read[] | Yes | Min 1 items. Max 3 items. |
expires_at | date-time | Yes | ISO instant with explicit UTC offset. |
curl --request GET \
--url 'https://app.drykraft.com/api/v1/reseller/me' \
--header 'Authorization: Bearer <YOUR_RESELLER_API_KEY>'/api/v1/reseller/customersList 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
| Parameter | Type | Required | Details |
|---|---|---|---|
cursor | uuid | No |
No request body is required.
Response
| Field | Type | Required | Details |
|---|---|---|---|
items | object[] | Yes | Max 25 items. |
next_cursor | string or null | Yes |
curl --request GET \
--url 'https://app.drykraft.com/api/v1/reseller/customers' \
--header 'Authorization: Bearer <YOUR_RESELLER_API_KEY>'/api/v1/reseller/plansList 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
| Parameter | Type | Required | Details |
|---|---|---|---|
cursor | uuid | No |
No request body is required.
Response
| Field | Type | Required | Details |
|---|---|---|---|
items | object[] | Yes | Max 25 items. |
next_cursor | string or null | Yes |
curl --request GET \
--url 'https://app.drykraft.com/api/v1/reseller/plans' \
--header 'Authorization: Bearer <YOUR_RESELLER_API_KEY>'/api/v1/reseller/usageRead 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.
curl --request GET \
--url 'https://app.drykraft.com/api/v1/reseller/usage' \
--header 'Authorization: Bearer <YOUR_RESELLER_API_KEY>'