Manage API keys and service accounts, and configure webhooks to integrate Cernel into your own systems.
Developer Tools give you programmatic access to Cernel. Use the API to push products from your own systems, and set up webhooks to receive real-time notifications when enrichment completes.
An API key authenticates requests to the Public API. Keys are organized into service accounts: one account per integration, each holding its own keys. Grouping keys this way lets you see which integration has been calling and switch one off without disturbing the others.
The API settings page, organized around service accounts
1
Open API settings
Go to Settings > Developer > API. Each service account is listed with the number of keys it holds, when it was created, and when it was last used. Expand an account to see its individual keys.
2
Create a service account
Click New service account and name it after the integration that will use it, for example Shopify or ERP sync. That name is what shows up on the work its keys do. Creating an account immediately mints its first key.
3
Copy the new key
When a key is created, Cernel shows it once in a Your new API key dialog. Copy it and store it somewhere safe. For your security you won’t be able to see the full key again, only a masked version.
Store your API key like a password. Anyone with the key can access your organization’s data through the API. If a key is ever exposed, revoke it and mint a new one.
4
Add or rotate keys
Click New key on an account to mint another key for it. To roll over to a fresh key without downtime, add the new key, update your integration to use it, then revoke the old one. Revoking a key stops it working immediately while the account and its other keys keep going. A revoked key stays in the list, marked Revoked, so a past call still has an explanation.
5
Rename or delete an account
Renaming and deleting a service account are admin-only; minting a key stays open to any member. You can delete an account only once none of its keys are still live, so revoke its keys first.
6
View API documentation
Click Visit Documentation to open the full API reference in a new tab, with every endpoint, request format, and response schema.
Keys created before service accounts existed appear under a Keys without an account list at the bottom of the page. There’s nothing to do there: the next time such a key is used, it gets an account of its own and moves up to the main list. Revoke any you no longer need.
Webhooks pair naturally with the Public API integration. Push products in via API, let automations enrich them, then receive webhook notifications when results are ready. See Building a custom product pipeline for a full walkthrough.
Webhook reliability
If your endpoint returns an error or is unreachable, Cernel automatically retries the delivery. Each event is attempted up to 8 times: the first retry follows about 5 seconds after the initial failure, and the delay grows with each subsequent attempt, so the final retries are spread over a longer window. A delivery is considered successful once your endpoint returns a 2xx status code.
Because the same event can be delivered more than once, design your endpoint to be idempotent: processing the same payload twice should be safe. Use the IDs in the payload (for example the job or product identifier) to detect and skip duplicates.
Verifying webhook authenticity
Every webhook Cernel sends includes an X-Signature-SHA256 header so you can confirm the request genuinely came from Cernel and wasn’t altered in transit. The signature is an HMAC-SHA256 of the request body, keyed on your API key (from Settings > Developer > API).To verify a request:
1
Re-serialize the payload
Serialize the received JSON body the same way Cernel does: with sorted keys and compact separators (no spaces). In Python: json.dumps(payload, separators=(",", ":"), sort_keys=True).
2
Compute the HMAC
Compute an HMAC-SHA256 over that serialized body, using your API key as the secret key, then Base64-encode the result.
3
Compare
Compare your computed value against the X-Signature-SHA256 header. If they match, the request is authentic. Reject the request if they differ.
The signature depends on an exact byte-for-byte match of the serialization. Any difference in spacing or key ordering produces a different signature, so re-serialize with sorted keys and compact separators before comparing.
Security considerations
Webhook URLs are stored in your organization settings. Only admin users can view or modify them. Always serve your webhook endpoint over HTTPS, verify the X-Signature-SHA256 header on every request (see above), and keep the endpoint behind authentication on your end to prevent unauthorized requests.
Go to Settings > Developer > API, where keys are grouped under service accounts. Cernel shows a key’s full value only once, in a dialog right after it’s created, so copy it then. Afterwards only a masked version is shown. If you’ve lost a key, mint a new one on its account and revoke the old one.
Can I have multiple API keys?
Yes. Create a service account per integration, and give each account as many keys as you need. Keys are revoked individually, so you can rotate one key or switch off a single integration without affecting the others. This is a change from the earlier model of one key per organization.
How do I rotate an API key without downtime?
Mint a new key on the same service account with New key, update your integration to use it, then revoke the old key. Because both keys are live during the switch, nothing stops working in between. Revoking takes effect immediately, so revoke only after the new key is in place.
Why isn't my webhook receiving events?
Check that your URL is correct and reachable. Use the Test Webhook button to verify. Make sure your endpoint returns a 2xx status code. If the test succeeds but live events don’t arrive, confirm that the relevant actions (enrichment, product creation) are actually happening.
Can I configure webhooks for other events?
Currently, Cernel supports three webhook events: Attribute Result, Product Updated, and Product Created. More event types may be added in future updates.