The Profile Bakery API lets you programmatically manage your organization's AI headshot workflow.
curl -X GET "https://app.profilebakery.com/api/v2/organization" \ -H "Authorization: Bearer YOUR_API_KEY"
curl -X POST "https://app.profilebakery.com/api/v2/organization/invites" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com"}'All API requests should be made to:
https://app.profilebakery.com/api/v2
| Version | Status | Base URL |
|---|---|---|
| V2 | Current | /api/v2/organization/... |
| V1 | Legacy | /api/v1/organization/... |
Success
{
"success": true,
"data": { ... }
}Error
{
"success": false,
"error": "Error message",
"code": "ERROR_CODE"
}Need help? Check error codes, Rate limits, support@profilebakery.com
The API uses Bearer token authentication. All requests must include your API key in the Authorization header.
API keys are shown only once. Store them securely and never commit them to source control.
curl -X GET "https://app.profilebakery.com/api/v2/organization" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json"
401 Missing or invalid API key · 403 Key valid but lacks permission
Endpoints for your organization's details and credit balance.
GET /organization — Get organization details
GET /organization/credits — Get credit balance
Credits are consumed when a team member uploads photos and starts AI training. Credits are not consumed when creating an invite, retrieving photos, or managing teams.
Invite team members to create their AI headshots.
GET /organization/invites — List all invites
POST /organization/invites — Create invite
Credits are consumed when the user uploads photos, not when the invite is created. Invite links expire after 30 days.
Create and manage teams within your organization.
List and manage team members in your organization.
GET /organization/team — List all team members (Accepted, Pending, Finished)
POST /organization/teams/:teamId/members — Add members to team
Models represent individual AI headshot sessions. Each team member has an associated model with generated photos.
Development mode: faster processing, no credits consumed.
Endpoints for accessing generated AI headshot photos.
Embed Profile Bakery into your app via a signed URL. Users do not need a Profile Bakery account.
Prerequisites: Whitelabel enabled for your organization, webhook URL configured, sufficient credits.
Flow: POST to create model → receive signed URL → embed in iframe or redirect → user uploads photos → webhooks on status change → fetch photos via API.
POST https://app.profilebakery.com/api/v2/organization/models
{ "email": "user@example.com", "teamId": "optional", "isDevelopment": false }
→ modelId, status, signedUrlConventional HTTP status codes and consistent error objects.
Error format: success: false, error, code
HTTP status codes: 200, 400, 401, 402, 403, 404, 429, 500
Error codes (UNAUTHORIZED, FORBIDDEN, INVALID_REQUEST, NOT_FOUND, INSUFFICIENT_CREDITS, RATE_LIMIT_EXCEEDED).
Rate limiting for fair usage and service stability. Limits per minute depend on your plan.
Headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
When exceeded: 429 and RATE_LIMIT_EXCEEDED.
Receive real-time HTTP notifications when events occur.
Events: model.created, model.status.updated, model.photos_ready, model.favorite_selected, model.deleted.
Verify signature with HMAC-SHA256 (X-ProfileBakery-Signature header).
Respond with 200 quickly; process asynchronously.