API FAQ's (Frequently Asked Questions)
This help article answers frequently asked questions about the Checklick API
If you’re integrating your own system with Checklick, this FAQ answers common questions about how the Checklick API works, what data it provides, and how to structure your integration.
The Checklick API is a RESTful API that returns JSON and follows the JSON:API specification.
Who can use the Checklick API?
The Checklick API is available to organizations using Checklick.
Each manager can generate their own secret API key. This key is separate from their username and password.
Your API access matches your access in the Checklick web app. That means you can only view and edit data for people within organizations you manage, plus organizations you can view because of checklist licences.
How do I get started?
To send your first test request:
- Log in to Checklick as a manager of your organization.
- Click the user context menu in the top-right corner.
- Click your name.
- Find the API Secret Key section and generate a new key.
- Copy the sample cURL command shown beneath your key and run it in your terminal.
If everything is set up correctly, you should receive a JSON response with a list of people in your organization.
What base URL and headers are required?
All API requests must be sent to:
https://api.checklick.com
Requests sent to other subdomains, such as app.checklick.com, or over plain HTTP will be refused.
Every request should include these headers:
Content-Type: application/vnd.api+json
Api-Version: 2
Authorization: Token token=YOUR_SECRET_KEY
Organization-Id: YOUR_ORG_ID
The Organization-Id acts as the request context, so the data you receive is limited to what you can access for that organization in Checklick.
What can I retrieve from the API?
The public API includes endpoints for:
- users
- tags
- tag applications
- checklists
- levels
- sections
- skills
- assessments
- credentials
Some commonly used endpoints include:
GET /usersGET /users/:idGET /users/:id/assessmentsGET /users/:id/credentialsGET /tagsGET /checklistsGET /levelsGET /sectionsGET /skills
How do users and visibility work?
Users are the people visible to your organization in Checklick.
You can retrieve them with:
GET /usersGET /users/:id
User records can include attributes such as:
- first-name
- last-name
- birth-date
- address fields
- created-at
- updated-at
Can I create or update users?
Yes.
The published API supports:
POST /usersto create a userPATCH /users/:idto update a user
When creating a user, the minimum required fields are:
usernamefirst-namelast-nameemailbirth-datepasswordpassword-confirmation
Can I change the page size on GET requests?
Yes.
By default, paginated responses return 10 items per call.
You can request a different page size using:
page[size]=N
Example:
GET /users?page[size]=20&page[number]=1
Notes:
- The default page size is
10 - The recommended maximum is
20 - Values above
20may be capped by server configuration - Responses include pagination links such as
nextandlast
Does the API support filtering and searching?
Yes.
List endpoints can be filtered using query parameters. Most attributes can be used as filters.
Example:
GET /users?filter[last_name]=Smith
You can also use time-based filters such as:
filter[created_on_or_after]filter[created_before]
These use UNIX timestamps.
Does Checklick rate limit the API?
Checklick does not currently apply documented application-level rate limiting, and there is no published built-in throttling behavior such as HTTP 429 responses in the current API help content.
For large exports, we recommend:
- using
page[size]=20 - keeping concurrency modest
- implementing retry logic in your integration
If you need to export a large number of users, plan on roughly:
ceil(total_users / 20)list requests- plus any nested requests for credentials, assessments, or tag applications per user
What is a credential?
A credential represents the outcome for a level within a checklist program, including whether that level was passed.
Credential records include attributes such as:
evaluatee-idevaluator-idlevel-idorganization-idpasscreated-at
Example endpoint:
GET /users/1/credentials/14314799
Example response:
{
"type": "credentials",
"attributes": {
"created-at": "2025-12-10T04:34:02.227-05:00",
"evaluatee-id": 1,
"evaluator-id": 1,
"level-id": 2,
"organization-id": 1,
"pass": true
}
}
In this example, user 1 has pass: true on level-id: 2, recorded at organization 1.
You can retrieve credentials with:
GET /users/:user_id/credentialsGET /users/:user_id/credentials/:id
What is an assessment?
An assessment is the saved response for a single skill or form line in a checklist.
Depending on the skill definition, this can include:
- checkboxes
- radio selections
- a points value
- free text
Assessment records can include:
skill-idevaluatee-idevaluator-idorganization-idcheck-box-1throughcheck-box-10radio-buttonpoints-slidertext-fieldcreated-at
Example endpoint:
GET /users/14/assessments/1979
Example response:
{
"type": "assessments",
"attributes": {
"check-box-1": true,
"check-box-2": false,
"created-at": "2015-06-30T05:37:02.894-04:00",
"evaluatee-id": 14,
"evaluator-id": 8,
"organization-id": 4,
"skill-id": 106
}
}
To interpret response fields such as checkboxes, use the related skill definition from:
GET /skills/:id
You can retrieve assessments with:
GET /users/:user_id/assessmentsGET /users/:user_id/assessments/:idGET /skills/:skill_id/assessments
What is the difference between assessments and credentials?
Assessments and credentials represent two different levels of evaluation data.
- Assessments store the response for one skill
- Credentials store the outcome for one level
If you’re looking for pass/fail at the level level, use credentials.
If you’re looking for detailed responses to individual checklist items, use assessments.
Where does pass/fail exist?
Pass/fail is available on credentials, not on assessments.
A credential’s pass value may be:
truefalsenull
Assessments do not include a pass field, so skill-level results must be interpreted from the assessment response fields together with the related skill definition.
For a user’s current status for a given level, use the most recent credential by created-at for that evaluatee-id and level-id combination.
How do tags, skills, applications, checklists, levels, and sections relate?
Here is a simple glossary for the main API terms:
| API term | Meaning in Checklick |
|---|---|
| checklist | The overall program or evaluation template |
| level | A stage within that program |
| section | A grouping of items within a level |
| skill | One row or item on the evaluation form |
| assessment | A saved answer for one skill |
| credential | Pass/fail or progress for one level |
| tag | A label definition in admin |
| tag-application | A label applied to a person |
How do I reconstruct the checklist or evaluation form structure?
The API does not return one single nested “form” document.
Instead, you build the structure by loading and joining several resources:
GET /checklistsGET /levelsGET /sectionsGET /skills
Then overlay user-specific data from:
GET /users/:id/assessmentsGET /users/:id/credentials
At a high level, the structure is:
checklist → level → section → skill
Then add event data from:
- assessments
- credentials
Is there a “forms” resource?
No.
There is no dedicated forms resource in the public API.
A Checklick form is represented through the combination of:
checklistslevelssectionsskillsassessmentscredentials
Which organizations is a user affiliated with?
Affiliation is not exposed as a dedicated API resource.
You may still infer some affiliation context from:
GET /users/:user_id/tag-applications- the user lists returned under each
Organization-Idyou manage
Can I retrieve completed courses or storefront purchases from the public API?
Not through the public API documented here.
The public API supports checklist evaluation data such as:
- credentials
- assessments
- checklist structure resources
However, storefront courses, registrations, and orders are not available on the public API described in the current documentation.
If your use case depends on course registration or payment data, please contact us to discuss options.
What is the recommended API call sequence?
A practical sync order is:
-
Load catalog resources that change infrequently:
GET /checklistsGET /levelsGET /sectionsGET /skills
-
Load reference data such as:
- organizations
- tags
-
Load users using paginated requests
-
For each user, retrieve:
- credentials
- assessments
- tag applications
-
For ongoing syncs, repeat using supported date filters where available
How should I model this in an intermediate database?
A good approach is to treat each API resource as a source table in your warehouse or integration database.
Recommended modeling approach:
- use stable integer
idvalues as primary identifiers - use fields such as
created-atfor incremental syncs - use supported date filters where available
- join entities using foreign keys such as:
skill-idlevel-idevaluatee-idevaluator-idorganization-id
For deduplication across systems, use the Checklick user ID as the primary system key, then apply your own matching rules for attributes such as email and name if needed.
Is there an official ERD or deeper integration documentation?
Checklick does not currently publish a separate official ERD for integrators in the public help documentation.
The most reliable references are:
- the published API help articles
- the production API behavior
- the resource relationships described in this FAQ
Why is my API request failing?
Most connection issues come from one of these setup problems:
- missing
Content-Type: application/vnd.api+json - missing
Api-Version: 2 - missing or invalid authorization token
- missing or incorrect
Organization-Id - sending the request to the wrong host instead of
api.checklick.com - sending the request over HTTP instead of HTTPS
If you’ve checked those items and you’re still having trouble, contact support@checklick.com.