Developers
The Pudding API.
A small REST API over the things hiring teams automate: inviting candidates into a concert, checking where an engagement stands, and pulling finished work back into your own systems.
Base URL
https://app.pudding.work/api/v1
Every response is JSON. Responses are sent with no-cache headers, so what you read is always current.
Authentication
Requests use HTTP Basic auth. Your 64-character API key is the username and the password is left empty, which is what -u "$KEY:" sends. Keys are scoped to a single organization; requests without a valid key return 401 Unauthorized.
Example
Fetching engagements.
One call returns every engagement in your organization, with the stage and status each candidate is currently in.
curl https://app.pudding.work/api/v1/engagements \
-u "$PUDDING_API_KEY:"const response = await fetch(
'https://app.pudding.work/api/v1/engagements',
{
headers: {
Authorization:
'Basic ' + Buffer.from(`${process.env.PUDDING_API_KEY}:`).toString('base64'),
},
},
)
const engagements = await response.json()
const delivered = engagements.filter(
(engagement) => engagement.current_status === 'delivered',
)[
{
"id": "cnc_7f21b9:9f4c1ad3e8b27a0c",
"concert_id": "cnc_7f21b9",
"current_stage": 1,
"current_status": "working",
"current_rated": false,
"stages_active": [1]
},
{
"id": "cnc_7f21b9:1d80fe64c5a93b17",
"concert_id": "cnc_7f21b9",
"current_stage": 1,
"current_status": "delivered",
"current_rated": true,
"stages_active": [1]
}
]Each record tells you where a candidate stands. current_stage is the stage they are working through and current_status is their general status in the engagement. current_rated turns true once the work delivered in that stage has been assessed, and resets when the candidate advances. stages_active accumulates every stage reached so far.
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /api/v1/engagements | List every engagement belonging to your organization. |
| GET | /api/v1/engagements/:engagement_id | Read the stage and status of a single engagement. |
| POST | /api/v1/engagements | Invite a candidate into an active concert. |
| GET | /api/v1/proofs | Pull hirer-defined assignments in draft or in use. |
| POST | /api/v1/reporting | Push reporting events back into Pudding. |
Engagement statuses
Every engagement carries a single current status, which is the field most integrations poll on.
- provisioned
- onboarding
- terms
- working
- delivered
- advanced
- completed
- rejected
- restricted
- abandoned