For developers building custom integrations on Truffle.
Truffle's REST API lets you build custom integrations. Pull candidate data into internal dashboards, push candidates in from your own tooling, subscribe to webhooks that fire when candidates complete interviews. To use the API, create an API key in Company Settings → API & Integrations, pick a permission level (Read, Write, or Admin), and call the API with the key in the Authorization header. Paid plans only.
How to create an API key
To create an API key, open Company Settings and switch to the API & Integrations tab.
Open Company Settings from the sidebar.
Click the API & Integrations tab.
Click the API Keys sub-tab.
Click Create API Key.
Give it a name and short description so you remember what it's for.
Choose a permission level (below).
Copy the key immediately. It's shown only once.
You can create multiple keys (one per integration, for example). Regenerate or delete any key from the same page.
Permission levels
Pick the narrowest permission level your integration needs. You can always create a new key with broader permissions later.
Read. Pull candidate data, pull position data, pull interview responses and transcripts. Cannot change anything.
Write. Everything in Read, plus invite candidates, create positions, and update candidate status. Cannot change account-level settings.
Admin. Everything in Write, plus manage webhooks and account-level settings. Only use for integrations that genuinely need admin access.
Webhooks
Webhooks are HTTP callbacks Truffle sends to a URL you control. Configure them from Company Settings → API & Integrations → Webhooks.
Supported events
interview.completed. Fires when a candidate finishes their interview (all responses submitted).candidate.applied. Fires when a candidate is invited to a position.job.created. Fires when a position is activated.
Setting up a webhook
Open the Webhooks tab under API & Integrations.
Click Create webhook.
Enter the target URL and a friendly name.
Select the events you want to subscribe to.
Click Test webhook to verify your endpoint responds.
Save.
Delivery history
Every webhook has a delivery history page showing every attempt, the response code your endpoint returned, and any retries. Truffle retries failed deliveries with exponential backoff; after 24 hours of failed retries the delivery is marked as failed and stops retrying.
Authentication
Pass your API key as a bearer token in the Authorization header:
Authorization: Bearer <your-api-key>
Every request needs this header. Requests without a valid key get 401 Unauthorized.
Rate limits
The API is rate-limited per key. Standard limits are generous enough for normal integration workloads; high-volume use cases should batch requests and respect the X-RateLimit-Remaining response header.
Related
How do I connect Truffle to other tools?. Zapier is often simpler than the API for common integrations.
What plans does Truffle offer and how does billing work?. API access is a paid-plan feature.
