Overview
The Coffee & Contracts API lets you build custom integrations with your account — pull your content library, manage your calendar, access Instagram analytics, and more. You can use it with tools like Claude, ChatGPT, Zapier, or your own custom code.
Base URL
https://api.coffeecontracts.com
All endpoints are prefixed with /api.
Step 1: Generate an API Key
You can create an API key from within your Coffee & Contracts account, or by calling the API directly with your session token:
POST /api/user/api-keysAuthorization: Bearer <your-session-token>X-Tenant-Slug: coffee-contractsContent-Type: application/json{ "name": "My Integration", "scope": "user", "scopes": ["content:read", "calendar:read", "instagram:read"]}
The response includes a rawKey starting with cc_. Store it securely — it is only shown once.
Step 2: Make API Requests
Include your API key as a Bearer token along with the tenant header:
GET /api/user/content/posts-v2Authorization: Bearer cc_aBcDeFgH1234567890...X-Tenant-Slug: coffee-contracts
Ownership Scopes
user — authenticates as you personally
organization — authenticates as your organization admin (org admins only)
Permission Scopes
API keys are granted specific scopes that control which endpoints they can access. If no scopes are provided at creation, the key receives all available scopes by default.
Scope | Description |
| View posts, content types, pillars, tags, audiences, styles, and drops |
| Toggle favorite/used state on posts and items |
| View content schedule, calendar categories, and daily tasks |
| Create, update, delete, and reorder schedule entries; generate calendars |
| View stock images, videos, and knowledge hub content |
| View pages and page components |
| Create, update, delete pages and components |
| View your profile, activity, and tour progress |
| Update your profile and change password |
| View Instagram profile, insights, media, and analytics |
| Search posts and events |
Rate Limits
API key requests are rate-limited per key:
Window | Limit |
Per minute | 30 requests |
Per hour | 500 requests |
Per day | 2,000 requests |
Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. When a limit is exceeded, you'll receive a 429 Too Many Requests response with a Retry-After header.
Pagination
List endpoints return paginated results with results and count fields. Use limit and offset query parameters to paginate (default page size: 25).
{ "results": [...], "count": 100}
Managing Keys
Action | Method | Endpoint |
List active keys |
|
|
Create a key |
|
|
Revoke a key |
|
|
List available scopes |
|
|
Revoking a key immediately invalidates it. API keys require an active Coffee & Contracts subscription — if your membership lapses, your keys will stop working until you resubscribe.
Need Help?
If you run into issues or have questions about the API, reach out to our support team using the chat widget below.
