Skip to content
view raw .md

Users

Read the organization directory, look up user profiles, and update user metadata. Accepts both API keys and CLI Bearer tokens.

GET/v1/me/API keyCLI AuthOAuth 2.0

Current authenticated identity

Returns the current authenticated user (or agent identity for API-Key requests). Supports include_email query.

Query parameters

NameTypeRequiredDescription
include_emailbooleanOptionalInclude email in response. Default false.

Errors

StatusWhen
401Missing/invalid/expired credential
403Authenticated but not permitted
429Throttled - Retry-After header set
curl -sS -X GET 'https://api.dailybot.com/v1/me/' -H 'X-API-KEY: $DAILYBOT_API_KEY'

Try it

This is a copy-only helper — the request is not sent from your browser. Paste the command into your terminal to execute it.

GET/v1/users/API keyCLI AuthPage-number pagination

List organization members

Paginated list of users. Supports search, only_active, include_email.

Query parameters

NameTypeRequiredDescription
searchstringOptionalFilter by name, email, or external ID (case-insensitive).
only_activebooleanOptionalIf set, return only active users.
include_emailbooleanOptionalInclude email in each user object.
pageintegerOptionalPage number (page-number pagination).
page_sizeintegerOptionalPage size (default 20, max 100).

Errors

StatusWhen
401Missing/invalid/expired credential
403Authenticated but not permitted
429Throttled - Retry-After header set
curl -sS -X GET 'https://api.dailybot.com/v1/users/' -H 'X-API-KEY: $DAILYBOT_API_KEY'

Try it

This is a copy-only helper — the request is not sent from your browser. Paste the command into your terminal to execute it.

GET/v1/users/{uuid}/API keyCLI Auth

Retrieve a user by UUID

Retrieves a single user by their UUID.

Path parameters

NameTypeRequiredDescription
uuidstring (uuid)Required

Query parameters

NameTypeRequiredDescription
include_emailbooleanOptional

Errors

StatusWhen
401Missing/invalid/expired credential
403Authenticated but not permitted
429Throttled - Retry-After header set
404Not found or not visible
curl -sS -X GET 'https://api.dailybot.com/v1/users/{uuid}/' -H 'X-API-KEY: $DAILYBOT_API_KEY'

Try it

This is a copy-only helper — the request is not sent from your browser. Paste the command into your terminal to execute it.

PATCH/v1/users/{uuid}/API keyCLI Auth

Update a user

Partially update a user profile.

Path parameters

NameTypeRequiredDescription
uuidstring (uuid)Required

Errors

StatusWhen
401Missing/invalid/expired credential
403Authenticated but not permitted
429Throttled - Retry-After header set
400Validation error
404Not found or not visible
curl -sS -X PATCH 'https://api.dailybot.com/v1/users/{uuid}/' -H 'X-API-KEY: $DAILYBOT_API_KEY'

Try it

This is a copy-only helper — the request is not sent from your browser. Paste the command into your terminal to execute it.

PATCH/v1/users/{uuid}/update-metadata/API keyCLI Auth

Update user metadata

Merge arbitrary key/value metadata onto a user.

Path parameters

NameTypeRequiredDescription
uuidstring (uuid)Required

Errors

StatusWhen
401Missing/invalid/expired credential
403Authenticated but not permitted
429Throttled - Retry-After header set
400Validation error
404Not found or not visible
curl -sS -X PATCH 'https://api.dailybot.com/v1/users/{uuid}/update-metadata/' -H 'X-API-KEY: $DAILYBOT_API_KEY'

Try it

This is a copy-only helper — the request is not sent from your browser. Paste the command into your terminal to execute it.

GET/v1/me/dashboard-preferences/{surface}/API keyCLI AuthOAuth 2.0

Get dashboard preferences

Returns last-applied filters for a surface (forms_home, workflows_home, followups_home). Missing preference → 200 with empty filters.

Path parameters

NameTypeRequiredDescription
surfacestringRequired

Response

{
  "surface": "string (forms_home | workflows_home | followups_home)",
  "schema_version": "integer",
  "filters": "object",
  "updated_at": "string | null (ISO-8601)"
}

Errors

StatusWhen
401Missing/invalid/expired credential
403Authenticated but not permitted
429Throttled — Retry-After header set
404not_found — unsupported surface
curl -sS -X GET 'https://api.dailybot.com/v1/me/dashboard-preferences/forms_home/' \
  -H 'X-API-KEY: $DAILYBOT_API_KEY'

Try it

This is a copy-only helper — the request is not sent from your browser. Paste the command into your terminal to execute it.

  • Not gated by Labels entitlement. When Labels are unavailable, stored Label filters may be omitted from responses with warning labels_feature_unavailable.
PUT/v1/me/dashboard-preferences/{surface}/API keyCLI AuthOAuth 2.0

Save dashboard preferences

Upsert last-applied filters for a surface.

Path parameters

NameTypeRequiredDescription
surfacestringRequired

Request body

{
  "schema_version": 1,
  "filters": "object (canonical)",
  "payload": "object (optional legacy alias; filters wins when both are sent)"
}

Errors

StatusWhen
401Missing/invalid/expired credential
403Authenticated but not permitted
400invalid_preference_payload — invalid body (schema_version / filters)
429Throttled — Retry-After header set
404not_found — unsupported surface
curl -sS -X PUT 'https://api.dailybot.com/v1/me/dashboard-preferences/forms_home/' \
  -H 'X-API-KEY: $DAILYBOT_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"schema_version": 1, "filters": {}}'

Try it

This is a copy-only helper — the request is not sent from your browser. Paste the command into your terminal to execute it.

  • Not gated by Labels entitlement. Unsupported surface → 404 not_found; malformed body → 400 invalid_preference_payload.
DELETE/v1/me/dashboard-preferences/{surface}/API keyCLI AuthOAuth 2.0

Clear dashboard preferences

Clear last-applied filters for a surface. Idempotent 204.

Path parameters

NameTypeRequiredDescription
surfacestringRequired

Errors

StatusWhen
401Missing/invalid/expired credential
403Authenticated but not permitted
429Throttled — Retry-After header set
404not_found — unsupported surface
curl -sS -X DELETE 'https://api.dailybot.com/v1/me/dashboard-preferences/forms_home/' \
  -H 'X-API-KEY: $DAILYBOT_API_KEY'

Try it

This is a copy-only helper — the request is not sent from your browser. Paste the command into your terminal to execute it.

  • Not gated by Labels entitlement. Idempotent: missing preference still returns 204.
GET/v1/me/saved-views/API keyCLI AuthOAuth 2.0

List saved views

List named saved views for the caller. Optional surface filter.

Query parameters

NameTypeRequiredDescription
surfacestringOptionalFilter by surface.

Response

{
  "results": "array<{ uuid, surface, name, schema_version, filters, created_at, updated_at }>"
}

Errors

StatusWhen
401Missing/invalid/expired credential
403Authenticated but not permitted
400invalid_preference_payload — invalid query (e.g. unsupported surface)
429Throttled — Retry-After header set
curl -sS -X GET 'https://api.dailybot.com/v1/me/saved-views/' \
  -H 'X-API-KEY: $DAILYBOT_API_KEY'

Try it

This is a copy-only helper — the request is not sent from your browser. Paste the command into your terminal to execute it.

  • Not gated by Labels entitlement. When Labels are unavailable, stored Label filters may be omitted from responses with warning labels_feature_unavailable.
POST/v1/me/saved-views/API keyCLI AuthOAuth 2.0

Create saved view

Create a named saved view for a surface.

Request body

{
  "surface": "string",
  "name": "string",
  "schema_version": 1,
  "filters": "object (canonical)",
  "payload": "object (optional legacy alias; filters wins when both are sent)"
}

Errors

StatusWhen
401Missing/invalid/expired credential
403Authenticated but not permitted
400invalid_preference_payload — invalid body (e.g. unsupported surface)
429Throttled — Retry-After header set
409duplicate_name — saved view name already exists on this surface
curl -sS -X POST 'https://api.dailybot.com/v1/me/saved-views/' \
  -H 'X-API-KEY: $DAILYBOT_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"surface": "forms_home", "name": "My view", "schema_version": 1, "filters": {}}'

Try it

This is a copy-only helper — the request is not sent from your browser. Paste the command into your terminal to execute it.

  • Not gated by Labels entitlement. When Labels are unavailable, stored Label filters may be omitted from responses with warning labels_feature_unavailable.
GET/v1/me/saved-views/{view_uuid}/API keyCLI AuthOAuth 2.0

Retrieve saved view

Retrieve one saved view by UUID.

Path parameters

NameTypeRequiredDescription
view_uuidstring (uuid)Required

Response

{
  "uuid": "string (uuid)",
  "surface": "string",
  "name": "string",
  "schema_version": "integer",
  "filters": "object",
  "created_at": "string (ISO-8601)",
  "updated_at": "string (ISO-8601)"
}

Errors

StatusWhen
401Missing/invalid/expired credential
403Authenticated but not permitted
429Throttled — Retry-After header set
404Unsupported surface or view not found
curl -sS -X GET 'https://api.dailybot.com/v1/me/saved-views/{view_uuid}/' \
  -H 'X-API-KEY: $DAILYBOT_API_KEY'

Try it

This is a copy-only helper — the request is not sent from your browser. Paste the command into your terminal to execute it.

  • Not gated by Labels entitlement. When Labels are unavailable, stored Label filters may be omitted from responses with warning labels_feature_unavailable.
PATCH/v1/me/saved-views/{view_uuid}/API keyCLI AuthOAuth 2.0

Update saved view

Update name or filters on a saved view.

Path parameters

NameTypeRequiredDescription
view_uuidstring (uuid)Required

Request body

{
  "name": "string (optional)",
  "filters": "object (optional, canonical)",
  "payload": "object (optional legacy alias; filters wins when both are sent)"
}

Errors

StatusWhen
401Missing/invalid/expired credential
403Authenticated but not permitted
429Throttled — Retry-After header set
404Unsupported surface or view not found
curl -sS -X PATCH 'https://api.dailybot.com/v1/me/saved-views/{view_uuid}/' \
  -H 'X-API-KEY: $DAILYBOT_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"name": "Renamed view", "filters": {}}'

Try it

This is a copy-only helper — the request is not sent from your browser. Paste the command into your terminal to execute it.

  • Not gated by Labels entitlement. When Labels are unavailable, stored Label filters may be omitted from responses with warning labels_feature_unavailable.
DELETE/v1/me/saved-views/{view_uuid}/API keyCLI AuthOAuth 2.0

Delete saved view

Delete a saved view.

Path parameters

NameTypeRequiredDescription
view_uuidstring (uuid)Required

Errors

StatusWhen
401Missing/invalid/expired credential
403Authenticated but not permitted
429Throttled — Retry-After header set
404Unsupported surface or view not found
curl -sS -X DELETE 'https://api.dailybot.com/v1/me/saved-views/{view_uuid}/' \
  -H 'X-API-KEY: $DAILYBOT_API_KEY'

Try it

This is a copy-only helper — the request is not sent from your browser. Paste the command into your terminal to execute it.

  • Not gated by Labels entitlement. When Labels are unavailable, stored Label filters may be omitted from responses with warning labels_feature_unavailable.

Users & Organization

Manage users, get context info (/me), retrieve organization details, update profiles and metadata, and invite members.

Endpoints summary

Method Endpoint Description
GET /v1/me/ Get context info (authenticated user + organization)
GET /v1/organization/ Get organization details
GET /v1/users/ List all users
GET /v1/users/{uuid}/ Get a specific user
PATCH /v1/users/{uuid}/ Update a user
POST /v1/invite-user/ Invite a user (see Invitations API)

Personalization

Private per-user dashboard state under /v1/me/.... Not gated by Labels entitlement — any authenticated member can use preferences, saved views, and Featured.

Method Endpoint Description
GET/PUT/DELETE /v1/me/dashboard-preferences/{surface}/ Last-applied filters for forms_home, workflows_home, or followups_home
GET/POST /v1/me/saved-views/ List or create named saved views
GET/PATCH/DELETE /v1/me/saved-views/{view_uuid}/ Manage one saved view
GET /v1/me/featured/?entity_type= List Featured entity UUIDs (forms, automations, checkins)
PUT /v1/me/featured/{entity_type}/{entity_uuid}/ Toggle Featured ({"featured": true|false})
POST /v1/me/featured/batch/ Batch feature/unfeature

Empty preference: GET /v1/me/dashboard-preferences/{surface}/ with no saved state returns 200:

{"surface": "forms_home", "schema_version": 1, "filters": {}, "updated_at": null}

DELETE on dashboard preferences is idempotent (204). Writes accept canonical filters; legacy payload is still accepted (filters wins when both are sent).

When Labels are unavailable, preference payloads may retain Label filters at rest but responses omit them with warning labels_feature_unavailable.

Featured is private per useris_featured on forms/check-ins/automations list endpoints reflects only the caller, never teammates.


GET /v1/me/

Returns information about the authenticated user and their organization.

curl -X GET "https://api.dailybot.com/v1/me/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

Response (200 OK):

{
  "id": "usr_abc123",
  "email": "[email protected]",
  "first_name": "Jane",
  "last_name": "Doe",
  "role": "admin",
  "timezone": "America/New_York",
  "organization": {
    "id": "org_xyz789",
    "name": "Acme Corp",
    "plan": "pro"
  }
}

GET /v1/organization/

Returns the organization details for the authenticated API key.

curl -X GET "https://api.dailybot.com/v1/organization/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

Response (200 OK):

{
  "id": "org_xyz789",
  "name": "Acme Corp",
  "plan": "pro",
  "member_count": 45,
  "created_at": "2023-01-15T00:00:00Z"
}

GET /v1/users/

Returns all users in the organization. Paginated (default ordering: full_name).

Query parameters

Name Type Default Description
page integer 1 Page number (1-indexed). offset accepted as alias.
page_size integer 50 Items per page (max 200). limit accepted as alias.
search string Case-insensitive search on full name or email (max 256 chars).
is_active boolean Filter by active status.
role string Filter by role: admin or member.
curl "https://api.dailybot.com/v1/users/?is_active=true&search=alice&page_size=50" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

Response (200 OK):

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "uuid": "usr_abc123",
      "email": "[email protected]",
      "first_name": "Alice",
      "last_name": "Smith",
      "role": "member",
      "is_active": true,
      "timezone": "America/New_York"
    }
  ]
}

Iterating all users

PAGE=1
while true; do
  RESP=$(curl -s "https://api.dailybot.com/v1/users/?is_active=true&page=$PAGE&page_size=100" \
    -H "X-API-KEY: $DAILYBOT_API_KEY")
  echo "$RESP" | jq '.results[]'
  NEXT=$(echo "$RESP" | jq -r '.next')
  [ "$NEXT" = "null" ] && break
  PAGE=$((PAGE + 1))
done

GET /v1/users/{uuid}/

Returns a specific user.

curl -X GET "https://api.dailybot.com/v1/users/usr_abc123/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY"

PATCH /v1/users/{uuid}/

Updates a user’s profile or metadata. Only Org Administrators can update other users.

Body parameters

Name Type Required Description
first_name string No User’s first name.
last_name string No User’s last name.
timezone string No IANA timezone string (e.g. America/New_York).
metadata object No Custom key-value metadata for the user.
curl -X PATCH "https://api.dailybot.com/v1/users/usr_abc123/" \
  -H "X-API-KEY: $DAILYBOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "timezone": "Europe/London",
    "metadata": { "department": "Engineering", "location": "London" }
  }'

Response (200 OK):

{
  "uuid": "usr_abc123",
  "email": "[email protected]",
  "first_name": "Jane",
  "last_name": "Doe",
  "timezone": "Europe/London",
  "metadata": { "department": "Engineering", "location": "London" }
}