n8n-docs/docs/api/openapi.yml
2022-05-17 13:16:06 +01:00

925 lines
27 KiB
YAML

openapi: 3.0.0
info:
title: n8n Public API
description: n8n Public API
termsOfService: 'https://n8n.io/legal/terms'
contact:
email: hello@n8n.io
license:
name: Sustainable Use License
url: 'https://github.com/n8n-io/n8n/blob/master/packages/cli/LICENSE.md'
version: v1
externalDocs:
description: n8n API documentation
url: 'https://docs.n8n.io/api/'
servers:
- url: /api/v1
tags:
- name: User
description: Operations about users
- name: Execution
description: Operations about executions
- name: Workflow
description: Operations about workflows
- name: Credential
description: Operations about credentials
- name: CredentialType
description: Operations about credential types
paths:
/credentials:
post:
x-eov-operation-id: createCredential
x-eov-operation-handler: v1/handlers/credentials/credentials.handler
tags:
- Credential
summary: Create a credential
description: Creates a credential that can be used by nodes of the specified type.
requestBody:
description: Credential to be created.
required: true
content:
application/json:
schema:
required:
- name
- type
- data
type: object
properties:
id:
type: number
readOnly: true
example: 42
name:
type: string
example: Joe's Github Credentials
type:
type: string
example: github
data:
type: object
writeOnly: true
example:
token: ada612vad6fa5df4adf5a5dsf4389adsf76da7s
createdAt:
type: string
format: date-time
readOnly: true
example: '2022-04-29T11:02:29.842Z'
updatedAt:
type: string
format: date-time
readOnly: true
example: '2022-04-29T11:02:29.842Z'
responses:
'200':
description: Operation successful.
content:
application/json:
schema:
$ref: '#/paths/~1credentials/post/requestBody/content/application~1json/schema'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'415':
description: Unsupported media type.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'/credentials/{id}':
delete:
x-eov-operation-id: deleteCredential
x-eov-operation-handler: v1/handlers/credentials/credentials.handler
tags:
- Credential
summary: Delete credential by ID
description: Deletes a credential from your instance. You must be the owner of the credentials
operationId: deleteCredential
parameters:
- name: id
in: path
description: The credential ID that needs to be deleted
required: true
schema:
type: number
responses:
'200':
description: Operation successful.
content:
application/json:
schema:
$ref: '#/paths/~1credentials/post/requestBody/content/application~1json/schema'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden. You are not allowed to delete this credential.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Credential not found
'/credentialTypes/{credentialTypeId}/schema':
get:
x-eov-operation-id: getCredentialType
x-eov-operation-handler: v1/handlers/credentialTypes/credentialTypes.handler
tags:
- CredentialType
summary: Retrieve credential type by ID
parameters:
- name: credentialTypeId
in: path
description: The credential type ID that you need to retrive
required: true
schema:
type: string
responses:
'200':
description: Operation successful.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Credential type not found
/users:
post:
x-eov-operation-id: createUser
x-eov-operation-handler: v1/handlers/users/users.handler
tags:
- User
summary: Invite a user
description: Invites a user to your instance. Only available for the instance owner.
requestBody:
description: Created user object.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/UserInformation'
required: true
responses:
'200':
description: A User object
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/UserInformation'
'401':
$ref: '#/paths/~1users/get/responses/401'
get:
x-eov-operation-id: getUsers
x-eov-operation-handler: v1/handlers/users/users.handler
tags:
- User
summary: Retrieve all users
description: Retrieve all users from your instance. Only available for the instance owner.
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Cursor'
- $ref: '#/components/parameters/includeRole'
responses:
'200':
description: Operation successful.
content:
application/json:
schema:
$ref: '#/components/schemas/UserDetailsResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/responses/NotFound/content/application~1json/schema'
'/users/{identifier}':
get:
x-eov-operation-id: getUser
x-eov-operation-handler: v1/handlers/users/users.handler
tags:
- User
summary: Get user by ID/Email
description: Retrieve a user from your instance. Only available for the instance owner.
parameters:
- $ref: '#/components/parameters/UserIdentifier'
- $ref: '#/components/parameters/includeRole'
responses:
'200':
description: Operation successful.
content:
application/json:
schema:
$ref: '#/components/schemas/UserInformation'
'401':
$ref: '#/paths/~1users/get/responses/401'
delete:
x-eov-operation-id: deleteUser
x-eov-operation-handler: v1/handlers/users/users.handler
tags:
- User
summary: Delete user by ID/Email
description: Deletes a user from your instance. Only available for the instance owner.
operationId: deleteUser
parameters:
- $ref: '#/components/parameters/UserIdentifier'
- $ref: '#/components/parameters/includeRole'
- name: transferId
in: query
description: ID of the user to transfer workflows and credentials to. Must not be equal to the to-be-deleted user.
schema:
type: string
format: identifier
responses:
'200':
description: Operation successful.
content:
application/json:
schema:
$ref: '#/components/schemas/UserInformation'
'401':
$ref: '#/paths/~1users/get/responses/401'
/executions:
get:
x-eov-operation-id: getExecutions
x-eov-operation-handler: v1/handlers/executions/executions.handler
tags:
- Execution
summary: Retrieve all executions
description: Retrieve all executions from your instance.
parameters:
- name: status
in: query
description: Status to filter the executions by.
required: false
schema:
type: string
enum:
- error
- success
- waiting
- name: workflowId
in: query
description: Workflow to filter the executions by.
required: false
schema:
type: number
example: 1000
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Cursor'
responses:
'200':
description: Operation successful.
content:
application/json:
schema:
$ref: '#/components/schemas/ExecutionDetailsResponse'
'401':
$ref: '#/paths/~1users/get/responses/401'
'404':
description: The specified resource was not found.
content:
application/json:
schema:
$ref: '#/components/responses/NotFound/content/application~1json/schema'
'/executions/{executionId}':
get:
x-eov-operation-id: getExecution
x-eov-operation-handler: v1/handlers/executions/executions.handler
tags:
- Execution
summary: Retrieve an execution
description: Retrieve an execution from you instance.
parameters:
- $ref: '#/components/parameters/ExecutionId'
responses:
'200':
description: Operation successful.
content:
application/json:
schema:
$ref: '#/components/schemas/ExecutionInformation'
'401':
$ref: '#/paths/~1users/get/responses/401'
'404':
$ref: '#/paths/~1executions/get/responses/404'
delete:
x-eov-operation-id: deleteExecution
x-eov-operation-handler: v1/handlers/executions/executions.handler
tags:
- Execution
summary: Delete an execution
description: Deletes an execution from your instance.
parameters:
- $ref: '#/components/parameters/ExecutionId'
responses:
'200':
description: Operation successful.
content:
application/json:
schema:
$ref: '#/components/schemas/ExecutionInformation'
'401':
$ref: '#/paths/~1users/get/responses/401'
'404':
$ref: '#/paths/~1executions/get/responses/404'
/workflows:
post:
x-eov-operation-id: createWorkflow
x-eov-operation-handler: v1/handlers/workflows/workflows.handler
tags:
- Workflow
summary: Create a workflow
description: Create a workflow in your instance.
requestBody:
description: Created user object.
content:
application/json:
schema:
$ref: '#/components/schemas/WorkflowInformation'
required: true
responses:
'200':
description: A User object
content:
application/json:
schema:
$ref: '#/components/schemas/WorkflowInformation'
'401':
$ref: '#/paths/~1users/get/responses/401'
get:
x-eov-operation-id: getWorkflows
x-eov-operation-handler: v1/handlers/workflows/workflows.handler
tags:
- Workflow
summary: Retrieve all workflows
description: Retrieve all workflows from your instance.
parameters:
- name: active
in: query
schema:
type: boolean
example: true
- name: tags
in: query
required: false
explode: false
schema:
type: string
example: 'test,production'
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Cursor'
responses:
'200':
description: Operation successful.
content:
application/json:
schema:
$ref: '#/components/schemas/WorkflowDetailsResponse'
'401':
$ref: '#/paths/~1users/get/responses/401'
'/workflows/{workflowId}':
get:
x-eov-operation-id: getWorkflow
x-eov-operation-handler: v1/handlers/workflows/workflows.handler
tags:
- Workflow
summary: Retrive all workflows
description: Retrieve all workflows from your instance.
parameters:
- $ref: '#/components/parameters/WorkflowId'
responses:
'200':
description: Operation successful.
content:
application/json:
schema:
$ref: '#/components/schemas/WorkflowInformation'
'401':
$ref: '#/paths/~1users/get/responses/401'
'404':
$ref: '#/paths/~1executions/get/responses/404'
delete:
x-eov-operation-id: deleteWorkflow
x-eov-operation-handler: v1/handlers/workflows/workflows.handler
tags:
- Workflow
summary: Delete a workflow
description: Deletes a workflow from your instance.
parameters:
- $ref: '#/components/parameters/WorkflowId'
responses:
'200':
description: Operation successful.
content:
application/json:
schema:
$ref: '#/components/schemas/WorkflowInformation'
'401':
$ref: '#/paths/~1users/get/responses/401'
'404':
$ref: '#/paths/~1executions/get/responses/404'
put:
x-eov-operation-id: updateWorkflow
x-eov-operation-handler: v1/handlers/workflows/workflows.handler
tags:
- Workflow
summary: Update a workflow
description: Update a workflow.
parameters:
- $ref: '#/components/parameters/WorkflowId'
requestBody:
description: Updated workflow object.
content:
application/json:
schema:
$ref: '#/components/schemas/WorkflowInformation'
required: true
responses:
'200':
description: Workflow object
content:
application/json:
schema:
$ref: '#/components/schemas/WorkflowInformation'
'401':
$ref: '#/paths/~1users/get/responses/401'
'/workflows/{workflowId}/activate':
post:
x-eov-operation-id: activateWorkflow
x-eov-operation-handler: v1/handlers/workflows/workflows.handler
tags:
- Workflow
summary: Activate a workflow
description: Active a workflow.
parameters:
- $ref: '#/components/parameters/WorkflowId'
responses:
'200':
description: Workflow object
content:
application/json:
schema:
$ref: '#/components/schemas/WorkflowInformation'
'401':
$ref: '#/paths/~1users/get/responses/401'
'/workflows/{workflowId}/deactivate':
post:
x-eov-operation-id: deactivateWorkflow
x-eov-operation-handler: v1/handlers/workflows/workflows.handler
tags:
- Workflow
summary: Deactivate a workflow
description: Deactivate a workflow.
parameters:
- $ref: '#/components/parameters/WorkflowId'
responses:
'200':
description: Workflow object
content:
application/json:
schema:
$ref: '#/components/schemas/WorkflowInformation'
'401':
$ref: '#/paths/~1users/get/responses/401'
components:
schemas:
Error:
required:
- code
- description
- message
type: object
properties:
code:
type: string
message:
type: string
description:
type: string
ExecutionInformation:
type: object
properties:
id:
type: number
example: 1000
data:
type: string
finished:
type: boolean
example: true
mode:
type: string
enum:
- cli
- error
- integrated
- internal
- manual
- retry
- trigger
- webhook
retryOf:
type: string
nullable: true
retrySuccessId:
type: string
nullable: true
example: 2
startedAt:
type: string
format: date-time
stoppedAt:
type: string
format: date-time
workflowId:
type: string
example: 1000
waitTill:
type: string
nullable: true
format: date-time
NodeInformation:
type: object
additionalProperties: false
properties:
name:
type: string
example: Jira
type:
type: string
example: n8n-nodes-base.Jira
typeVersion:
type: number
example: 1
position:
type: array
items:
type: number
example:
- -100
- 80
parameters:
type: object
example:
additionalProperties: {}
credentials:
type: object
example:
jiraSoftwareCloudApi:
id: '35'
name: jiraApi
createdAt:
type: string
format: date-time
readOnly: true
updatedAt:
type: string
format: date-time
readOnly: true
RoleInformation:
readOnly: true
type: object
properties:
id:
type: number
readOnly: true
example: 1
name:
type: string
example: owner
readOnly: true
scope:
type: string
readOnly: true
example: global
createdAt:
type: string
description: Time the role was created.
format: date-time
readOnly: true
updatedAt:
type: string
description: Last time the role was updaded.
format: date-time
readOnly: true
TagInformation:
type: object
properties:
id:
type: string
example: 12
name:
type: string
example: Production
createdAt:
type: string
format: date-time
readOnly: true
updatedAt:
type: string
format: date-time
readOnly: true
UserInformation:
required:
- email
type: object
properties:
id:
type: string
readOnly: true
example: 123e4567-e89b-12d3-a456-426614174000
email:
type: string
format: email
example: john.doe@company.com
firstName:
maxLength: 32
type: string
description: User's first name
readOnly: true
example: john
lastName:
maxLength: 32
type: string
description: User's last name
readOnly: true
example: Doe
isPending:
type: boolean
description: Whether the user finished setting up their account in response to the invitation (true) or not (false).
readOnly: true
createdAt:
type: string
description: Time the user was created.
format: date-time
readOnly: true
updatedAt:
type: string
description: Last time the user was updated.
format: date-time
readOnly: true
globalRole:
$ref: '#/components/schemas/RoleInformation'
WorkflowInformation:
type: object
required:
- name
- nodes
- connections
- settings
properties:
id:
type: number
readOnly: true
example: 1
name:
type: string
example: Workflow 1
active:
type: boolean
readOnly: true
createdAt:
type: string
format: date-time
readOnly: true
updatedAt:
type: string
format: date-time
readOnly: true
nodes:
type: array
items:
$ref: '#/components/schemas/NodeInformation'
connections:
type: object
example:
main:
- node: Jira
type: main
index: 0
settings:
$ref: '#/components/schemas/WorkflowSettingInformation'
staticData:
type: string
nullable: true
example: '{ iterationId: 2 }'
tags:
type: array
items:
type: object
properties:
id:
type: string
example: 12
name:
type: string
example: Production
createdAt:
type: string
format: date-time
readOnly: true
updatedAt:
type: string
format: date-time
readOnly: true
readOnly: true
WorkflowSettingInformation:
type: object
additionalProperties: false
properties:
saveExecutionProgress:
type: boolean
saveManualExecutions:
type: boolean
saveDataErrorExecution:
type: string
enum:
- all
- none
saveDataSuccessExecution:
type: string
enum:
- all
- none
executionTimeout:
type: number
example: 3600
maxLength: 3600
errorWorkflow:
type: string
example: 10
description: The ID of the workflow that contains the error trigger node.
timezone:
type: string
example: America/New_York
UserDetailsResponse:
type: object
properties:
data:
type: array
items:
required:
- email
type: object
properties:
id:
type: string
readOnly: true
example: 123e4567-e89b-12d3-a456-426614174000
email:
type: string
format: email
example: john.doe@company.com
firstName:
maxLength: 32
type: string
description: User's first name
readOnly: true
example: john
lastName:
maxLength: 32
type: string
description: User's last name
readOnly: true
example: Doe
isPending:
type: boolean
description: Whether the user finished setting up their account in response to the invitation (true) or not (false).
readOnly: true
createdAt:
type: string
description: Time the user was created.
format: date-time
readOnly: true
updatedAt:
type: string
description: Last time the user was updated.
format: date-time
readOnly: true
globalRole:
$ref: '#/components/schemas/RoleInformation'
nextCursor:
type: string
description: Paginate through users by setting the cursor parameter to a nextCursor attribute returned by a previous request. Default value fetches the first "page" of the collection.
nullable: true
example: MTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDA
ExecutionDetailsResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ExecutionInformation'
nextCursor:
type: string
description: Paginate through executions by setting the cursor parameter to a nextCursor attribute returned by a previous request. Default value fetches the first "page" of the collection.
nullable: true
example: MTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDA
WorkflowDetailsResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/WorkflowInformation'
nextCursor:
type: string
description: Paginate through workflows by setting the cursor parameter to a nextCursor attribute returned by a previous request. Default value fetches the first "page" of the collection.
nullable: true
example: MTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDA
responses:
NotFound:
description: The specified resource was not found.
content:
application/json:
schema:
required:
- code
- description
- message
type: object
properties:
code:
type: string
message:
type: string
description:
type: string
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/responses/NotFound/content/application~1json/schema'
parameters:
UserIdentifier:
name: identifier
in: path
description: The ID or email of the user.
required: true
schema:
type: string
format: identifier
Cursor:
name: cursor
in: query
description: Paginate through users by setting the cursor parameter to a nextCursor attribute returned by a previous request's response. Default value fetches the first "page" of the collection. See pagination for more detail.
required: false
style: form
schema:
type: string
example: MTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDA
includeRole:
name: includeRole
in: query
required: false
schema:
type: boolean
example: true
Limit:
name: limit
in: query
description: The maximum number of items to return.
required: false
schema:
type: number
example: 100
default: 100
ExecutionId:
name: executionId
in: path
description: The ID of the execution.
required: true
schema:
type: number
WorkflowId:
name: workflowId
in: path
description: The ID of the workflow.
required: true
schema:
type: number
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-N8N-API-KEY
security:
- ApiKeyAuth: []