Oxide Login API

Authentication endpoints

Operations 2

POST /login/{silo_name}/saml/{provider_name} Authenticate user via SAML #
POST /v1/login/{silo_name}/local Authenticate user via username and password #

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/oxide-computer-login-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

oxide-computer-login-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Oxide Region Login API
  description: API for interacting with the Oxide control plane
  contact:
    url: https://oxide.computer
    email: api@oxide.computer
  version: 2026081901.0.0
tags:
- name: login
  description: Authentication endpoints
  externalDocs:
    url: http://docs.oxide.computer/api/login
paths:
  /login/{silo_name}/saml/{provider_name}:
    post:
      tags:
      - login
      summary: Authenticate user via SAML
      operationId: login_saml
      parameters:
      - in: path
        name: provider_name
        required: true
        schema:
          $ref: '#/components/schemas/Name'
      - in: path
        name: silo_name
        required: true
        schema:
          $ref: '#/components/schemas/Name'
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
        required: true
      responses:
        '303':
          description: redirect (see other)
          headers:
            location:
              description: HTTP "Location" header
              style: simple
              required: true
              schema:
                type: string
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
  /v1/login/{silo_name}/local:
    post:
      tags:
      - login
      summary: Authenticate user via username and password
      operationId: login_local
      parameters:
      - in: path
        name: silo_name
        required: true
        schema:
          $ref: '#/components/schemas/Name'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UsernamePasswordCredentials'
        required: true
      responses:
        '204':
          description: resource updated
        4XX:
          $ref: '#/components/responses/Error'
        5XX:
          $ref: '#/components/responses/Error'
components:
  schemas:
    Name:
      title: A name unique within the parent collection
      description: Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Names cannot be a UUID, but they may contain a UUID. They can be at most 63 characters long.
      type: string
      pattern: ^(?![0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$)^[a-z]([a-zA-Z0-9-]*[a-zA-Z0-9]+)?$
      minLength: 1
      maxLength: 63
    UserId:
      title: A username for a local-only user
      description: Usernames must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and '-', and may not end with a '-'. Usernames cannot be a UUID, but they may contain a UUID. They can be at most 63 characters long.
      type: string
      pattern: ^(?![0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$)^[a-z]([a-zA-Z0-9-]*[a-zA-Z0-9]+)?$
      minLength: 1
      maxLength: 63
    UsernamePasswordCredentials:
      description: Credentials for local user login
      type: object
      properties:
        password:
          $ref: '#/components/schemas/Password'
        username:
          $ref: '#/components/schemas/UserId'
      required:
      - password
      - username
    Error:
      description: Error information from a response.
      type: object
      properties:
        error_code:
          type: string
        message:
          type: string
        request_id:
          type: string
      required:
      - message
      - request_id
    Password:
      title: A password used to authenticate a user
      description: Passwords may be subject to additional constraints.
      type: string
      maxLength: 512
  responses:
    Error:
      description: Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'