Creating an API Key
1
Log in to Dashboard
Go to app.chariow.com and log in to your account.
2
Navigate to Settings
Click on Settings in the sidebar.
3
Open API Keys
Select API Keys from the settings menu.
4
Create New Key
Click Create API Key, give it a descriptive name, choose its scopes, and copy the generated key.
sk_. Store them as opaque strings: do not parse them or rely on their length.
Scopes
Every public API endpoint requires one or more scopes. Grant each key only the scopes its integration needs: a key that only reads products cannot start a checkout or revoke a licence, even if it leaks.Available scopes
A write scope always includes its read scope, so granting
licenses.write also grants licenses.read.
Scopes required by each endpoint
The customer endpoints return contact details, so they need both customer scopes. Granting
customers.pii.read alone is enough, because it includes customers.read.How scopes are assigned
- Choosing scopes: pick the scopes when you create the key. If you do not pick any, the key receives every scope your team role allows.
- Changing scopes: you can change the scopes of an existing key from Settings → API Keys without regenerating it. Integrations using the key keep working with the new permissions.
- Team roles: a key can never hold more than the role of the team member who creates it. For example, a member with the Support role cannot grant
licenses.write,checkout.write,affiliates.writeorwebhooks.write. - Role changes: if the creator’s role is downgraded, their keys lose the scopes the new role no longer allows. Promoting the creator does not add scopes to existing keys.
- Deactivated members: when a team member loses access to the store, the API keys and MCP connections they created are deleted and stop working immediately. Reactivating the member does not restore them.
- Existing keys: keys created before scopes were introduced received every scope their creator’s role allowed at the time.
- New scopes: scopes added to the catalogue later are never granted automatically to existing keys. Add them to a key yourself when an integration needs them.
Making Authenticated Requests
Include your API key in theAuthorization header of every request:
Example Request
Key Security Best Practices
Grant the Fewest Scopes
Grant the Fewest Scopes
Give each key only the scopes its integration needs. A reporting script needs
sales.read, not licenses.write.Use Environment Variables
Use Environment Variables
Store API keys in environment variables, not in your codebase:
Use Different Keys for Environments
Use Different Keys for Environments
Create separate API keys for development, staging, and production environments. This limits the impact if a key is compromised.
Rotate Keys Regularly
Rotate Keys Regularly
Periodically create new keys and delete old ones. This limits the window of opportunity for compromised keys.
Monitor Key Usage
Monitor Key Usage
Regularly review your API key usage in the dashboard. Look for unusual patterns that might indicate unauthorised access.
Restrict Server-Side Only
Restrict Server-Side Only
Never expose your API key in client-side code (JavaScript running in browsers). All API calls should be made from your server.
Authentication Errors
If the key is missing or invalid, you’ll receive a401 Unauthorised response:
Scope Errors
If the key is valid but lacks a scope the endpoint requires, you’ll receive a403 Forbidden response that lists the missing scopes:
errors.scopeslists every missing scope. Use it, rather than themessage, in your code: the message is translated into the request language.- The
WWW-Authenticateheader carries the same scopes, separated by spaces. - To fix it, add the missing scopes to the key in Settings → API Keys, or ask a team member whose role allows them.
Rate Limiting
API keys are subject to rate limiting to ensure fair usage:- 100 requests per minute per API key for all endpoints except checkout
- 100 requests per minute per API key for
POST /v1/checkout, counted separately
429 Too Many Requests response. See Rate Limits for details.
Need higher rate limits? Contact our support team at support@chariow.com.
Next Steps
API Reference
Explore the complete API documentation
Rate Limits
Learn more about rate limiting