How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

SmallStep Protect API

Manage access to protected resources

SmallStep Protect API is one of 6 APIs that SmallStep publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

Tagged areas include protect. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and an API reference.

This API exposes 43 operations across 17 paths, and defines 36 schemas. It is described by OpenAPI 3.2.0, at version 2025-01-01.

Requests are made against a single base URL, https://gateway.smallstep.com/api.

43 operations 17 paths 36 schemas 9 DELETE17 GET8 POST9 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
2025-01-01
Base URL
https://gateway.smallstep.com/api
Authentication
HTTP Bearer, Mutual TLS
License
Resource Areas
1

Authentication & Security 2

SmallStep Protect API declares 2 security schemes for authenticating requests. It accepts HTTP bearer tokens (JWT). It requires mutual TLS (mtls). By default, every request must be authenticated.

  • mtls — Use a client certificate issued by a trusted root to get short-lived bearer tokens with the step CLI.

Paths & Operations 43

Across 17 paths, the API surfaces 43 operations — 9 DELETE, 17 GET, 8 POST, 9 PUT. Each is listed below with its method, path, parameters, and response codes.

Protect 43

Manage access to protected resources

GET
/accountsdeprecated
List Accounts
ListAccounts 4 params → 200400401403500
POST
/accountsdeprecated
Create Account
PostAccounts 3 params body → 201400401403422500
DELETE
/accounts/{accountID}deprecated
Delete Account
DeleteAccount 4 params → 204400401403500
GET
/accounts/{accountID}deprecated
Get Account
GetAccount 4 params → 200400401403404500
PUT
/accounts/{accountID}deprecated
Update Account
PutAccount 4 params body → 200400401403404422500
GET
/endpoint-configurationsdeprecated
List Endpoint Configurations
ListEndpointConfigurations 4 params → 200400401500
POST
/endpoint-configurationsdeprecated
Create Endpoint Configuration
PostEndpointConfigurations 3 params body → 201400401422500
DELETE
/endpoint-configurations/{endpointConfigurationID}deprecated
Delete Endpoint Configuration
DeleteEndpointConfiguration 4 params → 204400401500
GET
/endpoint-configurations/{endpointConfigurationID}deprecated
Get Endpoint Configuration
GetEndpointConfiguration 4 params → 200400401404422500
PUT
/endpoint-configurations/{endpointConfigurationID}deprecated
Update Endpoint Configuration
PutEndpointConfiguration 4 params body → 200400401404422500
GET
/managed-radius
List Managed RADIUS Servers
ListManagedRadius 3 params → 200400401403500
POST
/managed-radius
Create Managed RADIUS
PostManagedRadius 3 params body → 200400401403409500
DELETE
/managed-radius/{managedRadiusID}
Delete Managed RADIUS
DeleteManagedRadius 5 params → 204400401500
GET
/managed-radius/{managedRadiusID}
Get Managed RADIUS
GetManagedRadius 5 params → 200400401403404500
PUT
/managed-radius/{managedRadiusID}
Put Managed RADIUS
PutManagedRadius 5 params body → 200400401403404409500
GET
/protect/browser
List Browser mTLS Configurations
ListBrowser 4 params → 200400401403500
POST
/protect/browser
Create Browser mTLS Configuration
PostBrowser 3 params body → 201400401403500
DELETE
/protect/browser/{browserID}
Delete Browser mTLS Configuration
DeleteBrowser 4 params → 204400401403500
GET
/protect/browser/{browserID}
Get Browser mTLS Configuration
GetBrowser 4 params → 200400401403404500
PUT
/protect/browser/{browserID}
Update Browser mTLS Configuration
PutBrowser 4 params body → 200400401403404500
GET
/protect/ethernet
List Ethernet Device Configurations
ListEthernet 4 params → 200400401403500
POST
/protect/ethernet
Create Ethernet Device Configuration
PostEthernet 3 params body → 201400401403500
DELETE
/protect/ethernet/{ethernetID}
Delete Ethernet Device Configuration
DeleteEthernet 4 params → 204400401403500
GET
/protect/ethernet/{ethernetID}
Get Ethernet Device Configuration
GetEthernet 4 params → 200400401403404500
PUT
/protect/ethernet/{ethernetID}
Update Ethernet Device Configuration
PutEthernet 4 params body → 200400401403404500
GET
/protect/vpn
List VPN Device Configurations
ListVpn 4 params → 200400401403500
POST
/protect/vpn
Create VPN Device Configuration
PostVpn 3 params body → 201400401403500
DELETE
/protect/vpn/{vpnID}
Delete VPN Device Configuration
DeleteVpn 4 params → 204400401403500
GET
/protect/vpn/{vpnID}
Get VPN Device Configuration
GetVpn 4 params → 200400401403404500
PUT
/protect/vpn/{vpnID}
Update VPN Device Configuration
PutVpn 4 params body → 200400401403404500
GET
/protect/wifi
List Wi-Fi Device Configurations
ListWifi 4 params → 200400401403500
POST
/protect/wifi
Create Wi-Fi Device Configuration
PostWifi 3 params body → 201400401403500
DELETE
/protect/wifi/{wifiID}
Delete Wi-Fi Device Configuration
DeleteWifi 4 params → 204400401403500
GET
/protect/wifi/{wifiID}
Get Wi-Fi Device Configuration
GetWifi 4 params → 200400401403404500
PUT
/protect/wifi/{wifiID}
Update Wi-Fi Device Configuration
PutWifi 4 params body → 200400401403404500
DELETE
/sso
Delete Identity Provider
DeleteIdentityProvider 3 params → 204400401500
GET
/sso
Get Identity Provider
GetIdentityProvider 3 params → 200400401403404500
PUT
/sso
Create Identity Provider
PutIdentityProvider 3 params body → 200400401403500
GET
/sso/clients
List IdP Clients
ListIdpClients 3 params → 200400401403500
POST
/sso/clients
Create IdP Client
PostIdpClients 3 params body → 201400401403422500
DELETE
/sso/clients/{idpClientID}
Delete IdP Client
DeleteIdpClient 4 params → 204400401403404500
GET
/sso/clients/{idpClientID}
Get IdP Client
GetIdpClient 4 params → 200400401403404500
PUT
/sso/clients/{idpClientID}
Update IdP Client
PutIdpClient 4 params body → 200400401403404500

Schemas 36

The contract defines 36 schemas that model the data the API accepts and returns. The most detailed are x509Fields (15 properties), endpointCertificateInfo (10 properties), managedRadius (10 properties), endpointConfigurationRequest (9 properties). Each schema is shown below with its type and property counts.

endpointConfiguration
An endpoint configuration represents the details for issuing a certificate a device uses to connect to a protected resource.
policyMatchCriteria
object
Policy to select the devices an account is assigned to. An empty policy indicates an account will be provisioned for all devices.
5 properties
certificateFieldList
object
A certificate field that accepts multiple string values, e.g. SANs.
3 properties
endpointKeyInfo
object
The attributes of the cryptographic key.
4 properties
wifi
object
Configuration to use a credential to connect to a protected Wi-Fi network.
8 properties 4 required
x509CustomExtension
object
An arbitrary X.509 certificate extension.
3 properties 2 required
deviceAssurance
string
The assurance level of the device. High-assurance devices are those that have a user binding, have been approved, and have performed cryptographic remote attes…
idpClient
object
4 properties 2 required
vpn
Configuration to use a credential to connect a device to a VPN.
x509Fields
object
Populate certificate fields using using static names or device metadata.
15 properties
ethernet
object
Configuration for connecting a device to an EAP-TLS 802.1X wired network.
5 properties 3 required
vpnAccount
object
Configuration to connect a device to a VPN.
5 properties 2 required
wifiAccount
object
Configuration to connect a device to a protected WiFi network.
7 properties 1 required
deviceOS
string
The device operating system. This field may be populated with a value derived from data synced from your team's MDMs. Setting this value explicitly will mask a…
endpointConfigurationRequest
object
The configuration settings of an endpoint.
9 properties 2 required
deviceOwnership
string
Whether the device is owned by the user or the company. This field may be populated with a value derived from data synced from your team's MDMs. Setting this v…
replyAttribute
browser
object
Configuration to use a credential for browser mTLS.
4 properties 3 required
endpointReloadInfo
object
The properties used to reload a service.
4 properties 1 required
endpointManagementMode
string
Determines who manages the certificate lifecycle for the workload. Defaults to agent if not set. - agent: The Smallstep Agent manages the certificate lifecycle…
identityProvider
object
5 properties 5 required
browserAccount
object
Configuration to use a client certificate.
accountRequest
object
The configuration settings of an account.
7 properties 1 required
error
object
1 property 1 required
ikeV2Config
object
Configuration for VPNs that use the IKEv2 protocol.
3 properties 1 required
vpnType
string
The type of VPN connection.
x509TypedSANs
object
Explicitly typed subject alternative names. When set, takes precedence over the untyped sans field.
5 properties
x509ExtendedKeyUsage
string
A purpose for which a certified public key may be used.
endpointCertificateInfo
object
Details on a managed certificate.
10 properties 1 required
vpnVendor
string
For SSL-type VPN connections, the vendor of the VPN.
managedRadius
object
10 properties 8 required
certificateField
object
A certificate field that takes a single string value, e.g. Common Name. Static values are used as a fallback when device metadata is not present.
2 properties
account
An account configures the certificate a device uses to connect to a protected resource.
deviceDiscoverySource
string
The source from which this device was discovered.
ethernetAccount
object
Configuration to connect a device to a protected LAN.
4 properties
sshFields
object
Populate certificate fields using static names or device metadata.
2 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

smallstep-protect-api-openapi.yml Raw ↑

Other APIs SmallStep publishes across the network.

SmallStep Authentication API
SmallStep Certificates API
SmallStep Credentials API
SmallStep Device Inventory API
SmallStep PKI Architecture API
Where this information came from

This is an independent, third-party profile of SmallStep Protect API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.