OpenAPI Specification
openapi: 3.0.3
info:
title: Folk External Companies Reminders API
description: Folk's public REST API lets you manage workspaces, groups, contacts, and real-time triggers.
version: '2025-06-09'
contact:
name: folk
email: tech@folk.app
url: https://folk.app
servers:
- url: https://api.folk.app
description: Folk's public API production base URL.
x-internal: false
tags:
- name: Reminders
description: Operations related to reminders.
paths:
/v1/reminders:
get:
security:
- bearerApiKeyAuth: []
x-stability-level: alpha
operationId: listReminders
summary: List reminders
description: Retrieve a list of reminders in the workspace.
tags:
- Reminders
parameters:
- schema:
type: integer
minimum: 1
maximum: 100
default: 20
required: false
description: The number of items to return.
example: 20
name: limit
in: query
- schema:
type: string
maxLength: 128
required: false
description: A cursor for pagination across multiple pages of results. Don’t include this parameter on the first call. Use the `pagination.nextLink` value returned in a previous response to request subsequent results.
example: eyJvZmZzZXQiOjN9
name: cursor
in: query
- schema:
type: string
minLength: 40
maxLength: 40
required: false
description: Filter reminders by entity. Only reminders linked to the specified entity will be returned.
example: per_55175e81-9a52-4ac3-930e-82792c23499b
name: entity.id
in: query
responses:
'200':
description: A paginated list of reminders in the workspace.
links:
updateReminder:
operationId: updateReminder
parameters:
companyId: $response.body#/data/items/0/id
description: The ids returned by the `GET /v1/reminders` operation can be used as an input to the `PATCH /v1/reminders/:reminderId` operation to update a reminder.
getReminder:
operationId: getReminder
parameters:
companyId: $response.body#/data/items/0/id
description: The ids returned by the `GET /v1/reminders` operation can be used as an input to the `GET /v1/reminders/:reminderId` operation to retrieve a reminder.
deleteReminder:
operationId: deleteReminder
parameters:
companyId: $response.body#/data/items/0/id
description: The ids returned by the `GET /v1/reminders` operation can be used as an input to the `DELETE /v1/reminders/:reminderId` operation to delete a reminder.
headers:
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Reminder'
pagination:
type: object
properties:
nextLink:
type: string
required:
- items
- pagination
example:
items:
- id: rmd_91118b73-5a75-480b-b8e3-a33671c35cdc
name: Reminder on John Doe
entity:
id: per_55175e81-9a52-4ac3-930e-82792c23499b
entityType: person
fullName: John Doe
recurrenceRule: 'DTSTART;TZID=Europe/Paris:20250717T090000
RRULE:FREQ=WEEKLY;INTERVAL=1'
visibility: public
assignedUsers:
- id: usr_a45c30d8-19fc-4939-94c7-17dc5e46f476
fullName: John Doe
email: john.doe@example.com
nextTriggerTime: '2025-07-17T09:00:00.000Z'
lastTriggerTime: '2025-05-17T09:00:00.000Z'
createdBy:
id: usr_bc984b3f-0386-434d-82d7-a91eb6badd71
fullName: John Doe
email: john.doe@example.com
createdAt: '2021-01-01T00:00:00.000Z'
pagination:
nextLink: https://api.folk.app/v1/reminders?limit=20&cursor=eyJvZmZzZXQiOjIwfQ%3D%3D
deprecations:
type: array
items:
type: string
example:
- This field is deprecated
required:
- data
example:
data:
items:
- id: rmd_91118b73-5a75-480b-b8e3-a33671c35cdc
name: Reminder on John Doe
entity:
id: per_55175e81-9a52-4ac3-930e-82792c23499b
entityType: person
fullName: John Doe
recurrenceRule: 'DTSTART;TZID=Europe/Paris:20250717T090000
RRULE:FREQ=WEEKLY;INTERVAL=1'
visibility: public
assignedUsers:
- id: usr_a45c30d8-19fc-4939-94c7-17dc5e46f476
fullName: John Doe
email: john.doe@example.com
nextTriggerTime: '2025-07-17T09:00:00.000Z'
lastTriggerTime: '2025-05-17T09:00:00.000Z'
createdBy:
id: usr_bc984b3f-0386-434d-82d7-a91eb6badd71
fullName: John Doe
email: john.doe@example.com
createdAt: '2021-01-01T00:00:00.000Z'
pagination:
nextLink: https://api.folk.app/v1/reminders?limit=20&cursor=eyJvZmZzZXQiOjIwfQ%3D%3D
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
post:
security:
- bearerApiKeyAuth: []
x-stability-level: alpha
operationId: createReminder
summary: Create a reminder
description: Create a new reminder in the workspace.
tags:
- Reminders
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
entity:
type: object
properties:
id:
type: string
minLength: 40
maxLength: 40
required:
- id
additionalProperties: false
description: The entity connected to the reminder. You can link people, companies and deals.
example:
id: per_55175e81-9a52-4ac3-930e-82792c23499b
name:
type: string
maxLength: 255
description: The name of the reminder.
example: Reminder on John Doe
recurrenceRule:
type: string
maxLength: 150
description: "The recurrence rule of the reminder. The recurrence rule is a string that follows the iCalendar format specified in [RFC 5545](https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html).\nWe support only a subset of the iCalendar format:\n\n```\nDTSTART;TZID=<timezone>:<date>T<time>\nRRULE:<recurrence parameters>\n```\n\nOnly the following recurrence parameters are supported:\n\n- No repeat: `RRULE:COUNT=1`\n- Every weekday: `RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;INTERVAL=1`\n- Every week: `RRULE:FREQ=WEEKLY;INTERVAL=1`\n- Every 2 weeks: `RRULE:FREQ=WEEKLY;INTERVAL=2`\n- Every month: `RRULE:FREQ=MONTHLY;INTERVAL=1`\n- Every quarter: `RRULE:FREQ=MONTHLY;INTERVAL=3`\n- Every year: `RRULE:FREQ=YEARLY;INTERVAL=1`\n\nSupplying any other type of recurrence will result in a validation error.\n "
example: 'DTSTART;TZID=Europe/Paris:20250717T090000
RRULE:FREQ=WEEKLY;INTERVAL=1'
visibility:
type: string
enum:
- public
- private
description: "The visibility of the reminder.\n\n- `public`: The reminder is visible to all users in the workspace.\n- `private`: The reminder is visible only to the current user.\n "
assignedUsers:
type: array
items:
anyOf:
- type: object
properties:
id:
type: string
minLength: 40
maxLength: 40
required:
- id
additionalProperties: false
- type: object
properties:
email:
type: string
maxLength: 254
required:
- email
additionalProperties: false
minItems: 1
maxItems: 50
description: A list of workspace users to be notified when the reminder is triggered. Only required for public reminders. For private reminders, this field must be omitted and the current user is automatically notified.
example:
- id: usr_a45c30d8-19fc-4939-94c7-17dc5e46f476
- email: john.doe@example.com
required:
- entity
- name
- recurrenceRule
- visibility
additionalProperties: false
responses:
'200':
description: The reminder created in the workspace.
links:
updateReminder:
operationId: updateReminder
parameters:
reminderId: $response.body#/data/id
description: The id returned by the `POST /v1/reminders` operation can be used as an input to the `PATCH /v1/reminders/:reminderId` operation to update the reminder.
getReminder:
operationId: getReminder
parameters:
companyId: $response.body#/data/id
description: The id returned by the `POST /v1/reminders` operation can be used as an input to the `GET /v1/reminders/:reminderId` operation to retrieve the reminder.
deleteReminder:
operationId: deleteReminder
parameters:
reminderId: $response.body#/data/id
description: The id returned by the `POST /v1/reminders` operation can be used as an input to the `DELETE /v1/reminders/:reminderId` operation to delete the reminder.
headers:
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Reminder'
deprecations:
type: array
items:
type: string
example:
- This field is deprecated
required:
- data
example:
data:
id: rmd_91118b73-5a75-480b-b8e3-a33671c35cdc
name: Reminder on John Doe
entity:
id: per_55175e81-9a52-4ac3-930e-82792c23499b
entityType: person
fullName: John Doe
recurrenceRule: 'DTSTART;TZID=Europe/Paris:20250717T090000
RRULE:FREQ=WEEKLY;INTERVAL=1'
visibility: public
assignedUsers:
- id: usr_a45c30d8-19fc-4939-94c7-17dc5e46f476
fullName: John Doe
email: john.doe@example.com
nextTriggerTime: '2025-07-17T09:00:00.000Z'
lastTriggerTime: '2025-05-17T09:00:00.000Z'
createdBy:
id: usr_bc984b3f-0386-434d-82d7-a91eb6badd71
fullName: John Doe
email: john.doe@example.com
createdAt: '2021-01-01T00:00:00.000Z'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
/v1/reminders/{reminderId}:
get:
security:
- bearerApiKeyAuth: []
x-stability-level: alpha
operationId: getReminder
summary: Get a reminder
description: Retrieve an existing reminder in the workspace.
tags:
- Reminders
parameters:
- schema:
type: string
minLength: 40
maxLength: 40
required: true
description: The ID of the reminder to retrieve.
name: reminderId
in: path
responses:
'200':
description: The retrieved reminder in the workspace.
headers:
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Reminder'
deprecations:
type: array
items:
type: string
example:
- This field is deprecated
required:
- data
example:
data:
id: rmd_91118b73-5a75-480b-b8e3-a33671c35cdc
name: Reminder on John Doe
entity:
id: per_55175e81-9a52-4ac3-930e-82792c23499b
entityType: person
fullName: John Doe
recurrenceRule: 'DTSTART;TZID=Europe/Paris:20250717T090000
RRULE:FREQ=WEEKLY;INTERVAL=1'
visibility: public
assignedUsers:
- id: usr_a45c30d8-19fc-4939-94c7-17dc5e46f476
fullName: John Doe
email: john.doe@example.com
nextTriggerTime: '2025-07-17T09:00:00.000Z'
lastTriggerTime: '2025-05-17T09:00:00.000Z'
createdBy:
id: usr_bc984b3f-0386-434d-82d7-a91eb6badd71
fullName: John Doe
email: john.doe@example.com
createdAt: '2021-01-01T00:00:00.000Z'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
patch:
security:
- bearerApiKeyAuth: []
x-stability-level: alpha
operationId: updateReminder
summary: Update a reminder
description: Update an existing reminder in the workspace.
tags:
- Reminders
parameters:
- schema:
type: string
minLength: 40
maxLength: 40
required: true
description: The ID of the reminder to update.
name: reminderId
in: path
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
maxLength: 255
description: The name of the reminder.
example: Reminder on John Doe
recurrenceRule:
type: string
maxLength: 150
description: "The recurrence rule of the reminder. The recurrence rule is a string that follows the iCalendar format specified in [RFC 5545](https://icalendar.org/iCalendar-RFC-5545/3-8-5-3-recurrence-rule.html).\nWe support only a subset of the iCalendar format:\n\n```\nDTSTART;TZID=<timezone>:<date>T<time>\nRRULE:<recurrence parameters>\n```\n\nOnly the following recurrence parameters are supported:\n\n- No repeat: `RRULE:COUNT=1`\n- Every weekday: `RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR;INTERVAL=1`\n- Every week: `RRULE:FREQ=WEEKLY;INTERVAL=1`\n- Every 2 weeks: `RRULE:FREQ=WEEKLY;INTERVAL=2`\n- Every month: `RRULE:FREQ=MONTHLY;INTERVAL=1`\n- Every quarter: `RRULE:FREQ=MONTHLY;INTERVAL=3`\n- Every year: `RRULE:FREQ=YEARLY;INTERVAL=1`\n\nSupplying any other type of recurrence will result in a validation error.\n "
example: 'DTSTART;TZID=Europe/Paris:20250717T090000
RRULE:FREQ=WEEKLY;INTERVAL=1'
visibility:
type: string
enum:
- public
- private
description: "The visibility of the reminder.\n\n- `public`: The reminder is visible to all users in the workspace.\n- `private`: The reminder is visible only to the current user.\n "
assignedUsers:
type: array
items:
anyOf:
- type: object
properties:
id:
type: string
minLength: 40
maxLength: 40
required:
- id
additionalProperties: false
- type: object
properties:
email:
type: string
maxLength: 254
required:
- email
additionalProperties: false
minItems: 1
maxItems: 50
description: A list of workspace users to be notified when the reminder is triggered. Only required for public reminders. For private reminders, this field must be omitted and the current user is automatically notified.
example:
- id: usr_a45c30d8-19fc-4939-94c7-17dc5e46f476
- email: john.doe@example.com
additionalProperties: false
responses:
'200':
description: The updated reminder in the workspace.
headers:
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Reminder'
deprecations:
type: array
items:
type: string
example:
- This field is deprecated
required:
- data
example:
data:
id: rmd_91118b73-5a75-480b-b8e3-a33671c35cdc
name: Reminder on John Doe
entity:
id: per_55175e81-9a52-4ac3-930e-82792c23499b
entityType: person
fullName: John Doe
recurrenceRule: 'DTSTART;TZID=Europe/Paris:20250717T090000
RRULE:FREQ=WEEKLY;INTERVAL=1'
visibility: public
assignedUsers:
- id: usr_a45c30d8-19fc-4939-94c7-17dc5e46f476
fullName: John Doe
email: john.doe@example.com
nextTriggerTime: '2025-07-17T09:00:00.000Z'
lastTriggerTime: '2025-05-17T09:00:00.000Z'
createdBy:
id: usr_bc984b3f-0386-434d-82d7-a91eb6badd71
fullName: John Doe
email: john.doe@example.com
createdAt: '2021-01-01T00:00:00.000Z'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
delete:
security:
- bearerApiKeyAuth: []
operationId: deleteReminder
summary: Delete a reminder
description: Delete an existing reminder in the workspace.
tags:
- Reminders
parameters:
- schema:
type: string
minLength: 40
maxLength: 40
required: true
description: The ID of the reminder to delete.
name: reminderId
in: path
responses:
'200':
description: The ID of the deleted reminder.
headers:
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
type: object
properties:
data:
type: object
properties:
id:
type: string
required:
- id
example:
id: rmd_91118b73-5a75-480b-b8e3-a33671c35cdc
deprecations:
type: array
items:
type: string
example:
- This field is deprecated
required:
- data
example:
data:
id: rmd_91118b73-5a75-480b-b8e3-a33671c35cdc
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
'503':
$ref: '#/components/responses/ServiceUnavailable'
components:
responses:
Forbidden:
description: The API key doesn’t have permissions to perform the request.
headers:
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error:
code: FORBIDDEN
message: The API key doesn’t have permissions to perform the request.
documentationUrl: https://developer.folk.app/api-reference/errors#forbidden
requestId: 123e4567-e89b-12d3-a456-426614174000
timestamp: '2025-10-01T12:00:00Z'
ServiceUnavailable:
description: The server is overloaded or down for maintenance.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error:
code: SERVICE_UNAVAILABLE
message: The service is currently unavailable.
documentationUrl: https://developer.folk.app/api-reference/errors#service-unavailable
requestId: 123e4567-e89b-12d3-a456-426614174000
timestamp: '2025-10-01T12:00:00Z'
NotFound:
description: The requested resource doesn’t exist.
headers:
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error:
code: RESOURCE_NOT_FOUND
message: The requested resource was not found.
documentationUrl: https://developer.folk.app/api-reference/errors#not-found
requestId: 123e4567-e89b-12d3-a456-426614174000
timestamp: '2025-10-01T12:00:00Z'
InternalServerError:
description: Something went wrong on our end.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error:
code: INTERNAL_SERVER_ERROR
message: An internal server error occurred.
documentationUrl: https://developer.folk.app/api-reference/errors#internal-server-error
requestId: 123e4567-e89b-12d3-a456-426614174000
timestamp: '2025-10-01T12:00:00Z'
UnprocessableEntity:
description: The request was unacceptable, often due to missing or invalid parameters.
headers:
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error:
code: UNPROCESSABLE_ENTITY
message: Invalid query parameters
documentationUrl: https://developer.folk.app/api-reference/errors#unprocessable-entity
details:
issues:
- code: too_small
minimum: 1
type: number
inclusive: true
exact: false
message: Number must be greater than or equal to 1
path:
- limit
requestId: 123e4567-e89b-12d3-a456-426614174000
timestamp: '2025-10-01T12:00:00Z'
TooManyRequests:
description: Too many requests hit the API too quickly. We recommend an exponential backoff of your requests.
headers:
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error:
code: RATE_LIMIT_EXCEEDED
message: The rate limit has been exceeded.
documentationUrl: https://developer.folk.app/api-reference/errors#rate-limiting
requestId: 123e4567-e89b-12d3-a456-426614174000
timestamp: '2025-10-01T12:00:00Z'
details:
limit: 1000
remaining: 0
retryAfter: '2025-10-01T12:00:00Z'
Unauthorized:
description: No valid API key provided.
headers:
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error:
code: UNAUTHORIZED
message: No valid API key provided.
documentationUrl: https://developer.folk.app/api-reference/errors#unauthorized
requestId: 123e4567-e89b-12d3-a456-426614174000
timestamp: '2025-10-01T12:00:00Z'
BadRequest:
description: The request was unacceptable, often due to missing an invalid parameter.
headers:
X-RateLimit-Limit:
$ref: '#/components/headers/X-RateLimit-Limit'
X-RateLimit-Remaining:
$ref: '#/components/headers/X-RateLimit-Remaining'
X-RateLimit-Reset:
$ref: '#/components/headers/X-RateLimit-Reset'
Retry-After:
$ref: '#/components/headers/Retry-After'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error:
code: INVALID_REQUEST
message: The request was invalid.
documentationUrl: https://developer.folk.app/api-reference/errors#bad-request
requestId: 123e4567-e89b-12d3-a456-426614174000
timestamp: '2025-10-0
# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/folk/refs/heads/main/openapi/folk-reminders-api-openapi.yml