Yes, this endpoint lets an approved partner create a new WorkBright subdomain by copying an existing template subdomain. The new account inherits the template's configuration (workflows, document packets, and settings), so you can stand up ready-to-use accounts without setting each one up by hand.
Access note: This endpoint is available only to approved partners.
When to use it
Use this when you want to provision a new customer account programmatically instead of building it manually. A common pattern: your WorkBright representative sets up a single template with the exact configuration you want, and you clone it each time you onboard a new client.
Before you start
You need two things, and both belong to your main partner subdomain (not a template subdomain):
Your main partner subdomain — this is the host you send the request to.
The API key for that main subdomain — this authenticates the request.
You also need to know the name of the template subdomain you want to clone. Your WorkBright representative provisions templates for you, so ask them which template name to use if you're unsure.
The most common setup mistake is sending the request to a template subdomain. Always send it to your main partner subdomain. The template is named in the request body, not in the URL.
How it works, start to finish
Your WorkBright representative sets up the template(s). Each template subdomain is pre-configured with the settings you want new accounts to inherit.
You call the endpoint from your main subdomain. You authenticate with your main subdomain's API key and name the template you want to copy.
You get an immediate response with status: pending. Provisioning runs in the background. This same response includes the API key for the brand-new account, so capture and store it securely right away.
A webhook confirms the result. When provisioning finishes, an account.provisioned webhook event fires with a status of either succeeded or failed.
Because provisioning is asynchronous, a 202 response means "accepted and in progress," not "finished." The webhook is how you learn the final outcome.
The request
Item | Value |
Method | POST |
Endpoint | /api/partner/accounts/clone |
Base URL | |
Auth | API key in the API-Key header |
Content-Type | application/json |
Body parameters
Field | Type | Required | Description |
template | String | Yes | The subdomain of the template account to clone from. Use the template name your WorkBright representative provisioned for you. |
subdomain | String | Yes | The subdomain you want for the new account. Must be globally unique and URL-safe: lowercase letters, numbers, and hyphens only. |
name | String | Yes | A human-readable display name for the new account. |
account_type | String | No | Set to test to create a sandbox account. Test accounts do not count toward usage and enable a sandbox version of Document Verification. Do not use this for production accounts. |
Example request
curl --location 'https://yoursubdomain.workbright.com/api/partner/accounts/clone' \
--header 'API-Key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"template": "templatesubdomain",
"subdomain": "desiredsubdomain",
"name": "Subdomain Name"
}'
What you get back
Success: 202 Accepted
The account has been accepted and is being provisioned in the background.
{
"subdomain": "accountprovisioningtest9",
"api_key": "your_api_key",
"status": "pending"
}
Two things to note:
status is pending. The account is not finished yet. Wait for the account.provisioned webhook to confirm.
api_key is the key for the new account. Store it securely now, since this is your handle for making future API calls against that account.
Confirming the result: the account.provisioned webhook
The 202 response tells you provisioning started, not that it finished. To learn the final outcome, listen for the account.provisioned webhook. It fires once the clone request completes.
A few setup requirements:
This webhook is available only to approved partners with API subdomain provisioning access.
You must configure the webhook on your main partner bundle subdomain.
What the payload looks like
{
"event_key": "account.provisioned",
"occurred_at": "2026-06-22T10:30:35.764-06:00",
"data": {
"subdomain": "subdomainABC",
"status": "succeeded"
}
}
Reading the payload
event_key identifies the event as account.provisioned.
occurred_at is when provisioning is completed.
data.subdomain tells you which account this result belongs to. Match it against the subdomain you requested.
data.status is either succeeded or failed. If it failed, the status attribute includes additional notes explaining why.
In short: send the request, store the returned API key, then wait for this webhook to tell you whether the account is ready or needs attention.
Handling errors
401 Unauthorized — Invalid API key
Your API-Key header is missing or wrong. Confirm you're using the API key for your main partner subdomain.
{}
422 Unprocessable Entity — Subdomain already taken
The subdomain you requested is in use. Pick a different one.
{
"errors": {
"subdomain": [
"This subdomain is already taken."
]
}
}
422 Unprocessable Entity — Invalid subdomain
The subdomain value isn't formatted correctly. Use lowercase letters, numbers, and hyphens only.
{
"errors": {
"subdomain": [
"This does not look like a valid subdomain"
]
}
}
Quick checklist
Send the request to your main partner subdomain, not a template
Using the API key tied to that main subdomain
template matches a template name your WorkBright rep set up
Subdomain is globally unique and uses only lowercase letters, numbers, and hyphens
name is set
Captured and stored the returned api_key for the new account
Listening for the account.provisioned webhook to confirm success or failure
What Gets Copied from a Template
When you clone a new subdomain from a template, the following configuration is copied for you:
Forms and documents — including their settings, fields, ordering, and group assignments
Fields — custom fields and standard fields
Groups — employee groups
Reports – saved reports
Feature configuration — which features are enabled
Admin permission settings
Webhook configuration
Embedded redirect URL settings — when the embedded feature is enabled
Conditional logic — when enabled
Outside of Scope
Cloning company address
Cloning E-Verify credentials
Cloning submission deadlines settings
Relative date (regular deadline/extended deadline) or Exact date
Cloning SSO Configuration
Cloning CSS Configuration
Sharing custom forms across subdomains - (ex: changes on one form apply to others, or form ID is the same across all subdomains)
Cloning Admin Users
One dashboard to view updates across all child subdomains
Bulk employee onboarding progress endpoint across all subdomains
De-provisioning of subdomains
See more at the WorkBright Developer Hub: Partner Subdomain Cloning, Account Provisioned, and List of Events.