Sageox API Keys API

The API Keys API from Sageox — 2 operation(s) for api keys.

Operations 3

POST /api/v1/api-keys Create API key #
GET /api/v1/api-keys List API keys #
DELETE /api/v1/api-keys/{id} Revoke API key #

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/sageox-api-keys-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

sageox-api-keys-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SageOx API Keys API
  version: 1.0.0
  description: '# API Reference


    ## Overview


    SageOx is a platform that captures team knowledge from discussions, decisions, and work context into a Ledger (per-repo historical record) and Team Context (team-wide shared knowledge).'
  contact:
    name: SageOx Team
  license:
    name: MIT
servers:
- url: http://localhost:3000
  description: Devcontainer
- url: https://test.sageox.ai
  description: Test
- url: https://sageox.ai
  description: Production
security:
- bearerAuth: []
tags:
- name: API Keys
paths:
  /api/v1/api-keys:
    post:
      operationId: createAPIKey
      summary: Create API key
      description: 'Creates a new API key for the authenticated user. The full key is returned

        only once and must be stored securely. The key can be used for API

        authentication via Bearer token. Optionally specify an expiration period.'
      tags:
      - API Keys
      security:
      - BearerAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - name
              properties:
                name:
                  type: string
                  description: Human-readable name for the API key (1-255 characters)
                  example: Production API Key
                expires_in_days:
                  type: integer
                  nullable: true
                  description: Optional expiration period in days from now
                  minimum: 1
                  example: 365
            examples:
              with_expiration:
                summary: Create key with 365-day expiration
                value:
                  name: Production API Key
                  expires_in_days: 365
              no_expiration:
                summary: Create key with no expiration
                value:
                  name: Permanent API Key
      responses:
        '201':
          description: API key created successfully
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - name
                - key_prefix
                - created_at
                - key
                properties:
                  id:
                    type: string
                    format: uuid
                    description: Unique API key identifier
                    example: 550e8400-e29b-41d4-a716-446655440000
                  name:
                    type: string
                    description: Key name
                    example: Production API Key
                  key_prefix:
                    type: string
                    description: First 8 characters of the key (safe to log)
                    example: mk_aB1cD2e
                  key:
                    type: string
                    description: Full API key (only returned on creation)
                    example: mk_aB1cD2eF3gH4iJ5kL6mN7oP8qR9sTu
                  created_at:
                    type: string
                    format: date-time
                    description: Key creation timestamp
                    example: '2025-01-20T15:30:00Z'
                  expires_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: Key expiration timestamp (null if no expiration)
                    example: '2026-01-20T15:30:00Z'
                  last_used_at:
                    type: string
                    format: date-time
                    nullable: true
                    description: Last usage timestamp (null if never used)
                    example: null
        '400':
          description: Invalid request parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                missing_name:
                  value:
                    success: false
                    error: name is required
                invalid_expiration:
                  value:
                    success: false
                    error: expires_in_days must be positive
        '401':
          description: Unauthorized - missing or invalid authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    get:
      operationId: listAPIKeys
      summary: List API keys
      description: 'Returns all active (non-revoked) API keys for the authenticated user.

        Full key values are never returned - only the prefix (first 8 chars) for

        identification, creation date, and usage information.'
      tags:
      - API Keys
      security:
      - BearerAuth: []
      responses:
        '200':
          description: API keys retrieved successfully
          content:
            application/json:
              schema:
                type: object
                required:
                - keys
                properties:
                  keys:
                    type: array
                    items:
                      type: object
                      required:
                      - id
                      - name
                      - key_prefix
                      - created_at
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: Unique API key identifier
                          example: 550e8400-e29b-41d4-a716-446655440000
                        name:
                          type: string
                          description: Key name
                          example: Production API Key
                        key_prefix:
                          type: string
                          description: First 8 characters of the key
                          example: mk_aB1cD2e
                        created_at:
                          type: string
                          format: date-time
                          description: Key creation timestamp
                          example: '2025-01-20T15:30:00Z'
                        expires_at:
                          type: string
                          format: date-time
                          nullable: true
                          description: Key expiration timestamp (null if no expiration)
                          example: '2026-01-20T15:30:00Z'
                        last_used_at:
                          type: string
                          format: date-time
                          nullable: true
                          description: Last usage timestamp
                          example: '2025-01-20T16:45:00Z'
        '401':
          description: Unauthorized - missing or invalid authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/v1/api-keys/{id}:
    delete:
      operationId: revokeAPIKey
      summary: Revoke API key
      description: 'Revokes (soft-deletes) an API key. The key cannot be used for authentication

        after revocation. Revocation is permanent and cannot be undone.'
      tags:
      - API Keys
      security:
      - BearerAuth: []
      parameters:
      - name: id
        in: path
        required: true
        description: API key UUID to revoke
        schema:
          type: string
          format: uuid
          example: 550e8400-e29b-41d4-a716-446655440000
      responses:
        '204':
          description: API key revoked successfully
        '400':
          description: Invalid key ID format
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid_id:
                  value:
                    success: false
                    error: invalid key id format
        '401':
          description: Unauthorized - missing or invalid authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden - not the owner of this key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                not_owner:
                  value:
                    success: false
                    error: not the owner of this key
        '404':
          description: API key not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ErrorResponse:
      type: object
      description: Standard error response returned by all endpoints on failure.
      required:
      - success
      - error
      properties:
        success:
          type: boolean
          description: Always `false` for error responses.
          enum:
          - false
        error:
          type: string
          description: Human-readable error message describing what went wrong. Do not parse this programmatically — use HTTP status codes for control flow.
          example: Invalid request parameters
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'JWT token obtained from the auth service (/api/auth/token).

        Token is validated using JWKS from the auth service.

        Required claims: sub (user_id), email, name, tier.

        '