Voltair Identity API

The Identity API from Voltair — 1 operation(s) for identity.

Operations 1

GET /me Get authenticated caller #

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/voltair-identity-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

voltair-identity-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Voltair ApiKeys Identity API
  version: 0.1.0
  description: 'Infrastructure inspection platform API. All endpoints are scoped to the authenticated organization via Bearer JWT or API key.

    All timestamp fields on this API (createdAt, updatedAt, scheduledFor, capturedAt, expiresAt, deletedAt, etc.) are Unix timestamps in milliseconds since the epoch (UTC). Both request and response bodies use this representation.'
servers:
- url: /
security:
- BearerAuth: []
- ApiKeyAuth: []
tags:
- name: Identity
paths:
  /me:
    get:
      tags:
      - Identity
      operationId: getMe
      summary: Get authenticated caller
      description: Returns the user row, role row, and resolved permission list for the authenticated caller, derived from the auth context's own `auth_lookup_by_cognito_id`. Unlike `GET /users/{id}` and `GET /roles`, this endpoint is keyed to the JWT (not to the currently viewed organization), so it works for super-admins whose user/role rows live in the cluster-internal org but who are viewing a different tenant. Authenticated callers always have permission to read their own identity, so the route is not gated by a `Requires(...)` permission check.
      responses:
        '200':
          description: Success
          headers:
            X-Request-Id:
              $ref: '#/components/headers/XRequestId'
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: object
                    required:
                    - user
                    - role
                    - permissions
                    properties:
                      user:
                        $ref: '#/components/schemas/User'
                      role:
                        $ref: '#/components/schemas/Role'
                      permissions:
                        type: array
                        items:
                          $ref: '#/components/schemas/Permission'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    Permission:
      type: object
      required:
      - resource
      - level
      properties:
        resource:
          $ref: '#/components/schemas/PermissionResource'
        level:
          $ref: '#/components/schemas/PermissionLevel'
    ErrorResponse:
      type: object
      required:
      - error
      properties:
        error:
          type: object
          required:
          - code
          - message
          properties:
            code:
              type: string
              description: Machine-readable error code
            message:
              type: string
              description: Human-readable description
            details:
              type: object
              additionalProperties: true
              description: Optional structured info (e.g. field-level validation errors, conflictingEventIds)
    UserStatus:
      type: string
      enum:
      - active
      - invited
      - deactivated
    Role:
      type: object
      required:
      - id
      - name
      - description
      - permissions
      - isSystem
      - canSwitchOrganizations
      - deletedAt
      - createdAt
      - updatedAt
      properties:
        id:
          type: string
          format: uuid
        organizationId:
          type:
          - string
          - 'null'
          format: uuid
          description: NULL for global roles (e.g. super-admin)
        slug:
          type:
          - string
          - 'null'
          description: Stable identifier for the super-admin role
        name:
          type: string
        description:
          type: string
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/Permission'
        isSystem:
          type: boolean
        canSwitchOrganizations:
          type: boolean
        deletedAt:
          type:
          - number
          - 'null'
        createdAt:
          type: number
        updatedAt:
          type: number
    PermissionLevel:
      type: string
      enum:
      - none
      - read
      - write
    User:
      type: object
      required:
      - id
      - actorId
      - cognitoId
      - firstName
      - lastName
      - email
      - status
      - deletedAt
      - createdAt
      - updatedAt
      properties:
        id:
          type: string
          format: uuid
        actorId:
          type: string
          format: uuid
        cognitoId:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        phone:
          type: string
        avatarUrl:
          type: string
        status:
          $ref: '#/components/schemas/UserStatus'
        invitedAt:
          type:
          - number
          - 'null'
        joinedAt:
          type:
          - number
          - 'null'
        deletedAt:
          type:
          - number
          - 'null'
        createdAt:
          type: number
        updatedAt:
          type: number
    PermissionResource:
      type: string
      enum:
      - sites
      - missions
      - media
      - organization
      - users
      - roles
      - billing
      - developer
      - events
      - transactions
  headers:
    XRequestId:
      description: Unique request identifier (UUID)
      schema:
        type: string
        format: uuid
  responses:
    NotFound:
      description: Resource not found
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Authentication required
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalError:
      description: Internal server error
      headers:
        X-Request-Id:
          $ref: '#/components/headers/XRequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Cognito JWT access token
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Organization-scoped API key