Checkins & Forms
Check-ins are the core of Dailybot's async communication. Use these endpoints to create, manage, and retrieve check-in configurations and their responses. A check-in collects structured answers from team members on a recurring schedule.
| Method | Endpoint | Description |
|---|---|---|
| GET | /v1/checkins/ | List all check-ins |
| GET | /v1/checkins/{checkin-uuid}/ | Get a specific check-in |
| POST | /v1/checkins/ | Create a check-in |
| PATCH | /v1/checkins/{checkin-uuid}/ | Update a check-in |
| DELETE | /v1/checkins/{checkin-uuid}/ | Delete a check-in |
| GET | /v1/checkins/{checkin-uuid}/responses/ | List check-in responses |
| POST | /v1/checkins/{checkin-uuid}/send-reminders/ | Send reminders |
| POST | /v1/checkins/{checkin-uuid}/responses/ | Fill out responses |
| GET | /v1/templates/ | List templates |
| GET | /v1/templates/{template-id}/ | Get a specific template |
| GET | /v1/forms/ | List forms |
List Check-ins
/v1/checkins/ Returns the list of check-ins visible to the authenticated user.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
date | string | Optional | Date for context (YYYY-MM-DD). When provided, used for summary and pending users context. |
include_summary | boolean | Optional | If true, include summary (e.g. completed_percentage, expected_responses) in each check-in object. Default: false. |
include_pending_users | boolean | Optional | If true and check-in is not anonymous, include pending_users in each check-in object. Default: false. |
curl -X GET "https://api.dailybot.com/v1/checkins/" \
-H "X-API-KEY: your_api_key"Response 200 OK
{
"count": 5,
"next": "https://api.dailybot.com/v1/checkins/?limit=10&offset=10",
"previous": null,
"results": [
{
"id": "checkin-uuid",
"name": "Daily Standup",
"active": true,
"can_be_edited": true,
"frequency_type": "daily",
"frequency": "every_day",
"frequency_on_days": [
0,
1,
2,
3,
4
],
"is_anonymous": false
}
]
}Get Check-in
/v1/checkins/{checkin-uuid}/ Returns a single check-in by ID (UUID).
curl -X GET "https://api.dailybot.com/v1/checkins/checkin-uuid/" \
-H "X-API-KEY: your_api_key"Response 200 OK
{
"id": "checkin-uuid",
"name": "Daily Standup",
"active": true,
"can_be_edited": true,
"frequency_type": "daily",
"frequency": "every_day",
"frequency_on_days": [
0,
1,
2,
3,
4
],
"is_anonymous": false,
"template": "template-uuid",
"start_on": null,
"end_on": null,
"time_for_report": "09:00:00",
"owner_uuid": "user-uuid"
}Response 404 Not Found
{
"detail": "Not found.",
"code": "not_found"
}Create Check-in
/v1/checkins/ Creates a new check-in. Requires organization admin, teams manager, or member-of-organization permission.
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Required | Check-in name. |
template | string (UUID) | Required | Template ID (from GET /v1/templates/). |
members_uuids | array of strings (UUID) | Optional | User UUIDs to add as members. |
teams_uuids | array of strings (UUID) | Optional | Team UUIDs whose members will be added. |
frequency_type | string | Optional | e.g. daily, weekly. |
frequency | string | Optional | e.g. every_day, two, four. |
frequency_on_days | array of integers | Optional | Days of week (0=Mon … 6=Sun). |
time_for_report | string (time) | Optional | Report time (HH:MM:SS). |
start_on | string (date) | Optional | Start date (YYYY-MM-DD). |
end_on | string (date) | Optional | End date (YYYY-MM-DD). |
is_anonymous | boolean | Optional | Default: false. |
privacy | string | Optional | Privacy type. |
allow_edit_permission | string | Optional | Who can edit. |
join_myself_as_member | boolean | Optional | Add requester as member. Default: false. |
curl -X POST "https://api.dailybot.com/v1/checkins/" \
-H "X-API-KEY: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Daily Standup",
"template": "template-uuid"
}'Response 201 Created
{
"id": "checkin-uuid",
"name": "Daily Standup",
"active": true,
"can_be_edited": true,
"frequency_type": "daily",
"frequency": "every_day",
"frequency_on_days": [
0,
1,
2,
3,
4
],
"is_anonymous": false,
"template": "template-uuid",
"start_on": null,
"end_on": null,
"time_for_report": "09:00:00",
"owner_uuid": "user-uuid"
}Response 400 Bad Request
{
"detail": "Validation error message.",
"code": "params_validation_error"
}Response 403 Forbidden
{
"detail": "You do not have permission to perform this action.",
"code": "permission_denied"
}Update Check-in
/v1/checkins/{checkin-uuid}/ Partial update of a check-in. Requires check-in management permission. Only provided fields are updated (e.g. name, active, frequency_on_days, members_uuids, teams_uuids).
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
name | string | Optional | Check-in name. |
template | string (UUID) | Optional | Template ID (from GET /v1/templates/). |
members_uuids | array of strings (UUID) | Optional | User UUIDs to add as members. |
teams_uuids | array of strings (UUID) | Optional | Team UUIDs whose members will be added. |
frequency_type | string | Optional | e.g. daily, weekly. |
frequency | string | Optional | e.g. every_day, two, four. |
frequency_on_days | array of integers | Optional | Days of week (0=Mon … 6=Sun). |
time_for_report | string (time) | Optional | Report time (HH:MM:SS). |
start_on | string (date) | Optional | Start date (YYYY-MM-DD). |
end_on | string (date) | Optional | End date (YYYY-MM-DD). |
is_anonymous | boolean | Optional | Default: false. |
privacy | string | Optional | Privacy type. |
allow_edit_permission | string | Optional | Who can edit. |
join_myself_as_member | boolean | Optional | Add requester as member. Default: false. |
curl -X PATCH "https://api.dailybot.com/v1/checkins/checkin-uuid/" \
-H "X-API-KEY: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Updated Standup"
}'Response 200 OK
{
"id": "checkin-uuid",
"name": "Updated Standup",
"active": true,
"can_be_edited": true,
"frequency_type": "daily",
"frequency": "every_day",
"frequency_on_days": [
0,
1,
2,
3,
4
],
"is_anonymous": false,
"template": "template-uuid",
"start_on": null,
"end_on": null,
"time_for_report": "09:00:00",
"owner_uuid": "user-uuid"
}Response 403 Forbidden
{
"detail": "You do not have permission to perform this action.",
"code": "permission_denied"
}Response 404 Not Found
{
"detail": "Not found.",
"code": "not_found"
}Delete Check-in
/v1/checkins/{checkin-uuid}/ Archives the check-in (sets active to false and archives it). Requires check-in management permission. No body.
curl -X DELETE "https://api.dailybot.com/v1/checkins/checkin-uuid/" \
-H "X-API-KEY: your_api_key"Response 204 No Content
Response 403 Forbidden
{
"detail": "You do not have permission to perform this action.",
"code": "permission_denied"
}Response 404 Not Found
{
"detail": "Not found.",
"code": "not_found"
}Irreversible Action
List Check-in Responses
/v1/checkins/{checkin-uuid}/responses/ Returns responses for a check-in within a date range.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
date_start | string | Optional | Start date (YYYY-MM-DD). Default: today. |
date_end | string | Optional | End date (YYYY-MM-DD). Default: today. |
curl -X GET "https://api.dailybot.com/v1/checkins/checkin-uuid/responses/" \
-H "X-API-KEY: your_api_key"Response 200 OK
[
{
"uuid": "daily-uuid",
"user": {
"uuid": "user-uuid",
"full_name": "Jane Smith"
},
"is_anonymous": false,
"responses": [
{
"question": "What did you do?",
"question_short": "Done",
"question_type": "text_field",
"response": "Shipped the login feature.",
"is_blocker": false
}
],
"response_completed": true,
"has_issue": false,
"created_at": "2026-02-25T10:00:00Z",
"updated_at": "2026-02-25T10:05:00Z"
}
]Send Reminders
/v1/checkins/{checkin-uuid}/send-reminders/ Sends reminder notifications for the check-in. If neither users_uuids nor users_emails is provided, reminders are sent to all users pending to respond for today (in the check-in's reporting timezone).
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
users_uuids | array of strings (UUID) | Optional | User UUIDs to notify. |
users_emails | array of strings | Optional | User emails to notify (resolved to UUIDs in the same org). |
date | string | Optional | Report date (YYYY-MM-DD). When omitted, today in check-in timezone is used. |
reminder_triggered_by_user | string (UUID) | Optional | User UUID to record as sender. |
is_reminder_triggered_by_me | boolean | Optional | If true, use the authenticated user as sender. Default: false. |
curl -X POST "https://api.dailybot.com/v1/checkins/checkin-uuid/send-reminders/" \
-H "X-API-KEY: your_api_key" \
-H "Content-Type: application/json" \
-d '{}'Response 200 OK — Users notified
{
"detail": "Users notified successfully."
}Response 200 OK — No users to notify
{
"detail": "No users to notify."
}Response 400 Bad Request
{
"detail": "Uuid for user that sends reminder is not valid.",
"code": "user_uuid_not_valid"
}Response 404 Not Found
{
"detail": "User that sends reminder does not exists.",
"code": "user_that_sends_does_not_exists"
}Fill Out Responses
/v1/checkins/{checkin-uuid}/responses/ Creates a new check-in response.
Body Parameters
| Name | Type | Required | Description |
|---|---|---|---|
responses | array of objects | Required | List of responses to check-in questions. Cannot be empty. |
response_date | string | Optional | Date for the response (YYYY-MM-DD). |
last_question_index | integer | Optional | Index of the last question answered. |
inline_chat_update | boolean | Optional | Whether this is an inline chat update. Default: false. |
curl -X POST "https://api.dailybot.com/v1/checkins/checkin-uuid/responses/" \
-H "X-API-KEY: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"responses": [
{
"question_uuid": "q-uuid-1",
"response": "Answer text"
}
]
}'Response 201 Created
{
"uuid": "daily-uuid",
"response_completed": true,
"responses": {
"question-uuid": "Answer text"
},
"next_question_action": {}
}Response 400 Bad Request / 406 Not Acceptable
{
"detail": "Responses not allowed on inactive Follow-Up",
"code": "responses_not_allowed_on_inactive_followup"
}Response 400 Bad Request / 406 Not Acceptable (example 2)
{
"detail": "User is not a followup member",
"code": "user_is_not_a_followup_member"
}Templates & Forms
Templates define the structure and questions for check-ins and forms. Use these endpoints to browse available templates and retrieve form data. Templates can be system defaults or custom-created by your organization.
List Templates
/v1/templates/ Returns a list of templates filtered by type.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
type | string | Required | Template type: checkins (or followups), or forms. |
system_default | boolean | Optional | If true, return only system default templates. Default: false. |
curl -X GET "https://api.dailybot.com/v1/templates/?type=checkins" \
-H "X-API-KEY: your_api_key"Response 200 OK
[
{
"id": "template-uuid",
"name": "Daily Standup",
"questions": {
"fields": []
},
"intro": null,
"outro": null,
"frequency": "every_day",
"frequency_type": "daily",
"frequency_on_days": [
0,
1,
2,
3,
4
],
"system_default": false
}
]Response 400 Bad Request
{
"detail": "The 'type' param should be: checkins (followups), forms",
"code": "params_validation_error"
}Get Template
/v1/templates/{template-id}/ Returns a single template by ID.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
render_special_vars | boolean | Optional | Whether to render special variables in the template. Default: false. |
followup_id | string | Optional | When render_special_vars is true, optional check-in ID for context. |
curl -X GET "https://api.dailybot.com/v1/templates/template-uuid/" \
-H "X-API-KEY: your_api_key"Response 200 OK
{
"id": "template-uuid",
"name": "Daily Standup",
"questions": {
"fields": []
},
"intro": null,
"outro": null,
"frequency": "every_day",
"frequency_type": "daily",
"frequency_on_days": [
0,
1,
2,
3,
4
],
"system_default": false
}Response 404 Not Found
{
"detail": "Not found.",
"code": "not_found"
}List Forms
/v1/forms/ Returns the list of forms visible to the authenticated user.
curl -X GET "https://api.dailybot.com/v1/forms/" \
-H "X-API-KEY: your_api_key"Response 200 OK
[
{
"id": "form-uuid",
"name": "Feedback Form",
"is_active": true,
"collect_responses_anonymously": false,
"privacy": "organization",
"shortcut": null,
"start_on": null,
"end_on": null,
"is_archived": false
}
]