API & Developer Resources
Comprehensive API documentation, SDK usage, rate limits, authentication, and building custom integrations for developers.
API Overview
Audenci REST API provides programmatic access to all features: Create, read, update, delete posts, Manage campaigns and plans, Upload and manage media, Fetch analytics data, Manage social accounts, Trigger AI generation, Webhooks for real-time events. API base URL: https://app.audenci.com/api. Full documentation: api.audenci.com
Authentication
API uses Bearer token authentication: Generate API key in Settings → API Keys, Include in requests: Authorization: Bearer YOUR_API_KEY, Keys can be scoped to specific permissions: read-only (GET requests), read-write (GET, POST, PUT, DELETE), admin (all operations including settings). Rotate keys quarterly for security.
# Example authenticated request
curl -X GET https://app.audenci.com/api/posts \
-H "Authorization: Bearer sk_prod_abc123xyz" \
-H "Content-Type: application/json"Rate Limiting
API requests are rate limited: Starter: 100 requests/hour, Growth: 500 requests/hour, Scale: 2,000 requests/hour, Enterprise: 10,000+ requests/hour. Rate limit headers: X-RateLimit-Limit (max requests), X-RateLimit-Remaining (requests left), X-RateLimit-Reset (timestamp when limit resets). Implement exponential backoff when rate limited (HTTP 429).
Exceeding rate limits results in 429 status. Implement retry logic with exponential backoff: 1s, 2s, 4s, 8s, 16s.
Core API Endpoints
Key API endpoints:
- GET /api/posts - List posts (paginated, filterable)
- POST /api/posts - Create new post
- GET /api/posts/{id} - Get post details
- PUT /api/posts/{id} - Update post
- DELETE /api/posts/{id} - Delete post
- POST /api/posts/{id}/publish - Publish post
- GET /api/campaigns - List campaigns
- POST /api/campaigns - Create campaign
- GET /api/analytics - Fetch analytics data
- POST /api/images/generate - Generate AI images
- POST /api/plans/generate-preview - Create content plan
Pagination
List endpoints use cursor-based pagination: Send page parameter (default: 1), Send limit parameter (max: 100, default: 20), Response includes: data (array of items), pagination (cursor, hasMore, totalCount). Example: GET /api/posts?page=2&limit=50
// Pagination response format
{
"data": [ /* posts array */ ],
"pagination": {
"page": 2,
"limit": 50,
"totalCount": 1234,
"hasMore": true,
"nextCursor": "cursor_token_xyz"
}
}Filtering & Sorting
Use query parameters for filtering: status (DRAFT, SCHEDULED, PUBLISHED, etc.), platform (instagram, facebook, twitter), campaignId (filter by campaign), startDate, endDate (date range), Sort with: sortBy (field name), sortOrder (asc, desc). Example: GET /api/posts?status=PUBLISHED&platform=instagram&sortBy=scheduledFor&sortOrder=desc
Error Handling
API returns standard HTTP status codes: 200 OK (success), 201 Created (resource created), 400 Bad Request (invalid input), 401 Unauthorized (invalid API key), 403 Forbidden (insufficient permissions), 404 Not Found (resource doesn't exist), 429 Too Many Requests (rate limited), 500 Internal Server Error (server issue). Error response format:

{
"error": {
"code": "INVALID_INPUT",
"message": "Caption is required",
"details": {
"field": "caption",
"reason": "Field is required"
}
}
}Webhooks
Webhooks send real-time event notifications: Configure in Settings → Integrations → Webhooks, Available events: post.created, post.published, post.failed, campaign.started, comment.received (coming soon), Payload includes: Event type, Timestamp, Object data, Organization/Brand IDs. Verify webhook signature (HMAC-SHA256) to ensure request authenticity.
SDKs & Client Libraries
Official SDKs are on our roadmap. Currently, use the REST API directly with your preferred HTTP client.
Planned SDKs: JavaScript/TypeScript (@audenci/sdk-js), Python (audenci-python), Ruby (audenci-ruby), PHP (audenci-php). Until then, you can use the REST API with any HTTP client library.
Bulk Operations
Efficient bulk operations: Use batch endpoints where available: POST /api/posts/batch (create multiple posts), PUT /api/posts/batch (update multiple posts), For large imports (100+ items): Break into batches of 50-100, Add 1-2 second delay between batches, Use async jobs endpoint: POST /api/jobs (creates background job), Poll GET /api/jobs/{id} for status.
API Versioning
API uses semantic versioning: Current version: v1, Version in URL: /api/v1/posts, Breaking changes increment major version, New features increment minor version, Deprecated endpoints supported for 12 months, Check changelog: api.audenci.com/changelog
Testing & Sandbox
Dedicated sandbox environment and test API keys are on our roadmap. Currently, use a separate test brand for development.
For testing, we recommend: Create a separate test brand for development, Connect test social accounts (private accounts), Use draft posts that don't get published, Create a test organization for development.
Always test with private social accounts first. Never test on production social accounts.
API Best Practices
- Use SDK instead of raw HTTP (handles auth, retries)
- Implement exponential backoff for rate limits
- Cache responses where appropriate
- Use webhook for real-time events (don't poll)
- Batch operations for efficiency
- Set timeouts on requests (30-60 seconds)
- Log API errors for debugging
- Rotate API keys quarterly
- Never commit API keys to version control
Support & Resources
Developer resources: Full API docs: api.audenci.com, OpenAPI spec: api.audenci.com/openapi.json, Postman collection: api.audenci.com/postman, Code examples: github.com/audenci/examples, Developer forum: community.audenci.com, Support: api@audenci.com. Enterprise: Dedicated developer support via Slack.