Reminders
Create a reminder
Create a new reminder for the authenticated user. **Requires an `Idempotency-Key` header** — see Idempotency below. Returns `{ data: { reminder: {...} } }` with status 201.
POST /v2/reminders/
Parameters
Header parameters
Idempotency-Key
string required
Required. UUID per logical operation, reused on every retry. See
apps/rest-api/src/shared/idempotency.ts for the full contract. Missing → 400 BadRequest; same key + different body → 409 Conflict.Request body
Content-Type: application/json
reminder
object required
reminder.text
string
reminder.due_at_date
any required
reminder.due_at_time
any
reminder.is_complete
boolean
reminder.recurrence
string
reminder.reminders_contacts
array<object>
reminder.reminders_contacts[].contact_id
string (uuid)
reminder.reminders_contacts[].contacts
any
reminder.id
string (uuid)
Example
{
"reminder": {
"due_at_date": null
}
}
Responses
201 — Created
Content-Type: application/json
data
object required
data.reminder
object required
data.reminder.id
string (uuid) required
data.reminder.user_id
string
data.reminder.text
string | null
data.reminder.due_at_date
string (date-time)
data.reminder.due_at_time
string (date-time)
data.reminder.is_complete
boolean
data.reminder.email_sent
boolean
data.reminder.push_notification_sent
boolean
data.reminder.recurrence
string | null
data.reminder.last_completed_at
string (date-time)
data.reminder.next_occurrence_at
string (date-time)
data.reminder.created_at
string (date-time)
data.reminder.is_overdue
boolean
data.reminder.next_cursor
string
data.reminder.reminders_contacts
array<object>
data.reminder.users
object | null
Example
{
"data": {
"reminder": {
"id": "00000000-0000-0000-0000-000000000000"
}
}
}
400
No response body.
401
No response body.
403
No response body.
404
No response body.
409
No response body.
429
No response body.
500
No response body.
Code samples
curl https://api.prod.getdex.com/v2/reminders/ \
--request POST \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"reminder": {
"due_at_date": null
}
}'
fetch('https://api.prod.getdex.com/v2/reminders/', {
method: 'POST',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
reminder: {
due_at_date: null
}
})
})
requests.post(
"https://api.prod.getdex.com/v2/reminders/",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
json={
"reminder": {
"due_at_date": None
}
}
)
List reminders
Retrieve all reminders for the authenticated user. Supports filtering, sorting, and cursor pagination. Returns `{ data: { reminders: [...], pagination?: { nextCursor, count } } }`.
List recurring reminders
Retrieve all recurring (keep-in-touch) reminders for the authenticated user. Non-paginated — returns `{ data: { reminders: [...] } }` without a pagination object.

