Escape Projects API
Projects Management The public API provides CRUDs operations to manage projects.
Projects Management The public API provides CRUDs operations to manage projects.
openapi: 3.1.0
info:
version: 3.0.0
title: Escape Public Asm Projects API
description: 'This API enables you to operate [Escape](https://escape.tech/) programmatically.
All requests must be authenticated with a valid API key, provided in the `X-ESCAPE-API-KEY` header.
For example: `X-ESCAPE-API-KEY: YOUR_API_KEY`.
You can find your API key in the [Escape dashboard](https://app.escape.tech/user/).'
servers:
- url: https://public.escape.tech/v3
security:
- apiKey: []
tags:
- name: Projects
description: 'Projects Management
The public API provides CRUDs operations to manage projects.'
paths:
/projects:
get:
tags:
- Projects
summary: List projects
operationId: listProjects
description: List and search projects of the organization.
parameters:
- schema:
type: string
description: The cursor to start the pagination from. Returned by the previous page response. If not provided, the first page will be returned.
example: R1BDOlM6NTEwMzk4NTYtNGIyOS00NTlkLTg0ZDYtMWJhYjM0NWMzZjU5
required: false
description: The cursor to start the pagination from. Returned by the previous page response. If not provided, the first page will be returned.
name: cursor
in: query
- schema:
type: integer
minimum: 1
maximum: 100
default: 50
description: The number of items to return per page
example: 50
required: false
description: The number of items to return per page
name: size
in: query
- schema:
type: string
enum:
- NAME
description: The type to sort by
required: false
description: The type to sort by
name: sortType
in: query
- schema:
type: string
enum:
- asc
- desc
default: asc
description: The direction to sort by
required: false
description: The direction to sort by
name: sortDirection
in: query
- schema:
type: string
description: Search term to filter projects by name
example: My Super Project
required: false
description: Search term to filter projects by name
name: search
in: query
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
nextCursor:
type:
- string
- 'null'
totalCount:
type: integer
default: 100
example: 20
data:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
description: The id of the project
name:
type: string
description: The name of the project
createdAt:
type: string
format: date-time
description: The date and time the project was created
bindings:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role binding
createdAt:
type: string
format: date-time
description: The date and time the role binding was created
roleId:
type: string
format: uuid
description: The id of the role bound by the role binding
projectId:
type:
- string
- 'null'
format: uuid
description: The id of the project bound by the role binding
userId:
type: string
format: uuid
description: The id of the user bound by the role binding
required:
- id
- createdAt
- roleId
- userId
description: The bindings of the project
required:
- id
- name
- createdAt
- bindings
required:
- nextCursor
- data
'400':
description: Pagination error
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Invalid cursor
details:
type: string
required:
- message
- details
title: PaginationError
description: Returned when an invalid pagination cursor is supplied
post:
tags:
- Projects
summary: Create a project
operationId: createProject
description: Create a project for the organization.
requestBody:
description: Body of the request to create a project
required: true
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: The name of the project
example: My super project
slug:
type: string
description: The slug of the project
example: my-super-project
bindings:
type: array
items:
type: object
properties:
roleId:
type: string
description: The role ID
example: 00000000-0000-0000-0000-000000000000
userId:
type: string
description: The user ID
example: 00000000-0000-0000-0000-000000000000
required:
- roleId
- userId
description: An optional list of role bindings to create for the project
example:
- roleId: 00000000-0000-0000-0000-000000000000
userId: 00000000-0000-0000-0000-000000000000
required:
- name
- slug
- bindings
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
description: The id of the project
name:
type: string
description: The name of the project
createdAt:
type: string
format: date-time
description: The date and time the project was created
bindings:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role binding
createdAt:
type: string
format: date-time
description: The date and time the role binding was created
role:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role
name:
type: string
description: The name of the role
createdAt:
type: string
format: date-time
description: The date and time the role was created
required:
- id
- name
- createdAt
project:
type: object
properties:
id:
type: string
format: uuid
description: The id of the project
name:
type: string
description: The name of the project
createdAt:
type: string
format: date-time
description: The date and time the project was created
required:
- id
- name
- createdAt
user:
type: object
properties:
id:
type: string
format: uuid
description: The id of the user
email:
type: string
format: email
description: The email of the user
createdAt:
type: string
format: date-time
description: The date and time the user was created
activatedAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user was activated
required:
- id
- email
- createdAt
- activatedAt
required:
- id
- createdAt
- role
- project
- user
description: The bindings of the project
required:
- id
- name
- createdAt
- bindings
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Bad Request
details:
type: string
required:
- message
- details
title: BadRequest
description: Returned when the request payload fails validation
'500':
description: Internal Server Error
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Internal Server Error
details:
type: string
required:
- message
- details
title: InternalServerError
description: Returned when the server fails to fulfil the request
/projects/{projectId}:
get:
tags:
- Projects
summary: Get a project
operationId: getProject
description: Get a project by ID.
parameters:
- schema:
type: string
description: The project ID
example: 00000000-0000-0000-0000-000000000000
required: true
description: The project ID
name: projectId
in: path
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
description: The id of the project
name:
type: string
description: The name of the project
createdAt:
type: string
format: date-time
description: The date and time the project was created
bindings:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role binding
createdAt:
type: string
format: date-time
description: The date and time the role binding was created
role:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role
name:
type: string
description: The name of the role
createdAt:
type: string
format: date-time
description: The date and time the role was created
required:
- id
- name
- createdAt
project:
type: object
properties:
id:
type: string
format: uuid
description: The id of the project
name:
type: string
description: The name of the project
createdAt:
type: string
format: date-time
description: The date and time the project was created
required:
- id
- name
- createdAt
user:
type: object
properties:
id:
type: string
format: uuid
description: The id of the user
email:
type: string
format: email
description: The email of the user
createdAt:
type: string
format: date-time
description: The date and time the user was created
activatedAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user was activated
required:
- id
- email
- createdAt
- activatedAt
required:
- id
- createdAt
- role
- project
- user
description: The bindings of the project
required:
- id
- name
- createdAt
- bindings
put:
tags:
- Projects
summary: Update a project
operationId: updateProject
description: Update a project.
parameters:
- schema:
type: string
description: The project ID
example: 00000000-0000-0000-0000-000000000000
required: true
description: The project ID
name: projectId
in: path
requestBody:
required: true
description: Body of the request to update a project
content:
application/json:
schema:
type: object
properties:
project:
type: object
properties:
name:
type: string
description: The name of the project
example: My updated super project
slug:
type: string
description: The slug of the project
example: my-updated-super-project
required:
- project
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
id:
type: string
format: uuid
description: The id of the project
name:
type: string
description: The name of the project
createdAt:
type: string
format: date-time
description: The date and time the project was created
bindings:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role binding
createdAt:
type: string
format: date-time
description: The date and time the role binding was created
role:
type: object
properties:
id:
type: string
format: uuid
description: The id of the role
name:
type: string
description: The name of the role
createdAt:
type: string
format: date-time
description: The date and time the role was created
required:
- id
- name
- createdAt
project:
type: object
properties:
id:
type: string
format: uuid
description: The id of the project
name:
type: string
description: The name of the project
createdAt:
type: string
format: date-time
description: The date and time the project was created
required:
- id
- name
- createdAt
user:
type: object
properties:
id:
type: string
format: uuid
description: The id of the user
email:
type: string
format: email
description: The email of the user
createdAt:
type: string
format: date-time
description: The date and time the user was created
activatedAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user was activated
required:
- id
- email
- createdAt
- activatedAt
required:
- id
- createdAt
- role
- project
- user
description: The bindings of the project
required:
- id
- name
- createdAt
- bindings
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Bad Request
details:
type: string
required:
- message
- details
title: BadRequest
description: Returned when the request payload fails validation
'500':
description: Internal Server Error
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Internal Server Error
details:
type: string
required:
- message
- details
title: InternalServerError
description: Returned when the server fails to fulfil the request
components:
securitySchemes:
apiKey:
type: apiKey
in: header
name: X-ESCAPE-API-KEY