The Consent Studio Reseller API
The Reseller API allows approved partners to manage customer sites, assign plans, and automate onboarding.
All endpoints are authenticated using a reseller API token and scoped to the reseller that owns the token.
You’ll need a reseller API token (request one via your account manager or support team).
Authentication
You can authenticate via a Bearer Token in the HTTP header or a token parameter in the query string.
Example (HTTP header)
Authorization: Bearer YOUR_RESELLER_TOKEN
Example (query)
?token=YOUR_RESELLER_TOKEN
If the token is missing or invalid, the API will return a 401 Unauthorized error.
Workflow examples
Create + Invite + Link
Make sure that your reseller holds at least one site that has a manually activated subscription for a specific type plan.
POST
/sites — register the new domain with Consent StudioPATCH
/sites/{domain_or_uuid}/link — link it to the a top level site with an active subscriptionPOST
/users/invite/{domain_or_uuid} — invite the customer to manage their site
Cancelling a site
Either...
Unlink it from a parent subscription (API) and contact Consent Studio support (manually) to detach it from the reseller account
Delete the site completely using the API
Endpoint: Get Reseller Info & Available Plans
Returns metadata about the reseller and a list of subscription plans the reseller can assign to sites.
Endpoint
GET /api/v1/reseller/about
Response
{
"reseller": {
"name": string,
},
"plans": [
{
"uuid": string,
"name": string,,
"cycle": "monthly"|"yearly",
}
]
}
Endpoint: List All Sites
Returns all sites linked to your reseller account.
Endpoint
GET /api/v1/reseller/sites
Request
{
"page": int,
}
Response
{
"items": [
{
"uuid": string,
"domain": string,
"parent_site": string,
"plan": string,
"is_active": true|false,
"is_trialing": true|false,
"is_subscribed": true|false,
"is_top_level_domain": true|false,
"is_subdomain": true|false,
"has_http_consent_cookies_enabled": true|false,
"has_http_consent_cookies_enabled_via_worker": true|false,
}
],
"meta": {
"current_page": int,
"last_page": int,
"per_page": int,
"total": int,
}
}
Endpoint: Create A Site
Creates a new site under your reseller account. If it is not linked to a parent site with an active subscription, the site starts on a trial.
Endpoint
POST /api/v1/reseller/sites
Request
{
"domain": string,
"languages": array|null,
"enable_http_cookies": true|false|null,
"enable_http_cookies_via_worker": true|false|null,
"link_to_domain": string|null,
"link_to_uuid": string|null,
"primary_color": string|null,
}
Remarks
link_to_domain
andlink_to_uuid
are used to link this site to another domain for simplified/combined invoicing.link_to_domain
andlink_to_uuid
cannot both be present at the same time.primary_color
must be a color hex when present.
Response
{
"items": [
{
"uuid": string,
"domain": string,
"parent_site": string|null
"plan": string,
"aliases": null|array<string>,
"languages": array<string>,
"last_health_check_at": null|string,
"primary_color": string,
"is_active": true|false,
"is_trialing": true|false,
"is_subscribed": true|false,
"is_top_level_domain": true|false,
"is_subdomain": true|false,
"has_http_consent_cookies_enabled": true|false,
"has_http_consent_cookies_enabled_via_worker": true|false,
"has_functional_cookies": true|false,
"has_analytics_cookies": true|false,
"has_marketing_cookies": true|false,
"has_analytics_reprompting_enabled": true|false,
"has_marketing_reprompting_enabled": true|false,
}
]
}
Endpoint: View A Site
Get detailed information about a specific site using its UUID or domain.
Endpoint
GET /api/v1/reseller/sites/{uuid_or_domain}
Response
{
"items": [
{
"uuid": string,
"domain": string,
"parent_site": string|null
"plan": string,
"aliases": null|array<string>,
"languages": array<string>,
"last_health_check_at": null|string,
"primary_color": string,
"is_active": true|false,
"is_trialing": true|false,
"is_subscribed": true|false,
"is_top_level_domain": true|false,
"is_subdomain": true|false,
"has_http_consent_cookies_enabled": true|false,
"has_http_consent_cookies_enabled_via_worker": true|false,
"has_functional_cookies": true|false,
"has_analytics_cookies": true|false,
"has_marketing_cookies": true|false,
"has_analytics_reprompting_enabled": true|false,
"has_marketing_reprompting_enabled": true|false,
}
]
}
Endpoint: Update A Site
Update settings for a site, including language options, cookie settings, or linking it to a parent site by UUID or domain.
Endpoint
PATCH /api/v1/reseller/sites/{uuid_or_domain}
Request
{
"languages": array|null,
"enable_http_cookies": true|false|null,
"enable_http_cookies_via_worker": true|false|null,
"link_to_domain": string|null,
"link_to_uuid": string|null,
"primary_color": string|null,
}
Remarks
link_to_domain
andlink_to_uuid
are used to link this site to another domain for simplified/combined invoicing.link_to_domain
andlink_to_uuid
cannot both be present at the same time.primary_color
must be a color hex when present.
Response
{
"items": [
{
"uuid": string,
"domain": string,
"parent_site": string|null
"plan": string,
"aliases": null|array<string>,
"languages": array<string>,
"last_health_check_at": null|string,
"primary_color": string,
"is_active": true|false,
"is_trialing": true|false,
"is_subscribed": true|false,
"is_top_level_domain": true|false,
"is_subdomain": true|false,
"has_http_consent_cookies_enabled": true|false,
"has_http_consent_cookies_enabled_via_worker": true|false,
"has_functional_cookies": true|false,
"has_analytics_cookies": true|false,
"has_marketing_cookies": true|false,
"has_analytics_reprompting_enabled": true|false,
"has_marketing_reprompting_enabled": true|false,
}
]
}
Endpoint: Delete A Site
Permanently deletes a site from our systems and your reseller account.
When deleting a site/domain, all its information and consent action records will be deleted instantly. This action is irreversible.
Endpoint
DELETE /api/v1/reseller/sites/{uuid_or_domain}
Response
{
"message": "Site deleted"
}
Endpoint: Link a Site to a Subscribed Site
Link a site to a subscribed parent site, allowing the child site to share the parent’s plan. This updates the site’s subscription state and the quantity of on the parent's subscription plan.
PATCH /api/v1/reseller/sites/{uuid_or_domain}/link
Request
{
"target": string,
}
Remarks
target
can both be an UUID or a domain name.A top level site cannot become a child site of another child site.
Upon connecting new child sites to a top level site, the top level site's subscription quantities will be updated shortly.
Endpoint: Unlink A Site From Its Parent
Unlink a site from its parent site. This removes it from the parent site’s subscription and starts a new trial.
Endpoint
PATCH /api/v1/reseller/sites/{uuid_or_domain}/link
Response
{
"message": "Site deleted"
}
Remarks
Upon disconnecting a child site from a top level site, it will be considered a top level site again. However, it will not be subscribed anymore and a new trial will start. Please refer to our product website to see the standard length of any new trial.
Endpoint: Invite Users To Manage A Site
Endpoint
POST /api/v1/reseller/users/invite/{uuid_or_domain}
Request
{
"invite": array<string>|string,
}
Remarks
invite
will hold the e-mail addresses of the users that are to be invited. You are responsible yourself for retrieving consent for sharing personal identifiable information.
Response
{
"message": "Process completed",
"successful": array<string>,
"failed": array<string>,
}