Embedded Tech API
The Embedded Tech API (also known as the Account Automation API) lets Fetchify partner accounts create and manage sub-client accounts programmatically. Use it to provision new client accounts from your own platform, CRM, or onboarding flow without manual setup in the Fetchify portal.
Base URL: https://api.admin.fetchify.com
View the full OpenAPI specification on SwaggerHub.
Before You Start
You will need:
- A Fetchify partner account
- A Partner API key generated from your account settings
Partner API keys are UUIDs used as Bearer tokens. Generate or regenerate your key from Settings → Partner API Key in the Fetchify account portal.
Authentication
All requests require a Bearer token in the Authorization header:
Authorization: Bearer <your-partner-api-key>The following endpoints are available:
- List client accounts via
GET /client - Create a client account via
POST /client - List client account IDs via
GET /client_list - Get client usage statistics via
GET /client_usage - Allocate a credit pack via
POST /credit_allocation - List client contacts via
GET /contact
List client accounts
GET /client
Returns client accounts linked to your partner account. Supports optional query parameters for paging and filtering:
| Parameter | Description |
|---|---|
min_id | Minimum client ID to return (inclusive) |
max_id | Maximum client ID to return (inclusive) |
filters | One or more filters to apply |
columns | Columns to include in each result |
tags | Tags to include in each result |
limit | Maximum number of results to return |
All parameters are optional. By default, results include client_id, client_name, account_status, and partner_id. Request other fields with columns, e.g. credits_used, available_credits, expires, industry_name, or tags.
Successful responses include a results array and optional paging links (previous, next) for cursor-based navigation.
Example request:
curl -X GET "https://api.admin.fetchify.com/client?limit=2" \
-H "Authorization: Bearer <your-partner-api-key>" \
-H "Accept: application/json"If you omit min_id and max_id, the API returns the first page of your partner's clients, ordered by lowest client_id first, up to 100 results by default.
Example response (200):
{
"results": [
{
"client_id": 4321,
"client_name": "Example Client 1",
"account_status": "active",
"partner_id": 1234
},
{
"client_id": 5678,
"client_name": "Example Client 2",
"account_status": "active",
"partner_id": 1234
}
],
"paging": {
"previous": "https://api.admin.fetchify.com/client?columns=%5B%22client_id%22%2C%22client_name%22%2C%22account_status%22%2C%22partner_id%22%5D&max_id=4321",
"next": "https://api.admin.fetchify.com/client?columns=%5B%22client_id%22%2C%22client_name%22%2C%22account_status%22%2C%22partner_id%22%5D&min_id=5678"
}
}Use the paging.next URL to fetch the next page, or pass min_id manually to continue from a specific client ID.
Create a client account
POST /client
Creates a new sub-client account under your partner account.
| Property | Required | Description |
|---|---|---|
client_name | Yes | Company name for the new client account |
trial_enabled | No | Create the account as a trial instead of active. Trial accounts don't get a credit pack, so initial_pack_size must be omitted. Defaults to false |
initial_pack_size | No | Size of the credit pack to create. Must be at least 100 and a multiple of 100. Defaults to your account's "Auto-Renew Size" setting, or 100 |
auto_renew_enabled | No | Whether the client's credit pack automatically renews. Defaults to your account's "Auto-Renew" setting, or false |
auto_renew_size | No | Size of the credit pack to renew with. Must be at least 100 and a multiple of 100. Defaults to your account's "Auto-Renew Size" setting, or 100 |
Example request:
curl -X POST "https://api.admin.fetchify.com/client" \
-H "Authorization: Bearer <your-partner-api-key>" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"client_name": "Example Client 1"
}'Example response (201):
{
"results": [
{
"client_id": 4321,
"client_name": "Example Client 1",
"client_code": "EXA4321",
"token": "xxxxx-xxxxx-xxxxx-xxxxx",
"credit_pack_id": "12345"
}
]
}The token in the response is the Fetchify access token for the newly created client account.
List client account IDs
GET /client_list
Returns the IDs of all client accounts accessible to your partner account.
Example request:
curl -X GET "https://api.admin.fetchify.com/client_list" \
-H "Authorization: Bearer <your-partner-api-key>" \
-H "Accept: application/json"Example response (200):
{
"client_ids": [12345, 12346, 12347]
}Get client usage statistics
GET /client_usage
Returns aggregated credit usage statistics for a single client account, optionally filtered to credit packs allocated within a date range.
| Parameter | Required | Description |
|---|---|---|
client_id | Yes | The ID of the client account to return usage statistics for |
start_date | No | Only include credit packs created on or after this date (YYYY-MM-DD) |
end_date | No | Only include credit packs created on or before this date (YYYY-MM-DD) |
Example request:
curl -X GET "https://api.admin.fetchify.com/client_usage?client_id=12345&start_date=2026-01-01&end_date=2026-12-31" \
-H "Authorization: Bearer <your-partner-api-key>" \
-H "Accept: application/json"Example response (200):
{
"client_id": 12345,
"credit_pack_ids": [1, 2, 5],
"total_credits_assigned": 1500,
"total_credits_used": 800.25,
"total_credits_expired": 50,
"total_credits_remaining": 649.75
}Allocate a credit pack
POST /credit_allocation
Allocates a new credit pack to a client account, deducting the size from your partner's credit pool. If the client account is currently pending or trial, it is activated as part of this operation.
| Property | Required | Description |
|---|---|---|
client_id | Yes | The ID of the client account to allocate the credit pack to |
size | Yes | Size of the credit pack. Must be at least 100 and a multiple of 100 |
Example request:
curl -X POST "https://api.admin.fetchify.com/credit_allocation" \
-H "Authorization: Bearer <your-partner-api-key>" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"client_id": 12345,
"size": 100
}'Example response (201):
{
"credit_pack_id": 98765
}List client contacts
GET /contact
Returns contact persons for client accounts, with the same paging, filtering, and column selection as List client accounts.
| Parameter | Description |
|---|---|
min_id | Minimum contact ID to return (inclusive) |
max_id | Maximum contact ID to return (inclusive) |
filters | One or more filters to apply |
columns | Columns to include in each result |
tags | Tags to include in each result |
limit | Maximum number of results to return |
Example request:
curl -X GET "https://api.admin.fetchify.com/contact?limit=2" \
-H "Authorization: Bearer <your-partner-api-key>" \
-H "Accept: application/json"Example response (200):
{
"results": [
{
"contact_id": 456,
"contact_type": "main",
"contact_first_name": "John",
"contact_last_name": "Smith",
"contact_email": "john.smith@example.com",
"client_id": 12345,
"client_name": "Acme Corp"
}
],
"total": 5432,
"paging": {
"previous": "https://api.admin.fetchify.com/contact?max_id=999",
"next": "https://api.admin.fetchify.com/contact?min_id=1101"
}
}Errors
Failed requests return a JSON body describing the problem:
{
"error": {
"message": "An access token is required"
}
}Common status codes:
| Status | Meaning |
|---|---|
400 | Invalid or missing input data |
401 | Invalid or missing access token |
404 | Resource not found, or not linked to your partner account |
Common Use Cases
- Provision Fetchify accounts automatically when a customer signs up on your platform
- Sync client account and contact details into your internal admin or billing tools
- Monitor client usage, credit consumption, and account status from your own dashboards
- Top up a client's credit pack automatically based on usage thresholds
Support
If you need a partner API key or help integrating the Embedded Tech API, contact support@fetchify.com.