Permit.io website screenshot

Permit.io

Permit.io is an authorization-as-a-service platform that helps developers build, manage, and enforce fine-grained access control in their applications. It provides a Policy Decision Point (PDP), management API, REST API, and permission query APIs for role-based, attribute-based, and relationship-based access control with support for bulk checks, data filtering, and URL-based enforcement.

1 APIs 0 Features
Access ControlAuthorizationIdentityPolicySecurity

APIs

Permit.io API

The Permit.io API (v2) is the management and authorization API for the Permit.io platform, covering members, API keys, organizations, projects, environments, resources, roles, r...

Collections

Pricing Plans

Permit Io Plans Pricing

3 plans

PLANS

Rate Limits

Permit Io Rate Limits

5 limits

RATE LIMITS

FinOps

Resources

🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
APIReference
APIReference
📝
Signup
Signup
👥
GitHubOrg
GitHubOrg
📰
Blog
Blog
💰
Pricing
Pricing
🟢
StatusPage
StatusPage

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Permit.io API
  version: 2.0.0
items:
- info:
    name: Members
    type: folder
  items:
  - info:
      name: Get the authenticated account member
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/members/me'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Gets the authenticated account member's details.
  - info:
      name: List Organization Members
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/members'
      params:
      - name: project_id
        value: ''
        type: query
      - name: env_id
        value: ''
        type: query
      - name: page
        value: ''
        type: query
        description: Page number of the results to fetch, starting at 1.
      - name: per_page
        value: ''
        type: query
        description: The number of results per page (max 100).
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 'Lists all the account members that current active account has access to, optionally filtering by project or environment.

      The active account/organization is determined by the API Key used or by the authenticated session id.'
  - info:
      name: Invite new members
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v2/members'
      params:
      - name: inviter_name
        value: ''
        type: query
      - name: inviter_email
        value: ''
        type: query
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 'Create an organization member if needed, and grant it permissions.


      The member can be specified either by ID (for an existing member), or by email (for either an existing member or a new
      one).


      For a new member, an invite will be sent.'
  - info:
      name: Remove permission
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/v2/members'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Remove permissions from a member. If the last permissions a member has are removed, the member is also deleted.
  - info:
      name: Get Organization Member
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/members/:member_id'
      params:
      - name: member_id
        value: 42f0e113-219b-4bb9-ba90-e2c904761be2
        type: path
        description: Either the unique id (UUID) of the account member, or the email address of the account member.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 'Gets a single account member by its id or email address. matching the given member,

      if no such member exists under the current active account (organization), returns 404.'
  - info:
      name: Edit members
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/v2/members/:member_id'
      params:
      - name: member_id
        value: 42f0e113-219b-4bb9-ba90-e2c904761be2
        type: path
        description: Either the unique id (UUID) of the account member, or the email address of the account member.
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Updates an account member's settings.
  - info:
      name: Remove member
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/v2/members/:member_id'
      params:
      - name: member_id
        value: 42f0e113-219b-4bb9-ba90-e2c904761be2
        type: path
        description: Either the unique id (UUID) of the account member, or the email address of the account member.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 'Deletes an account member matching the given id or email address.

      The member will be removed from the active account in permit.io.


      If the member is the only member in its account (organization), returns 400 (bad request),

      due to nobody remains with access to the account, meaning deletion of the entire account (org).

      To completely remove an account, call DELETE `/orgs/{org}`.'
- info:
    name: API Keys
    type: folder
  items:
  - info:
      name: Get Environment Api Key
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/api-key/:proj_id/:env_id'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Get Environment Api Key
  - info:
      name: Get Api Key Scope
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/api-key/scope'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Get Api Key Scope
  - info:
      name: List Api Keys
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/api-key'
      params:
      - name: object_type
        value: ''
        type: query
      - name: proj_id
        value: ''
        type: query
        description: Optional project filter by project id or key
      - name: page
        value: ''
        type: query
        description: Page number of the results to fetch, starting at 1.
      - name: per_page
        value: ''
        type: query
        description: The number of results per page (max 100).
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Lists all the api_keys under the active organization.
  - info:
      name: Create Api Key
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v2/api-key'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Creates a new api_key under the active organization.
  - info:
      name: Get Api Key
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/api-key/:api_key_id'
      params:
      - name: api_key_id
        value: 42f0e113-219b-4bb9-ba90-e2c904761ce1
        type: path
        description: The unique id of the API key
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Gets a single api_key matching the given api_key_id, if such api_key exists.
  - info:
      name: Delete Api Key
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/v2/api-key/:api_key_id'
      params:
      - name: api_key_id
        value: 42f0e113-219b-4bb9-ba90-e2c904761ce1
        type: path
        description: The unique id of the API key
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Deletes the api_key and all its related data.
  - info:
      name: Rotate API Key
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v2/api-key/:api_key_id/rotate-secret'
      params:
      - name: api_key_id
        value: 42f0e113-219b-4bb9-ba90-e2c904761ce1
        type: path
        description: The unique id of the API key
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 'Rotates the API key of the PDP container with id `pdp_id`.


      The rotation of the API key revokes the old API key and issues a new API key to the PDP.'
- info:
    name: Organizations
    type: folder
  items:
  - info:
      name: List Organizations
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/orgs'
      params:
      - name: search
        value: ''
        type: query
        description: Text search for the org name or key or id
      - name: page
        value: ''
        type: query
        description: Page number of the results to fetch, starting at 1.
      - name: per_page
        value: ''
        type: query
        description: The number of results per page (max 100).
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 'Lists all the organizations that can be accessed by the

      authenticated actor (i.e: human team member or api key).'
  - info:
      name: Create Organization
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v2/orgs'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: If you want to create org via API, reach out to us and we will add the permission to your API token
  - info:
      name: Get Organization
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/orgs/:org_id'
      params:
      - name: org_id
        value: my_organization
        type: path
        description: 'Either the unique id of the organization, or the URL-friendly key of the organization (i.e: the "slug").'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 'Gets a single organization (Permit.io account) matching the given org_id,

      if such org exists and can be accessed by the authenticated actor.'
  - info:
      name: Update Organization
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/v2/orgs/:org_id'
      params:
      - name: org_id
        value: my_organization
        type: path
        description: 'Either the unique id of the organization, or the URL-friendly key of the organization (i.e: the "slug").'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Updates the organization's profile.
  - info:
      name: Delete Organization
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/v2/orgs/:org_id'
      params:
      - name: org_id
        value: my_organization
        type: path
        description: 'Either the unique id of the organization, or the URL-friendly key of the organization (i.e: the "slug").'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Deletes an organization (Permit.io account) and all its related data.
  - info:
      name: Get Active Organization
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/orgs/active/org'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 'Gets a single organization (Permit.io account) matching the given org_id,

      if such org exists and can be accessed by the authenticated actor.'
  - info:
      name: Stats Organization
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/orgs/:org_id/stats'
      params:
      - name: org_id
        value: my_organization
        type: path
        description: 'Either the unique id of the organization, or the URL-friendly key of the organization (i.e: the "slug").'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Stats Organization
- info:
    name: Invites
    type: folder
  items:
  - info:
      name: List Organization Invites
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/orgs/:org_id/invites'
      params:
      - name: org_id
        value: my_organization
        type: path
        description: 'Either the unique id of the organization, or the URL-friendly key of the organization (i.e: the "slug").'
      - name: page
        value: ''
        type: query
        description: Page number of the results to fetch, starting at 1.
      - name: per_page
        value: ''
        type: query
        description: The number of results per page (max 100).
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Lists pending organization invites
  - info:
      name: Invite Members To Organization
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v2/orgs/:org_id/invites'
      params:
      - name: org_id
        value: my_organization
        type: path
        description: 'Either the unique id of the organization, or the URL-friendly key of the organization (i.e: the "slug").'
      - name: inviter_name
        value: ''
        type: query
      - name: inviter_email
        value: ''
        type: query
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Invite new members into the organization.
  - info:
      name: Cancel Invite
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/v2/orgs/:org_id/invites/:invite_id'
      params:
      - name: org_id
        value: my_organization
        type: path
        description: 'Either the unique id of the organization, or the URL-friendly key of the organization (i.e: the "slug").'
      - name: invite_id
        value: ''
        type: path
        description: Id of the invite to cancel
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Cancels an invite that was sent to a new member.
- info:
    name: Projects
    type: folder
  items:
  - info:
      name: List Projects
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/projects'
      params:
      - name: page
        value: ''
        type: query
        description: Page number of the results to fetch, starting at 1.
      - name: per_page
        value: ''
        type: query
        description: The number of results per page (max 100).
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Lists all the projects under the active organization.
  - info:
      name: Create Project
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v2/projects'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Creates a new project under the active organization.
  - info:
      name: Get Project
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/projects/:proj_id'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Gets a single project matching the given proj_id, if such project exists.
  - info:
      name: Update Project
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/v2/projects/:proj_id'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Updates the project.
  - info:
      name: Delete Project
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/v2/projects/:proj_id'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Deletes the project and all its related data.
- info:
    name: Environments
    type: folder
  items:
  - info:
      name: Stats Environments
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/projects/:proj_id/envs/:env_id/stats'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Stats Environments
  - info:
      name: List Environments
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/projects/:proj_id/envs'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: page
        value: ''
        type: query
        description: Page number of the results to fetch, starting at 1.
      - name: per_page
        value: ''
        type: query
        description: The number of results per page (max 100).
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Lists all the environments under a given project.
  - info:
      name: Create Environment
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v2/projects/:proj_id/envs'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Creates a new environment under a given project.
  - info:
      name: Get Environment
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/projects/:proj_id/envs/:env_id'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Gets a single environment matching the given env_id, if such environment exists.
  - info:
      name: Update Environment
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/v2/projects/:proj_id/envs/:env_id'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Updates the environment.
  - info:
      name: Delete Environment
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/v2/projects/:proj_id/envs/:env_id'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Deletes an environment and all its related data.
  - info:
      name: Copy Environment
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v2/projects/:proj_id/envs/:env_id/copy'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 'Copy environment


      This endpoint either duplicates an existing environment to a new environment

      in the same project, or copies from an existing environment to another

      existing environment.


      The `scope` object controls which objects will be copied to the target

      environment.


      To clone to a new environment, the user must have write permissions

      to the containing project. To clone into an existing environment,

      the user must have write permissions to the target environment.


      Copying environments across'
  - info:
      name: Copy Environment Async
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v2/projects/:proj_id/envs/:env_id/copy/async'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      - name: wait
        value: ''
        type: query
        description: Time in seconds to wait for the task to complete. Default is 0, means no wait.
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 'Copy environment


      This endpoint either duplicates an existing environment to a new environment

      in the same project, or copies from an existing environment to another

      existing environment.


      The `scope` object controls which objects will be copied to the target

      environment.


      To clone to a new environment, the user must have write permissions

      to the containing project. To clone into an existing environment,

      the user must have write permissions to the target environment.


      Copying environments across'
  - info:
      name: Get Copy Environment Task Result
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/projects/:proj_id/envs/:env_id/copy/async/:task_id/result'
      params:
      - name: task_id
        value: ''
        type: path
        description: The unique id of the task.
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      - name: wait
        value: ''
        type: query
        description: Time in seconds to wait for the task to complete. Default is 0, means no wait.
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Get the result of a copy environment task.
  - info:
      name: Test Jwks By Url
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v2/projects/:proj_id/envs/:env_id/test_jwks'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      - name: url
        value: ''
        type: query
        description: URL of JWKs to test
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Test Jwks Url.
- info:
    name: Bulk Operations
    type: folder
  items:
  - info:
      name: Bulk Create Or Replace Roles
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/v2/schema/:proj_id/:env_id/bulk/roles'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Create or replace roles in bulk.
  - info:
      name: Bulk Create Users
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v2/facts/:proj_id/:env_id/bulk/users'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Bulk Create Users
  - info:
      name: Bulk Replace Users
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/v2/facts/:proj_id/:env_id/bulk/users'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Bulk Replace Users
  - info:
      name: Bulk Delete Users
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/v2/facts/:proj_id/:env_id/bulk/users'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Bulk Delete Users
  - info:
      name: Bulk Create Tenants
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v2/facts/:proj_id/:env_id/bulk/tenants'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Bulk Create Tenants
  - info:
      name: Bulk Delete Tenants
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/v2/facts/:proj_id/:env_id/bulk/tenants'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Bulk Delete Tenants
  - info:
      name: Bulk Replace Resource Instances
      type: http
    http:
      method: PUT
      url: '{{baseUrl}}/v2/facts/:proj_id/:env_id/bulk/resource_instances'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 'Creates or replaces Resource Instances.

      If a resource instance with `key` and `resource` already exists,

      it will be replaced.'
  - info:
      name: Bulk Delete Resource Instances
      type: http
    http:
      method: DELETE
      url: '{{baseUrl}}/v2/facts/:proj_id/:env_id/bulk/resource_instances'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Deletes many Resource Instances.
- info:
    name: Condition Sets
    type: folder
  items:
  - info:
      name: List Condition Sets
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/schema/:proj_id/:env_id/condition_sets'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      - name: search
        value: ''
        type: query
        description: Text search for the condition sets name or key
      - name: type
        value: ''
        type: query
        description: 'if provided, will return only the condition sets of the specified type. e.g: only user sets.'
      - name: include_total_count
        value: ''
        type: query
        description: Include total count in response
      - name: page
        value: ''
        type: query
        description: Page number of the results to fetch, starting at 1.
      - name: per_page
        value: ''
        type: query
        description: The number of results per page (max 100).
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Lists all condition sets matching a filter.
  - info:
      name: Create Condition Set
      type: http
    http:
      method: POST
      url: '{{baseUrl}}/v2/schema/:proj_id/:env_id/condition_sets'
      params:
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Creates a new condition set (can be either a user set or a resource set).
  - info:
      name: Get Condition Set
      type: http
    http:
      method: GET
      url: '{{baseUrl}}/v2/schema/:proj_id/:env_id/condition_sets/:condition_set_id'
      params:
      - name: condition_set_id
        value: ''
        type: path
        description: 'Either the unique id of the condition set, or the URL-friendly key of the condition set (i.e: the "slug").'
      - name: proj_id
        value: my_project
        type: path
        description: 'Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").'
      - name: env_id
        value: my_environment
        type: path
        description: 'Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Gets a single condition set, if such condition set exists.
  - info:
      name: Update Condition Set
      type: http
    http:
      method: PATCH
      url: '{{baseUrl}}/v2/schema/:proj_id/:env_id/condition_sets/:condition_set_id'
      params:
      - name: condition_set_id
        value: ''
        type: path
        description: 'Either the unique id of the co

# --- truncated at 32 KB (247 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/permit-io/refs/heads/main/apis.yml