Skip to content

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

GET /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.
Request
curl -X GET "https://api.dailybot.com/v1/checkins/" \
  -H "X-API-KEY: your_api_key"
Response 200 OK
json
{
  "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

GET /v1/checkins/{checkin-uuid}/

Returns a single check-in by ID (UUID).

Request
curl -X GET "https://api.dailybot.com/v1/checkins/checkin-uuid/" \
  -H "X-API-KEY: your_api_key"
Response 200 OK
json
{
  "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
json
{
  "detail": "Not found.",
  "code": "not_found"
}

Create Check-in

POST /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.
Request
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
json
{
  "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
json
{
  "detail": "Validation error message.",
  "code": "params_validation_error"
}
Response 403 Forbidden
json
{
  "detail": "You do not have permission to perform this action.",
  "code": "permission_denied"
}

Update Check-in

PATCH /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.
Request
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
json
{
  "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
json
{
  "detail": "You do not have permission to perform this action.",
  "code": "permission_denied"
}
Response 404 Not Found
json
{
  "detail": "Not found.",
  "code": "not_found"
}

Delete Check-in

DELETE /v1/checkins/{checkin-uuid}/

Archives the check-in (sets active to false and archives it). Requires check-in management permission. No body.

Request
curl -X DELETE "https://api.dailybot.com/v1/checkins/checkin-uuid/" \
  -H "X-API-KEY: your_api_key"
Response 204 No Content
json
Response 403 Forbidden
json
{
  "detail": "You do not have permission to perform this action.",
  "code": "permission_denied"
}
Response 404 Not Found
json
{
  "detail": "Not found.",
  "code": "not_found"
}

Irreversible Action

Deleting a check-in permanently removes all its responses and configuration. This action cannot be undone.

List Check-in Responses

GET /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.
Request
curl -X GET "https://api.dailybot.com/v1/checkins/checkin-uuid/responses/" \
  -H "X-API-KEY: your_api_key"
Response 200 OK
json
[
  {
    "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

POST /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.
Request
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
json
{
  "detail": "Users notified successfully."
}
Response 200 OK — No users to notify
json
{
  "detail": "No users to notify."
}
Response 400 Bad Request
json
{
  "detail": "Uuid for user that sends reminder is not valid.",
  "code": "user_uuid_not_valid"
}
Response 404 Not Found
json
{
  "detail": "User that sends reminder does not exists.",
  "code": "user_that_sends_does_not_exists"
}

Fill Out Responses

POST /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.
Request
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
json
{
  "uuid": "daily-uuid",
  "response_completed": true,
  "responses": {
    "question-uuid": "Answer text"
  },
  "next_question_action": {}
}
Response 400 Bad Request / 406 Not Acceptable
json
{
  "detail": "Responses not allowed on inactive Follow-Up",
  "code": "responses_not_allowed_on_inactive_followup"
}
Response 400 Bad Request / 406 Not Acceptable (example 2)
json
{
  "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

GET /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.
Request
curl -X GET "https://api.dailybot.com/v1/templates/?type=checkins" \
  -H "X-API-KEY: your_api_key"
Response 200 OK
json
[
  {
    "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
json
{
  "detail": "The 'type' param should be: checkins (followups), forms",
  "code": "params_validation_error"
}

Get Template

GET /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.
Request
curl -X GET "https://api.dailybot.com/v1/templates/template-uuid/" \
  -H "X-API-KEY: your_api_key"
Response 200 OK
json
{
  "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
json
{
  "detail": "Not found.",
  "code": "not_found"
}

List Forms

GET /v1/forms/

Returns the list of forms visible to the authenticated user.

Request
curl -X GET "https://api.dailybot.com/v1/forms/" \
  -H "X-API-KEY: your_api_key"
Response 200 OK
json
[
  {
    "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
  }
]