SmallStep Protect API

Manage access to protected resources

Operations 43

GET /accounts List Accounts #
POST /accounts Create Account #
DELETE /accounts/{accountID} Delete Account #
GET /accounts/{accountID} Get Account #
PUT /accounts/{accountID} Update Account #
GET /endpoint-configurations List Endpoint Configurations #
POST /endpoint-configurations Create Endpoint Configuration #
DELETE /endpoint-configurations/{endpointConfigurationID} Delete Endpoint Configuration #
GET /endpoint-configurations/{endpointConfigurationID} Get Endpoint Configuration #
PUT /endpoint-configurations/{endpointConfigurationID} Update Endpoint Configuration #
GET /managed-radius List Managed RADIUS Servers #
POST /managed-radius Create Managed RADIUS #
DELETE /managed-radius/{managedRadiusID} Delete Managed RADIUS #
GET /managed-radius/{managedRadiusID} Get Managed RADIUS #
PUT /managed-radius/{managedRadiusID} Put Managed RADIUS #
GET /protect/browser List Browser mTLS Configurations #
POST /protect/browser Create Browser mTLS Configuration #
DELETE /protect/browser/{browserID} Delete Browser mTLS Configuration #
GET /protect/browser/{browserID} Get Browser mTLS Configuration #
PUT /protect/browser/{browserID} Update Browser mTLS Configuration #
GET /protect/ethernet List Ethernet Device Configurations #
POST /protect/ethernet Create Ethernet Device Configuration #
DELETE /protect/ethernet/{ethernetID} Delete Ethernet Device Configuration #
GET /protect/ethernet/{ethernetID} Get Ethernet Device Configuration #
PUT /protect/ethernet/{ethernetID} Update Ethernet Device Configuration #
GET /protect/vpn List VPN Device Configurations #
POST /protect/vpn Create VPN Device Configuration #
DELETE /protect/vpn/{vpnID} Delete VPN Device Configuration #
GET /protect/vpn/{vpnID} Get VPN Device Configuration #
PUT /protect/vpn/{vpnID} Update VPN Device Configuration #
GET /protect/wifi List Wi-Fi Device Configurations #
POST /protect/wifi Create Wi-Fi Device Configuration #
DELETE /protect/wifi/{wifiID} Delete Wi-Fi Device Configuration #
GET /protect/wifi/{wifiID} Get Wi-Fi Device Configuration #
PUT /protect/wifi/{wifiID} Update Wi-Fi Device Configuration #
DELETE /sso Delete Identity Provider #
GET /sso Get Identity Provider #
PUT /sso Create Identity Provider #
GET /sso/clients List IdP Clients #
POST /sso/clients Create IdP Client #
DELETE /sso/clients/{idpClientID} Delete IdP Client #
GET /sso/clients/{idpClientID} Get IdP Client #
PUT /sso/clients/{idpClientID} Update IdP Client #

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/smallstep-protect-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

smallstep-protect-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@smallstep.com
    name: Smallstep Support
    url: https://support.smallstep.com
  description: '# Getting Started

    First you''ll need to get an API token from the Team Settings page of your [Smallstep dashboard](https://smallstep.com/app).


    Then you can try [listing certificates](/operations/list-certificates) for your first API call:

    ```

    set +o history

    echo "Authorization: Bearer [your API token]" > api_headers

    set -o history

    curl -H @api_headers https://gateway.smallstep.com/api/certificates

    ```


    More resources:

    * [Terraform Provider](https://github.com/smallstep/terraform-provider-smallstep)

    * [Python Client](https://github.com/smallstep/smallstep-python)

    '
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  summary: Smallstep API
  title: Smallstep Authentication Protect API
  version: '2025-01-01'
servers:
- url: https://gateway.smallstep.com/api
security:
- JWT: []
tags:
- description: Manage access to protected resources
  name: Protect
paths:
  /accounts:
    parameters:
    - $ref: '#/components/parameters/requestID'
    - $ref: '#/components/parameters/version'
    - $ref: '#/components/parameters/accept'
    get:
      deprecated: true
      description: 'Get a page of accounts.

        '
      operationId: ListAccounts
      parameters:
      - $ref: '#/components/parameters/pagination'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/account'
                type: array
          description: A page of accounts.
          headers:
            X-Next-Cursor:
              $ref: '#/components/headers/X-Next-Cursor'
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - list-accounts
      summary: List Accounts
      tags:
      - Protect
    post:
      deprecated: true
      description: Create a new account.
      operationId: PostAccounts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/accountRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account'
          description: 'The newly created account

            '
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - post-accounts
      summary: Create Account
      tags:
      - Protect
  /accounts/{accountID}:
    parameters:
    - $ref: '#/components/parameters/requestID'
    - $ref: '#/components/parameters/version'
    - $ref: '#/components/parameters/accept'
    - $ref: '#/components/parameters/accountID'
    delete:
      deprecated: true
      description: 'Delete an account.

        '
      operationId: DeleteAccount
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - delete-account
      summary: Delete Account
      tags:
      - Protect
    get:
      deprecated: true
      description: 'Get an account.

        '
      operationId: GetAccount
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account'
          description: 'The account.

            '
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - get-account
      summary: Get Account
      tags:
      - Protect
    put:
      deprecated: true
      description: 'Update an existing account.

        '
      operationId: PutAccount
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/account'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account'
          description: 'The updated account.

            '
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - put-account
      summary: Update Account
      tags:
      - Protect
  /endpoint-configurations:
    parameters:
    - $ref: '#/components/parameters/requestID'
    - $ref: '#/components/parameters/version'
    - $ref: '#/components/parameters/accept'
    get:
      deprecated: true
      description: 'Get a page of endpoint configurations.

        '
      operationId: ListEndpointConfigurations
      parameters:
      - $ref: '#/components/parameters/pagination'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/endpointConfiguration'
                type: array
          description: A page of endpoint configurations.
          headers:
            X-Next-Cursor:
              $ref: '#/components/headers/X-Next-Cursor'
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - list-endpoint-configurations
      summary: List Endpoint Configurations
      tags:
      - Protect
    post:
      deprecated: true
      description: Create a new endpoint configuration.
      operationId: PostEndpointConfigurations
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/endpointConfigurationRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointConfiguration'
          description: 'The newly created endpoint configuration

            '
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - post-endpoint-configurations
      summary: Create Endpoint Configuration
      tags:
      - Protect
  /endpoint-configurations/{endpointConfigurationID}:
    parameters:
    - $ref: '#/components/parameters/requestID'
    - $ref: '#/components/parameters/version'
    - $ref: '#/components/parameters/accept'
    - $ref: '#/components/parameters/endpointConfigurationID'
    delete:
      deprecated: true
      description: 'Delete an endpoint configuration.

        '
      operationId: DeleteEndpointConfiguration
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - delete-endpoint-configuration
      summary: Delete Endpoint Configuration
      tags:
      - Protect
    get:
      deprecated: true
      description: 'Get an endpoint configuration.

        '
      operationId: GetEndpointConfiguration
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointConfiguration'
          description: 'The endpoint configuration.

            '
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - get-endpoint-configuration
      summary: Get Endpoint Configuration
      tags:
      - Protect
    put:
      deprecated: true
      description: 'Update an existing endpoint configuration.

        '
      operationId: PutEndpointConfiguration
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/endpointConfiguration'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/endpointConfiguration'
          description: 'The updated endpoint configuration.

            '
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - put-endpoint-configuration
      summary: Update Endpoint Configuration
      tags:
      - Protect
  /managed-radius:
    parameters:
    - $ref: '#/components/parameters/requestID'
    - $ref: '#/components/parameters/version'
    - $ref: '#/components/parameters/accept'
    get:
      description: List all RADIUS servers managed by Smallstep.
      operationId: ListManagedRadius
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/managedRadius'
                type: array
          description: 'The team''s Smallstep-managed RADIUS servers.

            '
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - list-managed-radius
      summary: List Managed RADIUS Servers
      tags:
      - Protect
    post:
      description: 'Configure a new RADIUS server managed by Smallstep.

        '
      operationId: PostManagedRadius
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/managedRadius'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/managedRadius'
          description: 'The Smallstep-managed RADIUS server configuration.

            '
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '409':
          $ref: '#/components/responses/409'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - post-managed-radius
      summary: Create Managed RADIUS
      tags:
      - Protect
  /managed-radius/{managedRadiusID}:
    parameters:
    - $ref: '#/components/parameters/managedRadiusID'
    - $ref: '#/components/parameters/requestID'
    - $ref: '#/components/parameters/version'
    - $ref: '#/components/parameters/accept'
    - $ref: '#/components/parameters/secret'
    delete:
      description: 'Deprovision a Smallstep-managed RADIUS server.

        '
      operationId: DeleteManagedRadius
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - delete-managed-radius
      summary: Delete Managed RADIUS
      tags:
      - Protect
    get:
      description: 'Get a Smallstep-managed RADIUS server configuration.

        '
      operationId: GetManagedRadius
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/managedRadius'
          description: 'The Smallstep-managed RADIUS server configuration.

            '
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - get-managed-radius
      summary: Get Managed RADIUS
      tags:
      - Protect
    put:
      description: 'Update a Smallstep-managed RADIUS server configuration.

        '
      operationId: PutManagedRadius
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/managedRadius'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/managedRadius'
          description: 'The Smallstep-managed RADIUS server configuration.

            '
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          $ref: '#/components/responses/409'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - put-managed-radius
      summary: Put Managed RADIUS
      tags:
      - Protect
  /protect/browser:
    parameters:
    - $ref: '#/components/parameters/requestID'
    - $ref: '#/components/parameters/version'
    - $ref: '#/components/parameters/accept'
    get:
      description: 'List configurations for using client certificates in browsers.

        '
      operationId: ListBrowser
      parameters:
      - $ref: '#/components/parameters/pagination'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/browser'
                type: array
          description: 'The list of configurations for using client certificates in browsers.

            '
          headers:
            X-Next-Cursor:
              $ref: '#/components/headers/X-Next-Cursor'
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - list-browser
      summary: List Browser mTLS Configurations
      tags:
      - Protect
    post:
      description: 'Create a new configuration for using a client certificate in a browser.

        '
      operationId: PostBrowser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/browser'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/browser'
          description: 'The configuration for using a client certificate in a browser.

            '
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - post-browser
      summary: Create Browser mTLS Configuration
      tags:
      - Protect
  /protect/browser/{browserID}:
    parameters:
    - $ref: '#/components/parameters/requestID'
    - $ref: '#/components/parameters/version'
    - $ref: '#/components/parameters/accept'
    - $ref: '#/components/parameters/browserID'
    delete:
      description: 'Delete a configuration for using a client certificate in a browser.

        '
      operationId: DeleteBrowser
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - delete-browser
      summary: Delete Browser mTLS Configuration
      tags:
      - Protect
    get:
      description: 'Get a configuration for using a client certificate in a browser.

        '
      operationId: GetBrowser
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/browser'
          description: 'The configuration for using a client certificate in a browser.

            '
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - get-browser
      summary: Get Browser mTLS Configuration
      tags:
      - Protect
    put:
      description: 'Update a configuration for using a client certificate in a browser.

        '
      operationId: PutBrowser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/browser'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/browser'
          description: 'The updated configuration for using a client certificate in a browser.

            '
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - put-browser
      summary: Update Browser mTLS Configuration
      tags:
      - Protect
  /protect/ethernet:
    parameters:
    - $ref: '#/components/parameters/requestID'
    - $ref: '#/components/parameters/version'
    - $ref: '#/components/parameters/accept'
    get:
      description: 'List configurations for connecting devices to EAP-TLS 802.1X wired networks.

        '
      operationId: ListEthernet
      parameters:
      - $ref: '#/components/parameters/pagination'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ethernet'
                type: array
          description: 'The configurations for connecting devices to EAP-TLS 802.1X wired networks.

            '
          headers:
            X-Next-Cursor:
              $ref: '#/components/headers/X-Next-Cursor'
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - list-ethernet
      summary: List Ethernet Device Configurations
      tags:
      - Protect
    post:
      description: 'Create a new configuration for connecting a device to an EAP-TLS 802.1X wired network.

        '
      operationId: PostEthernet
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ethernet'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ethernet'
          description: 'The configuration for connecting a device to an EAP-TLS 802.1X wired network.

            '
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - post-ethernet
      summary: Create Ethernet Device Configuration
      tags:
      - Protect
  /protect/ethernet/{ethernetID}:
    parameters:
    - $ref: '#/components/parameters/requestID'
    - $ref: '#/components/parameters/version'
    - $ref: '#/components/parameters/accept'
    - $ref: '#/components/parameters/ethernetID'
    delete:
      description: 'Delete a configuration for connecting a device to an EAP-TLS 802.1X wired network.

        '
      operationId: DeleteEthernet
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - delete-ethernet
      summary: Delete Ethernet Device Configuration
      tags:
      - Protect
    get:
      description: 'Get a configuration for connecting a device to an EAP-TLS 802.1X wired network.

        '
      operationId: GetEthernet
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ethernet'
          description: 'The configuration for connecting a device to an EAP-TLS 802.1X wired network.

            '
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - get-ethernet
      summary: Get Ethernet Device Configuration
      tags:
      - Protect
    put:
      description: 'Update a configuration for connecting a device to an EAP-TLS 802.1X wired network.

        '
      operationId: PutEthernet
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ethernet'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ethernet'
          description: 'The updated configuration for connecting a device to an EAP-TLS 802.1X wired network.

            '
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - put-ethernet
      summary: Update Ethernet Device Configuration
      tags:
      - Protect
  /protect/vpn:
    parameters:
    - $ref: '#/components/parameters/requestID'
    - $ref: '#/components/parameters/version'
    - $ref: '#/components/parameters/accept'
    get:
      description: 'List configurations for connecting devices to VPNs.

        '
      operationId: ListVpn
      parameters:
      - $ref: '#/components/parameters/pagination'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/vpn'
                type: array
          description: 'The list of configurations for connecting devices to VPNs.

            '
          headers:
            X-Next-Cursor:
              $ref: '#/components/headers/X-Next-Cursor'
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - list-vpn
      summary: List VPN Device Configurations
      tags:
      - Protect
    post:
      description: 'Create a new configuration for connecting a device to a VPN.

        '
      operationId: PostVpn
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/vpn'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/vpn'
          description: 'The configuration for connecting a device to a VPN.

            '
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - post-vpn
      summary: Create VPN Device Configuration
      tags:
      - Protect
  /protect/vpn/{vpnID}:
    parameters:
    - $ref: '#/components/parameters/requestID'
    - $ref: '#/components/parameters/version'
    - $ref: '#/components/parameters/accept'
    - $ref: '#/components/parameters/vpnID'
    delete:
      description: 'Delete a configuration for connecting a device to a VPN.

        '
      operationId: DeleteVpn
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - delete-vpn
      summary: Delete VPN Device Configuration
      tags:
      - Protect
    get:
      description: 'Get a configuration for connecting a device to a VPN.

        '
      operationId: GetVpn
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/vpn'
          description: 'The configuration for connecting a device to a VPN.

            '
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
      security:
      - JWT:
        - get-vpn
      summary: Get VPN Device Configuration
      tags:
      - Protect
    put:
      description: 'Update a configuration for connecting a device to a VPN.

        '
      operationId: PutVpn
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/vpn'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/vpn'
          description: 'The updated configuration for connecting a device to a VPN.

            '
          headers:
            X-Request-Id:
              $ref: '#/components/headers/X-Request-Id'
            X-Smallstep-Api-Version:
              $ref: '#/components/headers/X-Smallstep-Api-Version'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '500':
          $ref: '#/components/responses/500'
      security:

# --- truncated at 32 KB (83 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/smallstep/refs/heads/main/openapi/smallstep-protect-api-openapi.yml