CoderPad Webhook API
The Webhook API from CoderPad — 1 operation(s) for webhook.
The Webhook API from CoderPad — 1 operation(s) for webhook.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/coderpad:coderpad-webhook-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: CoderPad Screen Webhook API
description: 'Documentation for the CoderPad Screen API (formerly known as CodinGame for Work)
# Version
This is the documentation for version v1.1 of the API which is the latest version available.
API version will be incremented for any breaking changes.
WARNING: over time, new fields may be added to the responses JSON objects for this version of the API.
This does not constitute a breaking change and the version of the API will NOT be incremented.
Please, make sure your deserialization code does not break when a new field is added to a response JSON object.
# Authentication
An API key must be declared in the http headers of each request. The name of the header parameter is `API-Key`.
If the API key is invalid, the request will produce a **401** error.
Once you have received your API key, you can pass it in the header of the requests, for instance:
```bash
curl --header "API-Key: your_api_key" \
--request GET \
https://screen.coderpad.io/assessment/api/v1.1/campaigns
```
## API Key Access
To access your CoderPad Screen API key, simply click on **ACCOUNT** in the top navigation menu, and then select **Integration**. You''ll then be presented with the following page:
!CoderPad API Key screenshot
Then click **Generate key** to create a key that you can then copy and use in your desired integration.
# Errors
The API uses standard HTTP status codes to indicate the success or failure of the API call.
The body of the response will be JSON in the following format:
```
{
"code": "specific code for the error",
"message": "explanatory message"
}
```
Error codes can be `InvalidTestId`, `NotFoundTestId`, `InvalidCampaignId`, `BadCandidateEmailFormat`, `BadRecruiterEmailFormat`, `CandidateNameTooLong`,
`InvalidCampaignPayload`, `InvalidLocale`, `NotFoundQuestionId`, `NotFoundDomain`, `NotFoundTeam`, `FeatureNotAvailable`, `TestNotFinished`
depending on the request.
The error `code` is required while the `message` is optional.'
contact:
email: support@coderpad.io
version: v1.1
servers:
- url: https://screen.coderpad.io/assessment/api
description: CoderPad Screen US
- url: https://www.codingame.eu/assessment/api
description: CoderPad Screen EU
security:
- ApiKeyAuth: []
tags:
- name: Webhook
paths:
/v1.1/webhook:
get:
tags:
- Webhook
summary: Get Webhook
operationId: getWebhook
responses:
'204':
description: success
content:
application/json:
schema:
$ref: '#/components/schemas/webhook'
'404':
description: not found
content:
application/json:
schema:
$ref: '#/components/schemas/WorkApiExceptionSerialized'
post:
tags:
- Webhook
summary: Create Webhook
description: 'You can create a webhook or contact us to do so.
Only one webhook can be configured at a time. A new subscription will replace the existing one.
Every time an event is triggered on the platform, this webhook is updated with the event type and any necessary details.
Here are the events currently sent to this webhook:
- "test_status_changed": when a test status changes (completed, canceled, …)'
operationId: subscribe
requestBody:
description: the url to send the data to
content:
application/json:
schema:
type: string
text/plain:
schema:
type: string
required: true
responses:
'204':
description: success
'400':
description: bad request
content:
application/json:
schema:
$ref: '#/components/schemas/WorkApiExceptionSerialized'
'422':
description: invalid url
content:
application/json:
schema:
$ref: '#/components/schemas/WorkApiExceptionSerialized'
callbacks:
test_status_changed:
'{$request.body#/url}':
post:
summary: On test status change
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebhookTestStatusChangedDto'
responses:
'204':
description: success
'500':
description: internal error
delete:
tags:
- Webhook
summary: Delete Webhook
operationId: unsubscribe
responses:
'204':
description: success
components:
schemas:
WebhookTestStatusChangedDto:
type: object
properties:
event:
type: string
description: the type of event that triggered the webhook
enum:
- test_status_changed
- test_review_status_changed
data:
$ref: '#/components/schemas/result'
webhook:
type: object
properties:
url:
type: string
description: the endpoint of your webhook
example: https://www.example.com/hook
questions:
type: object
properties:
id:
type: integer
description: question id
format: int32
example: 123456
last_activity_time:
type: integer
description: time (in milliseconds) of the candidate's last activity (last submit or code test)
format: int64
example: 1685545371216
description: list of all the questions with their id and last_activity_time
WorkApiExceptionSerialized:
type: object
properties:
code:
type: string
message:
type: string
report_skill:
type: object
properties:
points:
type: integer
description: number of points awarded to the test for the given technology and the specific skill
format: int32
example: 20
score:
type: number
description: number of points in percentage for the given technology and the specific skill
format: double
example: 6.06
total_points:
type: integer
description: available points for the test for the given technology and the specific skill
format: int32
example: 330
description: report by skill for a given technology - the property name is the skill name, 'Language Knowledge' or 'Problem Solving' for instance
result:
type: object
properties:
status:
type: string
description: the test status
example: completed
enum:
- aborted
- canceled
- completed
- expired
- in progress
- waiting
- need review
url:
type: string
description: url to the test report through the dashboard application
example: https://www.codingame.com/work/dashboard/campaign/69/candidates/?selected=42
report:
$ref: '#/components/schemas/report'
id:
type: integer
description: the test id
format: int32
example: 42
id_test:
type: integer
description: the test id (deprecated, see id)
format: int32
example: 42
organization_id:
type: string
description: the organization id
example: 0558b3e3-b76c-42ea-9435-8da1adb7e232
campaign_id:
type: integer
description: the campaign id
format: int32
example: 42
candidate_name:
type: string
description: the name of the candidate
example: Jean Dupont
candidate_email:
type: string
description: the email of the candidate
example: jean.dupont@codingame.com
tags:
type: array
description: the tags of the candidate
items:
type: string
description: the tags of the candidate
send_time:
type: integer
description: timestamp (in milliseconds) when the test has been sent
format: int64
start_time:
type: integer
description: timestamp (in milliseconds) when the test has been started
format: int64
end_time:
type: integer
description: timestamp (in milliseconds) when the test has been ended
format: int64
test_url:
type: string
description: the url to the test
candidate_language:
type: string
description: the language chosen by the candidate to take the test if they started the test, null otherwise
last_activity_time:
type: integer
description: time (in milliseconds) of the candidate's last activity (last submit or code test)
format: int64
example: 1685545371216
approval_status:
type: string
description: approval status of the candidate (PASSED, REJECTED, TO_REVIEW)
example: PASSED
questions:
type: array
description: questions and their last activity time
items:
$ref: '#/components/schemas/questions'
description: the data relevant to the event
report:
type: object
properties:
duration:
type: integer
description: duration (in seconds) spent by the candidate to complete the test
format: int64
example: 2009
warnings:
type: array
description: warnings about the test
items:
type: string
description: warnings about the test
points:
type: integer
description: number of points awarded to the test
format: int32
example: 40
score:
type: number
description: number of points in percentage
format: double
example: 6.06
technologies:
type: object
additionalProperties:
$ref: '#/components/schemas/report_technology'
total_duration:
type: integer
description: maximal duration (in seconds) available for the test
format: int64
example: 2700
total_points:
type: integer
description: available points for the test
format: int32
example: 660
comparative_score:
type: number
description: candidate score compared with developers who have taken a similar test
format: double
example: 13.9
community_stats:
type: array
items:
type: integer
format: int32
marked_as_cheated_by_recruiter:
type: boolean
description: 'whether a recruiter manually flagged this candidate as cheated. Never set by CoderPad: the platform own detections are reported as warnings instead. The question level flag is questions[].marked_as_cheated_by_recruiter'
example: false
time_spent_outside_environment_seconds:
type: integer
description: total time (in seconds) the candidate spent with the environment out of focus during the test
format: int64
example: 214
environment_exit_count:
type: integer
description: number of times the candidate left the environment during the test
format: int32
example: 9
description: the test report
report_technology:
type: object
properties:
points:
type: integer
description: number of points awarded to the test for the given technology
format: int32
example: 20
score:
type: number
description: number of points in percentage for the given technology
format: double
example: 6.06
skills:
type: object
additionalProperties:
$ref: '#/components/schemas/report_skill'
total_points:
type: integer
description: available points for the test for the given technology
format: int32
example: 330
comparative_score:
type: number
description: candidate score compared with developers who have taken a similar test for the given technology
format: double
example: 13.9
description: report by technology - the property name is the technology name, 'PHP' for instance
securitySchemes:
ApiKeyAuth:
type: apiKey
name: API-Key
in: header
x-provenance:
method: searched
source: https://developers.coderpad.io/reference
harvested: '2026-10-27'
tool: harvest-readme-openapi.py
note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
assembled_from:
- https://developers.coderpad.io/reference/aiassistconversations.md
- https://developers.coderpad.io/reference/campaign.md
- https://developers.coderpad.io/reference/campaigninsights.md
- https://developers.coderpad.io/reference/campaigns-1.md
- https://developers.coderpad.io/reference/cancel.md
- https://developers.coderpad.io/reference/candidateproject.md
- https://developers.coderpad.io/reference/createcampaign.md
- https://developers.coderpad.io/reference/createquestion.md
- https://developers.coderpad.io/reference/delete.md
- https://developers.coderpad.io/reference/getwebhook.md
- https://developers.coderpad.io/reference/me-1.md
- https://developers.coderpad.io/reference/playbackevents.md
- https://developers.coderpad.io/reference/question.md
- https://developers.coderpad.io/reference/questioninsights.md
- https://developers.coderpad.io/reference/questions-2.md
- https://developers.coderpad.io/reference/report.md
- https://developers.coderpad.io/reference/resend.md
- https://developers.coderpad.io/reference/send.md
- https://developers.coderpad.io/reference/subscribe.md
- https://developers.coderpad.io/reference/testsstatus.md
- https://developers.coderpad.io/reference/teststatus.md
- https://developers.coderpad.io/reference/unsubscribe.md
- https://developers.coderpad.io/reference/updatequestion.md
- https://developers.coderpad.io/reference/upload.md
merge:
pages: 24
deduped: 122
conflicts_kept_first: 0