Escape Users API
Users Management The public API provides CRUDs operations to manage users.
Users Management The public API provides CRUDs operations to manage users.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/escape:escape-users-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Escape Users API
version: 3.0.0
description: 'Operations tagged Users across 2 of this provider''s published API definitions: escape-openapi.json, escape-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://public.escape.tech/v3
security:
- apiKey: []
tags:
- name: Users
description: 'Users Management
The public API provides CRUDs operations to manage users.'
paths:
/me:
get:
tags:
- Users
summary: Get current user context
operationId: getMe
description: Get basic information about the authenticated user and current organization, including subscription and trial state.
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
user:
type: object
properties:
id:
type: string
format: uuid
description: The id of the current user
email:
type: string
format: email
description: The email of the current user
required:
- id
- email
organization:
type: object
properties:
id:
type: string
format: uuid
description: The id of the current organization
name:
type: string
description: The name of the current organization
mailboxId:
type: string
description: The id of the scan inbox mailbox of the current organization
paying:
type: boolean
description: Whether the organization is on a paid subscription
expiresAt:
type: string
format: date-time
description: The date and time the current subscription or trial expires
required:
- id
- name
- mailboxId
- paying
- expiresAt
required:
- user
- organization
servers:
- url: https://public.escape.tech/v3
/users:
get:
tags:
- Users
summary: List users
operationId: listUsers
description: 'List users of the organization. Filter by activation status with `deactivated`, and search by email with `search`. Pass `cursor` and `size` to page through the members: without them the whole organization is returned, as before.'
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:
- 'true'
- 'false'
example: 'true'
description: 'Filter by activation status: `true` returns only deactivated users, `false` only active ones. Omit to return both.'
required: false
description: 'Filter by activation status: `true` returns only deactivated users, `false` only active ones. Omit to return both.'
name: deactivated
in: query
- schema:
type: string
minLength: 1
description: Search users whose email contains this value
example: alice@example.com
required: false
description: Search users whose email contains this value
name: search
in: query
responses:
'200':
description: OK
headers:
X-Next-Cursor:
schema:
type: string
description: Cursor to pass as the `cursor` query parameter to fetch the next page. Absent when there is no next page.
required: false
description: Cursor to pass as the `cursor` query parameter to fetch the next page. Absent when there is no next page.
content:
application/json:
schema:
type: array
items:
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
deactivatedAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user was deactivated
firstLoginAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user first logged in
lastLoginAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user last logged in
roleBindings:
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 role bindings of the user
required:
- id
- email
- createdAt
- activatedAt
- deactivatedAt
- firstLoginAt
- lastLoginAt
- roleBindings
'400':
description: Pagination error
content:
application/json:
schema:
type: object
properties:
message:
type: string
enum:
- Invalid cursor
- Branch filters page limit reached
details:
type: string
required:
- message
- details
title: PaginationError
description: Returned when an invalid pagination cursor is supplied or when the branch filters page limit is reached
servers:
- url: https://public.escape.tech/v3
/users/invite:
post:
tags:
- Users
summary: Invite users
operationId: inviteUser
description: Invite users to the organization, and give them roles.
requestBody:
description: Body of the request to invite users
required: true
content:
application/json:
schema:
type: object
properties:
emails:
type: array
items:
type: string
format: email
description: The emails of the users to invite
bindings:
type: array
items:
type: object
properties:
roleId:
type: string
description: The role ID
example: 00000000-0000-0000-0000-000000000000
projectId:
type:
- string
- 'null'
description: An optional project ID
example: 00000000-0000-0000-0000-000000000000
required:
- roleId
description: An optional list of role bindings to create for the users
example:
- roleId: 00000000-0000-0000-0000-000000000000
projectId: 00000000-0000-0000-0000-000000000000
required:
- emails
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
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
deactivatedAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user was deactivated
firstLoginAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user first logged in
lastLoginAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user last logged in
roleBindings:
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 role bindings of the user
required:
- id
- email
- createdAt
- activatedAt
- deactivatedAt
- firstLoginAt
- lastLoginAt
- roleBindings
'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
servers:
- url: https://public.escape.tech/v3
/users/{userId}:
get:
tags:
- Users
summary: Get a user
operationId: getUser
description: Get a user by ID.
parameters:
- schema:
type: string
description: The user ID
example: 00000000-0000-0000-0000-000000000000
required: true
description: The user ID
name: userId
in: path
responses:
'200':
description: OK
content:
application/json:
schema:
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
deactivatedAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user was deactivated
firstLoginAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user first logged in
lastLoginAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user last logged in
roleBindings:
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 user
required:
- id
- email
- createdAt
- activatedAt
- deactivatedAt
- firstLoginAt
- lastLoginAt
- roleBindings
put:
tags:
- Users
summary: Deactivate or reactivate a user
operationId: updateUser
description: Deactivate or reactivate a user of the organization. Setting `deactivated` to `true` records the deactivation time, `false` clears it. Requires the ADMIN permission on the target user. The caller cannot deactivate themselves.
parameters:
- schema:
type: string
description: The user ID
example: 00000000-0000-0000-0000-000000000000
required: true
description: The user ID
name: userId
in: path
requestBody:
description: Body of the request to update a user
required: true
content:
application/json:
schema:
type: object
properties:
deactivated:
type: boolean
description: Set to `true` to deactivate the user, `false` to reactivate them
required:
- deactivated
responses:
'200':
description: OK
content:
application/json:
schema:
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
deactivatedAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user was deactivated
firstLoginAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user first logged in
lastLoginAt:
type:
- string
- 'null'
format: date-time
description: The date and time the user last logged in
roleBindings:
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 role bindings of the user
required:
- id
- email
- createdAt
- activatedAt
- deactivatedAt
- firstLoginAt
- lastLoginAt
- roleBindings
'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
servers:
- url: https://public.escape.tech/v3
components:
securitySchemes:
apiKey:
type: apiKey
in: header
name: X-ESCAPE-API-KEY
x-refined-from:
- escape-openapi.json
- escape-openapi.yml