Endpoint
POST https://api.ugc.inc/accounts/create
Overview
Create one or more new account seats for your organization. This endpoint automatically updates your Stripe subscription billing based on the tier of each account.- If only
tieris provided, the account is created with statusuninitialized - If all detail fields (
tier,platform,username,pfp_url,keywords) are provided, the account is created with statuspendingand will begin setup automatically - If some but not all detail fields are provided, a 400 error is returned
Request Body
array
required
Array of accounts to create. Each account object contains:
Show Account object properties
Show Account object properties
'basic' | 'premium'
required
Subscription tier for the account. Determines the device type and billing rate.
basic— $40/mo per accountpremium— $100/mo per account
'tiktok' | 'instagram'
Social media platform. Required if providing account details.
string
Account username/handle on the platform. Required if providing account details.
string
URL to the account’s profile picture. Required if providing account details.
string
Comma-separated keywords for warmup activities. Required if providing account details.
string
Display name shown on profile
string
Account bio text
string
Age range for the account persona
string
Sex/gender for the account persona
string
Geographic location for the account
string
Description/interest area for the account. Used by v1_smart warmup for browse tasks
string
Custom tag for categorization
string
Organization group identifier
string
User group identifier
When providing account details, all four fields (
platform, username, pfp_url, keywords) must be present. Providing some but not all will result in a 400 error.Response
object
Response object containing success summary and created accounts
Show Response properties
Show Response properties
string
Summary message indicating how many accounts were created
number
Number of accounts successfully created
number
Number of accounts that failed to create
curl -X POST https://api.ugc.inc/accounts/create \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accounts": [
{
"tier": "basic"
},
{
"tier": "premium",
"platform": "tiktok",
"username": "newcreator",
"pfp_url": "https://example.com/avatar.jpg",
"keywords": "fitness,health,workout",
"nick_name": "New Creator",
"tag": "influencer"
}
]
}'
import requests
response = requests.post(
'https://api.ugc.inc/accounts/create',
headers={
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
json={
'accounts': [
{
'tier': 'basic'
},
{
'tier': 'premium',
'platform': 'tiktok',
'username': 'newcreator',
'pfp_url': 'https://example.com/avatar.jpg',
'keywords': 'fitness,health,workout',
'nick_name': 'New Creator',
'tag': 'influencer'
}
]
}
)
data = response.json()
if data['ok']:
print(f"Created {data['data']['successful']} account(s)")
for account in data['data']['accounts']:
print(f" {account['id']} - {account['tier']} ({account['status']})")
const response = await fetch('https://api.ugc.inc/accounts/create', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
accounts: [
{
tier: 'basic'
},
{
tier: 'premium',
platform: 'tiktok',
username: 'newcreator',
pfp_url: 'https://example.com/avatar.jpg',
keywords: 'fitness,health,workout',
nick_name: 'New Creator',
tag: 'influencer'
}
]
})
});
const data = await response.json();
if (data.ok) {
console.log(`Created ${data.data.successful} account(s)`);
data.data.accounts.forEach(account => {
console.log(` ${account.id} - ${account.tier} (${account.status})`);
});
}
import { UGCClient } from 'ugcinc';
const client = new UGCClient({
apiKey: 'YOUR_API_KEY'
});
const response = await client.accounts.createAccounts({
accounts: [
{
tier: 'basic'
},
{
tier: 'premium',
platform: 'tiktok',
username: 'newcreator',
pfp_url: 'https://example.com/avatar.jpg',
keywords: 'fitness,health,workout',
nick_name: 'New Creator',
tag: 'influencer'
}
]
});
if (response.ok) {
console.log(`Created ${response.data.successful} account(s)`);
response.data.accounts.forEach(account => {
console.log(`${account.id} - ${account.tier} (${account.status})`);
});
}
{
"ok": true,
"code": 200,
"message": "Success",
"data": {
"message": "Successfully created 2 account(s)",
"successful": 2,
"failed": 0,
"accounts": [
{
"id": "acc_123456",
"tier": "basic",
"status": "uninitialized",
"platform": null,
"username": null
},
{
"id": "acc_789012",
"tier": "premium",
"status": "pending",
"platform": "tiktok",
"username": "newcreator"
}
]
}
}
{
"ok": false,
"code": 400,
"message": "Account 0: When providing account details, all of 'username', 'pfp_url', 'keywords', and 'platform' are required. Missing: pfp_url, keywords"
}
{
"ok": false,
"code": 400,
"message": "No billing record linked to this organization. Please set up billing first."
}
