Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

WorkOS authorization API

Authorization and access control.

WorkOS authorization API is one of 41 APIs that WorkOS publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include authorization. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, a GitHub repository, a changelog, and pricing.

This API exposes 34 operations across 20 paths, and defines 25 schemas. It is described by OpenAPI 3.1.1, at version 1.0.

Requests are made against 2 base URLs: https://api.workos.com, https://api.workos-test.com.

34 operations 20 paths 25 schemas 6 DELETE15 GET4 PATCH7 POST2 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.1.1
API Version
1.0
Base URL
https://api.workos.com
Authentication
HTTP Bearer, HTTP Bearer
Contact
License
Resource Areas
1

Authentication & Security 2

WorkOS authorization API declares 2 security schemes for authenticating requests. It accepts HTTP bearer tokens (JWT) (bearer). It accepts HTTP bearer tokens (JWT) (access_token). By default, every request must be authenticated.

  • bearer — Your WorkOS API key prefixed with sk. Pass it as a Bearer token: Authorization: Bearer skexample123456789.
  • access_token — An SSO access token returned from the Get a Profile and Token endpoint.

Paths & Operations 34

Across 20 paths, the API surfaces 34 operations — 6 DELETE, 15 GET, 4 PATCH, 7 POST, 2 PUT. Each is listed below with its method, path, parameters, and response codes.

authorization 34

Authorization and access control.

POST
/authorization/organization_memberships/{organization_membership_id}/check
Check Authorization
AuthorizationController_check 1 param body → 200403404422
GET
/authorization/organization_memberships/{organization_membership_id}/resources
List Resources for Organization Membership
AuthorizationController_listResourcesForMembership 9 params → 200400403404422
GET
/authorization/organization_memberships/{organization_membership_id}/resources/{resource_id}/permissions
List Effective Permissions for an Organization Membership on a Resource
AuthorizationController_listEffectivePermissions 6 params → 200403404422
GET
/authorization/organization_memberships/{organization_membership_id}/resources/{resource_type_slug}/{external_id}/permissions
List Effective Permissions for an Organization Membership on a Resource by External ID
AuthorizationController_listEffectivePermissionsByExternalId 7 params → 200403404422
GET
/authorization/organization_memberships/{organization_membership_id}/role_assignments
List Role Assignments
AuthorizationRoleAssignmentsController_listRoleAssignments 8 params → 200403404
POST
/authorization/organization_memberships/{organization_membership_id}/role_assignments
Assign a Role
AuthorizationRoleAssignmentsController_assignRole 1 param body → 201403404422
DELETE
/authorization/organization_memberships/{organization_membership_id}/role_assignments
Remove a Role Assignment
AuthorizationRoleAssignmentsController_removeRoleByCriteria 1 param body → 204403404422
DELETE
/authorization/organization_memberships/{organization_membership_id}/role_assignments/{role_assignment_id}
Remove a Role Assignment by ID
AuthorizationRoleAssignmentsController_removeRoleById 2 params → 204403404
POST
/authorization/organizations/{organizationId}/roles
Create a Custom Role
AuthorizationOrganizationRolesController_create 1 param body → 201400403404409422
GET
/authorization/organizations/{organizationId}/roles
List Custom Roles
AuthorizationOrganizationRolesController_list 1 param → 200403404
GET
/authorization/organizations/{organizationId}/roles/{slug}
Get a Custom Role
AuthorizationOrganizationRolesController_get 2 params → 200403404
PATCH
/authorization/organizations/{organizationId}/roles/{slug}
Update a Custom Role
AuthorizationOrganizationRolesController_update 2 params body → 200400403404422
DELETE
/authorization/organizations/{organizationId}/roles/{slug}
Delete a Custom Role
AuthorizationOrganizationRolesController_delete 2 params → 204400403404409
PUT
/authorization/organizations/{organizationId}/roles/{slug}/permissions
Set Permissions for a Custom Role
AuthorizationOrganizationRolePermissionsController_setPermissions 2 params body → 200403404422
POST
/authorization/organizations/{organizationId}/roles/{slug}/permissions
Add a Permission to a Custom Role
AuthorizationOrganizationRolePermissionsController_addPermission 2 params body → 200400403404422
DELETE
/authorization/organizations/{organizationId}/roles/{slug}/permissions/{permissionSlug}
Remove a Permission from a Custom Role
AuthorizationOrganizationRolePermissionsController_removePermission 3 params → 200403404
GET
/authorization/organizations/{organization_id}/resources/{resource_type_slug}/{external_id}
Get a Resource by External ID
AuthorizationResourcesByExternalIdController_getByExternalId 3 params → 200403404
PATCH
/authorization/organizations/{organization_id}/resources/{resource_type_slug}/{external_id}
Update a Resource by External ID
AuthorizationResourcesByExternalIdController_updateByExternalId 3 params body → 200400403404409422
DELETE
/authorization/organizations/{organization_id}/resources/{resource_type_slug}/{external_id}
Delete an Authorization Resource by External ID
AuthorizationResourcesByExternalIdController_deleteByExternalId 4 params → 204400403404409
GET
/authorization/organizations/{organization_id}/resources/{resource_type_slug}/{external_id}/organization_memberships
List Memberships for a Resource by External ID
AuthorizationResourcesByExternalIdController_listOrganizationMembershipsForResourceByExternalId 9 params → 200400403404422
GET
/authorization/organizations/{organization_id}/resources/{resource_type_slug}/{external_id}/role_assignments
List Role Assignments for a Resource by External ID
AuthorizationRoleAssignmentsController_listRoleAssignmentsForResourceByExternalId 8 params → 200403404
GET
/authorization/resources
List Resources
AuthorizationResourcesController_list 10 params → 200403422
POST
/authorization/resources
Create an Authorization Resource
AuthorizationResourcesController_create body → 201400403404409422
GET
/authorization/resources/{resource_id}
Get a Resource
AuthorizationResourcesController_findById 1 param → 200403404422
PATCH
/authorization/resources/{resource_id}
Update a Resource
AuthorizationResourcesController_update 1 param body → 200400403404409422
DELETE
/authorization/resources/{resource_id}
Delete an Authorization Resource
AuthorizationResourcesController_delete 2 params → 204400403404409
GET
/authorization/resources/{resource_id}/organization_memberships
List Organization Memberships for Resource
AuthorizationResourcesController_listOrganizationMembershipsForResource 7 params → 200400403404422
GET
/authorization/resources/{resource_id}/role_assignments
List Role Assignments for a Resource
AuthorizationRoleAssignmentsController_listRoleAssignmentsForResource 6 params → 200403404
POST
/authorization/roles
Create an Environment Role
AuthorizationRolesController_create body → 201400403404409422
GET
/authorization/roles
List Environment Roles
AuthorizationRolesController_list → 200403
GET
/authorization/roles/{slug}
Get an Environment Role
AuthorizationRolesController_get 1 param → 200403404
PATCH
/authorization/roles/{slug}
Update an Environment Role
AuthorizationRolesController_update 1 param body → 200400403404422
PUT
/authorization/roles/{slug}/permissions
Set Permissions for an Environment Role
AuthorizationRolePermissionsController_setPermissions 1 param body → 200400403404422
POST
/authorization/roles/{slug}/permissions
Add a Permission to an Environment Role
AuthorizationRolePermissionsController_addPermission 1 param body → 200400403404422

Schemas 25

The contract defines 25 schemas that model the data the API accepts and returns. The most detailed are UserlandUser (13 properties), UserlandUserOrganizationMembershipBaseWithUser (11 properties), Role (10 properties), AuthorizationResource (10 properties). Each schema is shown below with its type and property counts.

UserlandUserOrganizationMembershipBaseWithUserList
object
3 properties 3 required
AssignRoleDto
UpdateRoleDto
object
2 properties
UserlandUser
object
The user object.
13 properties 11 required
PaginationOrder
string
AuthorizationPermission
object
9 properties 9 required
RoleList
object
2 properties 2 required
UserRoleAssignment
object
7 properties 7 required
SlimRole
object
The primary role assigned to the user.
1 property 1 required
AuthorizationPermissionList
object
3 properties 3 required
UserRoleAssignmentList
object
3 properties 3 required
RemoveRoleDto
UpdateOrganizationRoleDto
object
2 properties
AuthorizationResourceList
object
3 properties 3 required
AuthorizationCheck
object
1 property 1 required
UserlandUserOrganizationMembershipBaseWithUser
object
11 properties 9 required
CreateOrganizationRoleDto
object
4 properties 1 required
CreateRoleDto
object
4 properties 2 required
Role
object
10 properties 10 required
UpdateAuthorizationResourceDto
AuthorizationResource
object
10 properties 10 required
CheckAuthorizationDto
AddRolePermissionDto
object
1 property 1 required
SetRolePermissionsDto
object
1 property 1 required
CreateAuthorizationResourceDto

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

workos-authorization-api-openapi.yml Raw ↑

Other APIs WorkOS publishes across the network.

WorkOS admin-portal API
WorkOS api_keys API
WorkOS application.client-secrets API
WorkOS applications API
WorkOS audit-logs API
WorkOS connections API
WorkOS directories API
WorkOS directory-groups API
WorkOS directory-users API
WorkOS events API
WorkOS feature-flags API
WorkOS feature-flags.targets API