Reclaim.ai integration API
The integration API from Reclaim.ai — 42 operation(s) for integration.
The integration API from Reclaim.ai — 42 operation(s) for integration.
openapi: 3.0.1
info:
title: Reclaim account-time-schemes integration API
description: Reclaim's awesome API
contact:
name: Reclaim.ai Inc.
url: http://reclaim.ai
email: info@reclaim.ai
license:
name: Reclaim 9.9
url: http://reclaim.ai
version: '0.1'
tags:
- name: integration
paths:
/api/asana/integrations:
get:
tags:
- integration
operationId: integrations
responses:
'200':
description: integrations 200 response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AsanaIntegration'
security:
- Authorization: []
delete:
tags:
- integration
operationId: deleteIntegration
responses:
'200':
description: deleteIntegration 200 response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AsanaIntegration'
security:
- Authorization: []
patch:
tags:
- integration
operationId: integrations_1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AsanaIntegrationPatch'
required: true
responses:
'200':
description: integrations_1 200 response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AsanaIntegration'
security:
- Authorization: []
/api/clickup/integrations:
get:
tags:
- integration
operationId: integrations_2
responses:
'200':
description: integrations_2 200 response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ClickUpIntegration'
deprecated: true
security:
- Authorization: []
delete:
tags:
- integration
operationId: deleteIntegration_1
responses:
'200':
description: deleteIntegration_1 200 response
content:
application/json:
schema:
type: object
security:
- Authorization: []
/api/clickup/integrations/details:
get:
tags:
- integration
operationId: clickUpIntegrationsDetails
responses:
'200':
description: clickUpIntegrationsDetails 200 response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ClickUpIntegrationDetails'
security:
- Authorization: []
/api/clickup/integrations/settings/{workspaceId}:
patch:
tags:
- integration
operationId: patchIntegration
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ClickUpIntegrationPatch'
required: true
responses:
'200':
description: patchIntegration 200 response
content:
application/json:
schema:
type: object
security:
- Authorization: []
/api/clickup/integrations/{workspaceId}:
patch:
tags:
- integration
operationId: patchIntegration_1
parameters:
- name: workspaceId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeprecatedClickUpIntegrationPatch'
required: true
responses:
'200':
description: patchIntegration_1 200 response
content:
application/json:
schema:
type: object
deprecated: true
security:
- Authorization: []
/api/google-add-on/add-html-to-email:
post:
tags:
- integration
operationId: addHtmlToEmail
requestBody:
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/AddOnInsertableState'
- properties:
user:
$ref: '#/components/schemas/User'
required: true
responses:
'200':
description: addHtmlToEmail 200 response
content:
application/json:
schema:
type: string
security:
- Authorization: []
/api/google-add-on/integrations:
get:
tags:
- integration
operationId: integrations_3
responses:
'200':
description: integrations_3 200 response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/GoogleAddOnSettings'
security:
- Authorization: []
/api/integrations/enabled:
get:
tags:
- integration
operationId: enabled
responses:
'200':
description: enabled 200 response
content:
application/json:
schema:
$ref: '#/components/schemas/IntegrationStatus'
security:
- Authorization: []
/api/jira-v2/sites:
get:
tags:
- integration
operationId: sites
responses:
'200':
description: sites 200 response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/JiraV2IntegrationView'
security:
- Authorization: []
/api/jira-v2/sites/{id}:
delete:
tags:
- integration
operationId: deleteSite
parameters:
- name: id
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
description: deleteSite 200 response
content:
application/json:
schema:
type: object
security:
- Authorization: []
/api/jira/integrations:
get:
tags:
- integration
operationId: integrations_4
responses:
'200':
description: integrations_4 200 response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/JiraIntegration'
security:
- Authorization: []
/api/jira/integrations/{id}:
delete:
tags:
- integration
operationId: deleteIntegration_2
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: deleteIntegration_2 200 response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/JiraIntegration'
security:
- Authorization: []
patch:
tags:
- integration
operationId: patchIntegration_2
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/JiraIntegrationPatch'
required: true
responses:
'200':
description: patchIntegration_2 200 response
content:
application/json:
schema:
type: object
security:
- Authorization: []
/api/linear/integrations:
get:
tags:
- integration
operationId: integrations_5
responses:
'200':
description: integrations_5 200 response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/LinearIntegration'
security:
- Authorization: []
/api/linear/integrations/{id}:
delete:
tags:
- integration
operationId: deleteIntegration_3
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: deleteIntegration_3 200 response
content:
application/json:
schema:
type: object
security:
- Authorization: []
patch:
tags:
- integration
operationId: patchIntegration_3
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LinearIntegrationPatch'
required: true
responses:
'200':
description: patchIntegration_3 200 response
content:
application/json:
schema:
type: object
security:
- Authorization: []
/api/linear/issue/{id}:
get:
tags:
- integration
operationId: issueDetails
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: issueDetails 200 response
content:
application/json:
schema:
$ref: '#/components/schemas/LinearTaskDetails'
/api/notion/workspaces:
get:
tags:
- integration
operationId: notionIntegrations
responses:
'200':
description: notionIntegrations 200 response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NotionIntegrationView'
security:
- Authorization: []
/api/notion/workspaces/{id}:
delete:
tags:
- integration
operationId: deleteNotionWorkspace
parameters:
- name: id
in: path
required: true
schema:
type: integer
format: int64
responses:
'200':
description: deleteNotionWorkspace 200 response
content:
application/json:
schema:
type: object
security:
- Authorization: []
/api/partnerstack/partners/repair-customers:
post:
tags:
- integration
operationId: repairCustomers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RepairCustomersRequest'
required: true
responses:
'200':
description: repairCustomers 200 response
content:
application/json:
schema:
$ref: '#/components/schemas/AnonymousPartner'
security:
- Authorization: []
/api/slack/action-endpoint:
post:
tags:
- integration
operationId: actionEndpoint
responses:
'200':
description: OK response
content:
application/json:
schema:
nullable: true
/api/slack/add:
get:
tags:
- integration
operationId: slackRedirect
parameters:
- name: scope
in: query
schema:
type: string
nullable: true
- name: bot
in: query
schema:
type: string
nullable: true
- name: userScopes
in: query
schema:
type: string
nullable: true
- name: teamId
in: query
schema:
type: string
nullable: true
responses:
'200':
description: OK response
content:
application/json:
schema:
nullable: true
/api/slack/command:
post:
tags:
- integration
operationId: command
responses:
'200':
description: OK response
content:
application/json:
schema:
nullable: true
/api/slack/connect:
get:
tags:
- integration
operationId: connect
parameters:
- name: code
in: query
schema:
type: string
nullable: true
- name: error
in: query
schema:
type: string
nullable: true
- name: state
in: query
schema:
type: string
nullable: true
responses:
'200':
description: OK response
content:
application/json:
schema:
nullable: true
/api/slack/integrations:
get:
tags:
- integration
operationId: get_4
responses:
'200':
description: get_4 200 response
content:
application/json:
schema:
$ref: '#/components/schemas/SlackSettingsView'
security:
- Authorization: []
put:
tags:
- integration
operationId: put
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SlackSettingsView'
required: true
responses:
'200':
description: put 200 response
content:
application/json:
schema:
$ref: '#/components/schemas/SlackSettingsView'
security:
- Authorization: []
/api/slack/interactive-endpoint:
post:
tags:
- integration
operationId: interactiveEndpoint
responses:
'200':
description: OK response
content:
application/json:
schema:
nullable: true
/api/slack/link:
post:
tags:
- integration
operationId: link
parameters:
- name: teamId
in: query
required: true
schema:
type: string
- name: userId
in: query
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
user:
$ref: '#/components/schemas/User'
required: true
responses:
'200':
description: OK response
content:
application/json:
schema:
nullable: true
security:
- Authorization: []
/api/slack/options-load-endpoint:
post:
tags:
- integration
operationId: optionsLoadEndpoint
requestBody:
content:
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OptionsLoadEndpointRequest'
required: true
responses:
'200':
description: OK response
content:
application/json:
schema:
nullable: true
/api/slack/streamlined-connect:
get:
tags:
- integration
operationId: streamlinedConnect
parameters:
- name: code
in: query
schema:
type: string
nullable: true
- name: error
in: query
schema:
type: string
nullable: true
- name: state
in: query
schema:
type: string
nullable: true
responses:
'200':
description: OK response
content:
application/json:
schema:
nullable: true
/api/slack/streamlined-init:
get:
tags:
- integration
operationId: streamLinedRedirect
parameters:
- name: slackTeamId
in: query
schema:
type: string
nullable: true
- name: slackUserId
in: query
schema:
type: string
nullable: true
responses:
'200':
description: OK response
content:
application/json:
schema:
nullable: true
/api/todoist/integrations:
get:
tags:
- integration
operationId: integrations_6
responses:
'200':
description: integrations_6 200 response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TodoistIntegration'
deprecated: true
security:
- Authorization: []
/api/todoist/integrations/details:
get:
tags:
- integration
operationId: integrationsDetails
responses:
'200':
description: integrationsDetails 200 response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TodoistIntegrationDetails'
security:
- Authorization: []
/api/todoist/integrations/settings/{id}:
patch:
tags:
- integration
operationId: patchIntegrationSettings
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TodoistIntegrationPatch'
required: true
responses:
'200':
description: patchIntegrationSettings 200 response
content:
application/json:
schema:
type: object
security:
- Authorization: []
/api/todoist/integrations/{id}:
delete:
tags:
- integration
operationId: deleteIntegration_4
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: deleteIntegration_4 200 response
content:
application/json:
schema:
type: object
security:
- Authorization: []
patch:
tags:
- integration
operationId: patchIntegration_4
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TodoistIntegrationPatch'
required: true
responses:
'200':
description: patchIntegration_4 200 response
content:
application/json:
schema:
type: object
deprecated: true
security:
- Authorization: []
/api/todoist/sync:
post:
tags:
- integration
summary: Initiate a Todoist sync job.
description: Initiate a Todoist sync job. Used by support (hence the private tag) for customers when debugging issues.
operationId: syncTasks
responses:
'200':
description: syncTasks 200 response
security:
- Authorization: []
/web/asana/formfieldchange:
post:
tags:
- integration
operationId: fieldChangeCallback
responses:
'200':
description: fieldChangeCallback 200 response
content:
application/json:
schema:
type: object
options:
tags:
- integration
operationId: fieldChangeCallbackPreflight
responses:
'200':
description: fieldChangeCallbackPreflight 200 response
content:
application/json:
schema:
type: object
/web/asana/formsubmit:
post:
tags:
- integration
summary: Called on-submit of the "schedule via reclaim" widget.
description: Called on-submit of the "schedule via reclaim" widget.
operationId: formCallback
parameters:
- name: x-asana-request-signature
in: header
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AsanaSyncFormSubmission'
required: true
responses:
'200':
description: formCallback 200 response
content:
application/json:
schema:
$ref: '#/components/schemas/AsanaAttachedResource'
options:
tags:
- integration
operationId: formCallbackPreflight
responses:
'200':
description: formCallbackPreflight 200 response
content:
application/json:
schema:
type: object
/web/asana/syncform:
get:
tags:
- integration
summary: Called on-render of a task inside of Asana for tasks that have already been associated with / scheduled in Reclaim.
description: Called on-render of a task inside of Asana for tasks that have already been associated with / scheduled in Reclaim.
operationId: syncForm
parameters:
- name: x-asana-request-signature
in: header
required: true
schema:
type: string
- name: workspace
in: query
required: true
schema:
type: string
- name: task
in: query
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
- name: expires_at
in: query
schema:
type: string
nullable: true
responses:
'200':
description: syncForm 200 response
content:
application/json:
schema:
$ref: '#/components/schemas/AsanaFormMetadata'
options:
tags:
- integration
operationId: syncFormPreflight
responses:
'200':
description: syncFormPreflight 200 response
content:
application/json:
schema:
type: object
/web/asana/task/{asanaTaskId}:
get:
tags:
- integration
operationId: taskDetails
parameters:
- name: asanaTaskId
in: path
required: true
schema:
type: string
responses:
'200':
description: taskDetails 200 response
content:
application/json:
schema:
type: object
options:
tags:
- integration
operationId: taskDetailsPreflight
parameters:
- name: asanaTaskId
in: path
required: true
schema:
type: string
responses:
'200':
description: taskDetailsPreflight 200 response
content:
application/json:
schema:
type: object
/web/asana/widget:
get:
tags:
- integration
summary: Called on-render of a task inside of Asana for tasks that have NOT already been associated with / scheduled in Reclaim.
description: Called on-render of a task inside of Asana for tasks that have NOT already been associated with / scheduled in Reclaim.
operationId: widget
parameters:
- name: x-asana-request-signature
in: header
required: true
schema:
type: string
- name: workspace
in: query
required: true
schema:
type: string
- name: task
in: query
required: true
schema:
type: string
- name: user
in: query
required: true
schema:
type: string
- name: attachment
in: query
required: true
schema:
type: string
- name: expires_at
in: query
schema:
type: string
nullable: true
responses:
'200':
description: widget 200 response
content:
application/json:
schema:
$ref: '#/components/schemas/AsanaWidgetMetadata'
options:
tags:
- integration
operationId: widgetPreflight
responses:
'200':
description: widgetPreflight 200 response
content:
application/json:
schema:
type: object
/web/clickup/task/{taskId}:
get:
tags:
- integration
operationId: taskDetails_1
parameters:
- name: taskId
in: path
required: true
schema:
type: string
responses:
'200':
description: taskDetails_1 200 response
content:
application/json:
schema:
type: object
/web/jira/task/{issueKey}/{issueId}:
get:
tags:
- integration
operationId: taskDetails_2
parameters:
- name: issueKey
in: path
required: true
schema:
type: string
- name: issueId
in: path
required: true
schema:
type: string
responses:
'200':
description: taskDetails_2 200 response
content:
application/json:
schema:
type: object
/web/linear/task/{id}:
get:
tags:
- integration
operationId: taskDetails_3
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: taskDetails_3 200 response
content:
application/json:
schema:
$ref: '#/components/schemas/LinearTaskDetails'
/web/todoist/task/{itemId}:
get:
tags:
- integration
operationId: taskDetails_4
parameters:
- name: itemId
in: path
required: true
schema:
type: string
responses:
'200':
description: taskDetails_4 200 response
content:
application/json:
schema:
type: object
components:
schemas:
DefaultRsvpAvailability:
type: object
properties:
treatNeedsActionRsvpAs:
$ref: '#/components/schemas/AvailabilityType'
SchedulingWindowWeeks:
type: string
enum:
- ONE
- TWO
- THREE
- FOUR
- FIVE
- SIX
- SEVEN
- EIGHT
- NINE
- TEN
- ELEVEN
- TWELVE
ImmutableList_TodoistProject_:
type: object
allOf:
- $ref: '#/components/schemas/ImmutableCollection_TodoistProject_'
- $ref: '#/components/schemas/AbstractCollection_TodoistProject_'
- properties:
empty:
type: boolean
first:
$ref: '#/components/schemas/TodoistProject'
last:
$ref: '#/components/schemas/TodoistProject'
WebhookSettings:
type: object
properties:
enabled:
type: boolean
all:
$ref: '#/components/schemas/WebhookSettings'
AsanaWidgetField:
type: object
properties:
name:
type: string
type:
$ref: '#/components/schemas/AsanaWidgetFieldType'
datetime:
type: string
format: date-time
nullable: true
icon_url:
type: string
format: uri
nullable: true
color:
nullable: true
allOf:
- $ref: '#/components/schemas/AsanaWidgetPillColor'
text:
type: string
nullable: true
withName:
type: string
withType:
$ref: '#/components/schemas/AsanaWidgetFieldType'
withDatetime:
type: string
format: date-time
withIcon_url:
type: string
format: uri
withColor:
$ref: '#/components/schemas/AsanaWidgetPillColor'
withText:
type: string
equals: {}
hashCode:
type: integer
format: int32
toString:
type: string
CalendarSlackSettingsView:
required:
- calendarId
- setting
type: object
properties:
calendarId:
type: integer
format: int64
setting:
$ref: '#/components/schemas/NotificationSetting'
AbstractCollection_AsanaProject_:
type: object
properties:
empty:
type: boolean
UserInterests:
type: object
properties:
tasks:
type: boolean
priorities:
type: boolean
office365:
type: boolean
calendar:
type: boolean
asana:
type: boolean
trello:
type: boolean
todoist:
type: boolean
jira:
type: boolean
linear:
type: boolean
clickup:
type: boolean
monday:
type: boolean
MSTeams:
type: boolean
AbstractCollection_TodoistLabel_:
type: object
properties:
empty:
type: boolean
AvailabilitySettings:
type: object
properties:
redisCacheEnabled:
type: boolean
IntegrationStatus:
type: object
properties:
ASANA:
type: boolean
ASANA_MCP:
type: boolean
CLICKUP:
type: boolean
clickUpMcp:
type: boolean
JIRA:
type: boolean
LINEAR:
type: boolean
TODOIST:
type: boolean
ZOOM:
type: boolean
ADD_ON:
type: boolean
SLACK:
type: boolean
GOOGLE_TASKS:
type: boolean
DROPBOX:
type: boolean
NOTION:
type: boolean
JIRA_V2:
type: boolean
CLICKUP_MCP:
type: boolean
slackIntegrationDetails:
$ref: '#/components/schemas/SlackIntegrationDetails'
AbstractCollection_JiraProject_:
type: object
properties:
empty:
type: boolean
ClickUpStatusType:
type: string
enum:
- open
- done
- closed
- custom
- unstarted
- active
x-enum-varnames:
- open
- done
- closed
- custom
- unstarted
- active
UserProfileDepartment:
type: string
enum:
- PRODUCT
- ENGINEERING
- SUPPORT
- MARKETING
- SALES
- DESIGN
- HR
- OPERATIONS
- ACCOUNTING_AND_FINANCE
- FOUNDER
- EXECUTIVE_ASSISTANT
- IT_SECURITY
- OTHER
x-deprecated:
- OTHER
LinearState:
type: object
properties:
id:
type: string
name:
type: string
description:
type: string
nullable: true
color:
type: string
type:
$ref: '#/components/schemas/LinearWorkflowStateType'
position:
type: number
format: float
withId:
type: string
withName:
type: string
withDescription:
type: string
nullable: true
withColor:
type: string
withType:
$ref: '#/components/schemas/LinearWorkflowStateType'
withPosition:
type: number
format: float
equals: {}
hashCode:
type: integer
format: int32
toString:
type: string
ImmutableCollection_ClickUpSpace_:
type: object
allOf:
- $ref: '#/components/schemas/AbstractCollection_ClickUpSpace_'
- properties:
empty:
type: boolean
partialView:
type: boolean
AsanaFormFieldType:
type: string
enum:
- single_line_text
- rich_text
- typeahead
- checkboxes
- radio_button
- date
- datetime
- static_text
- dropdown
x-enum-varnames:
- single_line_text
- rich_
# --- truncated at 32 KB (108 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/reclaim-ai/refs/heads/main/openapi/reclaim-ai-integration-api-openapi.yml