Border0 Organization API

The Organization API from Border0 — 4 operation(s) for organization.

Operations 6

DELETE /organization/identity_provider/{name} Remove a custom identity provider from the current organization #
GET /organization/identity_provider/{name} Get a custom identity provider for the current organization #
GET /organization/identity_providers List all identity providers for the current organization #
PATCH /organization/identity_provider Update a custom identity provider in the current organization #
POST /organization/identity_provider Add a custom identity provider to the current organization #
PUT /organization/identity_provider_status Toggle the status (enable/disable) of an identity provider in the current organization #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/border0-organization-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API 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 Specification

border0-organization-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Border0 Audit Actions Organization API
  description: Border0 is an identity-aware Zero Trust network access platform for securing access to servers, databases, Kubernetes clusters, and internal web services. This REST API manages sockets (protected services), policies, connectors, organizations, identity providers, service accounts, sessions, and audit logs.
  version: '1.0'
  contact:
    name: Border0 Support
    email: support@border0.com
    url: https://docs.border0.com
servers:
- url: https://api.border0.com/api/v1
tags:
- name: Organization
paths:
  /organization/identity_provider/{name}:
    delete:
      security:
      - Border0_Token: []
      summary: Remove a custom identity provider from the current organization
      parameters:
      - description: Identity provider name
        name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: delete_organization-identity-provider-name
      tags:
      - Organization
    get:
      security:
      - Border0_Token: []
      summary: Get a custom identity provider for the current organization
      parameters:
      - description: Identity provider name
        name: name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.getIdentityProviderResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: get_organization-identity-provider-name
      tags:
      - Organization
  /organization/identity_providers:
    get:
      security:
      - Border0_Token: []
      summary: List all identity providers for the current organization
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.getIdentityProvidersResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: get_organization-identity-providers
      tags:
      - Organization
  /organization/identity_provider:
    patch:
      security:
      - Border0_Token: []
      summary: Update a custom identity provider in the current organization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.patchIdentityProviderRequest'
        description: Identity provider configuration
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: patch_organization-identity-provider
      tags:
      - Organization
    post:
      security:
      - Border0_Token: []
      summary: Add a custom identity provider to the current organization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.postIdentityProviderRequest'
        description: Identity provider configuration
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.postIdentityProviderResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '412':
          description: Precondition Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: post_organization-identity-provider
      tags:
      - Organization
  /organization/identity_provider_status:
    put:
      security:
      - Border0_Token: []
      summary: Toggle the status (enable/disable) of an identity provider in the current organization
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1.putIdentityProviderStatusRequest'
        description: Identity provider status configuration
        required: true
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v1.BaseErrorResponse'
      operationId: put_organization-identity-provider-status
      tags:
      - Organization
components:
  schemas:
    models.SAMLIdentityProviderConfig:
      type: object
      properties:
        request_protocol_binding:
          description: 'The protocol to use for SAML assertion request binding, one of [ "HTTP-POST", "HTTP-Redirect" ].

            Note that the value of this field is shorthand, full value is of the form:

            "urn:oasis:names:tc:SAML:2.0:bindings:{REQUEST_PROTOCOL_BINDING_SHORTHAND}"'
          type: string
        request_signing_algorithm:
          description: Algorithm to use for assertion request signing, one of [ "rsa-sha256", "rsa-sha1" ].
          type: string
        request_signing_digest_algorithm:
          description: Algorithm to use for the assertion request signing digest (hash), one of [ "sha256", "sha1" ].
          type: string
        request_signing_enabled:
          description: Whether to have the SAML assertion consumer (border0) sign the assertion request.
          type: boolean
        request_template:
          description: "The template for the SAML assertion request. It may include any/all/none of the following parameters:\n- \"@@AssertServiceURLAndDestination@@\"\n- \"@@ID@@\"\n- \"@@IssueInstant@@\"\n- \"@@ProtocolBinding@@\"\n- \"@@Issuer@@\"\n\nExample Template (ignore the dashes '-'):\n--------------------------------------------------------------------------------------------\n<samlp:AuthnRequest xmlns:samlp=\"urn:oasis:names:tc:SAML:2.0:protocol\"\n@@AssertServiceURLAndDestination@@\n    ID=\"@@ID@@\"\n    IssueInstant=\"@@IssueInstant@@\"\n    ProtocolBinding=\"@@ProtocolBinding@@\" Version=\"2.0\">\n    <saml:Issuer xmlns:saml=\"urn:oasis:names:tc:SAML:2.0:assertion\">@@Issuer@@</saml:Issuer>\n</samlp:AuthnRequest>\n--------------------------------------------------------------------------------------------"
          type: string
        sign_in_url:
          description: The SAML provider's sign-in URL (where users are redirected to)
          type: string
        signing_certificate:
          description: 'The x509 certificate (public key) corresponding to the SAML provider''s

            assertion signing (private) key.'
          type: string
    models.IdentityProvider:
      type: object
      properties:
        display_name:
          type: string
        enabled:
          type: boolean
        google_workspace_configuration:
          $ref: '#/components/schemas/models.GoogleWorkspaceIdentityProviderConfig'
        logo_url:
          type: string
        name:
          type: string
        oidc_configuration:
          $ref: '#/components/schemas/models.OpenIDConnectIdentityProviderConfig'
        okta_workforce_configuration:
          $ref: '#/components/schemas/models.OktaWorksforceIdentityProviderConfig'
        saml_configuration:
          $ref: '#/components/schemas/models.SAMLIdentityProviderConfig'
        type:
          type: string
    v1.postOktaWorkforceIdentityProviderResponse:
      type: object
      properties:
        must_allow_redirect_url:
          type: string
    v1.postOpenIDConnectIdentityProviderResponse:
      type: object
      properties:
        must_allow_redirect_url:
          type: string
    models.OktaWorksforceIdentityProviderConfig:
      type: object
      properties:
        client_id:
          description: 'An identifier which uniquely identifies border0 as a client

            of the Okta Workforce account. You get this and the client

            secret when you create an "App Integration" in Okta.'
          type: string
        client_secret:
          description: Secret to authenticate with Okta.
          type: string
        okta_domain:
          description: Okta domain for Okta Workforce account e.g. mydomain.okta.com
          type: string
    v1.getIdentityProviderResponse:
      type: object
      properties:
        display_name:
          type: string
        enabled:
          type: boolean
        google_workspace_configuration:
          $ref: '#/components/schemas/models.GoogleWorkspaceIdentityProviderConfig'
        logo_url:
          type: string
        name:
          type: string
        oidc_configuration:
          $ref: '#/components/schemas/models.OpenIDConnectIdentityProviderConfig'
        okta_workforce_configuration:
          $ref: '#/components/schemas/models.OktaWorksforceIdentityProviderConfig'
        saml_configuration:
          $ref: '#/components/schemas/models.SAMLIdentityProviderConfig'
        type:
          type: string
    v1.BaseErrorResponse:
      type: object
      properties:
        error_message:
          type: string
        status_code:
          type: integer
    v1.postSAMLIdentityProviderResponse:
      type: object
      properties:
        must_allow_redirect_url:
          type: string
        request_signing_certificate_url:
          type: string
    models.OpenIDConnectIdentityProviderConfig:
      type: object
      properties:
        client_id:
          description: 'An identifier which uniquely identifies border0 as a client

            of the OpenID Connect provider.'
          type: string
        client_secret:
          description: 'A per-client secret generated by the identity provider.

            It is used by the client to exchange OAuth2.0 auth codes

            for ID Tokens issued by the identity provider.'
          type: string
        discovery_url:
          description: URL of the discovery document of the OpenID Connect provider.
          type: string
        oidc_flow_type:
          description: 'FlowType determines the way in which the oidc provider

            will transmit ID Tokens to border0''s IDP.

            Front Channel will use OIDC protocol with response_mode=form_post and response_type=id_token.

            Back Channel will use response_type=code.

            See https://darutk.medium.com/diagrams-of-all-the-openid-connect-flows-6968e3990660 for more.'
          type: string
    v1.putIdentityProviderStatusRequest:
      type: object
      required:
      - name
      properties:
        enable:
          type: boolean
        global:
          type: boolean
        name:
          type: string
    v1.getIdentityProvidersResponse:
      type: object
      properties:
        list:
          type: array
          items:
            $ref: '#/components/schemas/models.IdentityProvider'
    v1.postIdentityProviderResponse:
      type: object
      properties:
        google_workspace_response:
          $ref: '#/components/schemas/v1.postGoogleWorkspaceIdentityProviderResponse'
        oidc_response:
          $ref: '#/components/schemas/v1.postOpenIDConnectIdentityProviderResponse'
        okta_workforce_response:
          $ref: '#/components/schemas/v1.postOktaWorkforceIdentityProviderResponse'
        saml_response:
          $ref: '#/components/schemas/v1.postSAMLIdentityProviderResponse'
    v1.postGoogleWorkspaceIdentityProviderResponse:
      type: object
      properties:
        must_allow_javascript_origin:
          type: string
        must_allow_redirect_url:
          type: string
    v1.postIdentityProviderRequest:
      type: object
      properties:
        display_name:
          type: string
        enabled:
          type: boolean
        google_workspace_configuration:
          $ref: '#/components/schemas/models.GoogleWorkspaceIdentityProviderConfig'
        logo_url:
          type: string
        name:
          type: string
        oidc_configuration:
          $ref: '#/components/schemas/models.OpenIDConnectIdentityProviderConfig'
        okta_workforce_configuration:
          $ref: '#/components/schemas/models.OktaWorksforceIdentityProviderConfig'
        saml_configuration:
          $ref: '#/components/schemas/models.SAMLIdentityProviderConfig'
        type:
          type: string
    models.GoogleWorkspaceIdentityProviderConfig:
      type: object
      properties:
        client_id:
          description: 'An identifier which uniquely identifies border0 as a client of the

            Google Workspace account. You get this and the client secret when

            you create an "App Integration" in the Google API Console.

            This is typically of the form ${GIBBERISH}.apps.googleusercontent.com'
          type: string
        client_secret:
          description: Secret to authenticate with Google Workspace.
          type: string
        google_workspace_domain:
          description: Domain of the Google Workspace
          type: string
    v1.patchIdentityProviderRequest:
      type: object
      properties:
        display_name:
          type: string
        enabled:
          type: boolean
        google_workspace_configuration:
          $ref: '#/components/schemas/models.GoogleWorkspaceIdentityProviderConfig'
        logo_url:
          type: string
        name:
          type: string
        oidc_configuration:
          $ref: '#/components/schemas/models.OpenIDConnectIdentityProviderConfig'
        okta_workforce_configuration:
          $ref: '#/components/schemas/models.OktaWorksforceIdentityProviderConfig'
        saml_configuration:
          $ref: '#/components/schemas/models.SAMLIdentityProviderConfig'
        type:
          type: string
  securitySchemes:
    Border0_Token:
      type: apiKey
      name: Authorization
      in: header