xpoz-ai System Status API

Platform status page and notifications.

Operations 5

GET /api/status Get platform status #
PUT /api/status Override platform status #
GET /api/status/history Get status history #
POST /api/status/subscribe Subscribe to status emails #
GET /api/status/unsubscribe Unsubscribe from status emails #

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/xpoz-ai:xpoz-ai-system-status-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

xpoz-ai-system-status-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: XPOZ System Status API
  version: 1.0.0
  description: 'Social media data API for Twitter/X, Instagram, Reddit, and TikTok.


    **Data endpoints** (`/api/data/*`) are authenticated with an API access key and are metered against the account''s credits. Most stored-data endpoints share the same query options: `fields` selects which attributes to return, `since`/`until` bound the date range, and `responseType` picks between a synchronous first page (`fast`), a full paged query run as a background operation (`paging`), and a CSV export (`csv`). `/live` endpoints fetch from the platform on demand and page with a cursor instead.


    **Account, billing, and crawl-settings endpoints** are used by the XPOZ dashboard and authenticate with the user''s session.'
servers:
- url: /
  description: This server
tags:
- name: System Status
  description: Platform status page and notifications.
paths:
  /api/status:
    get:
      tags:
      - System Status
      summary: Get platform status
      description: Current status per social platform. Returns 503 when overall status is `down`.
      security: []
      responses:
        '200':
          description: Status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemStatus'
        '503':
          description: Overall status is down.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemStatus'
      operationId: getStatus
    put:
      tags:
      - System Status
      summary: Override platform status
      description: Manually set per-platform status. Requires an `@xpoz.ai` admin with the `updateSystemStatus` flag.
      security:
      - UserSession: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                platforms:
                  type: object
                  minProperties: 1
                  propertyNames:
                    enum:
                    - twitter
                    - instagram
                    - reddit
                    - tiktok
                  additionalProperties:
                    $ref: '#/components/schemas/PlatformStatus'
                message:
                  type: string
              required:
              - platforms
      responses:
        '200':
          description: Updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessFlag'
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/UnauthorizedMessage'
        '403':
          $ref: '#/components/responses/NotAuthorized'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorField'
      operationId: putStatus
  /api/status/history:
    get:
      tags:
      - System Status
      summary: Get status history
      description: Hourly status per platform for the last 36 hours.
      security: []
      responses:
        '200':
          description: History.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusHistory'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorField'
      operationId: getStatusHistory
  /api/status/subscribe:
    post:
      tags:
      - System Status
      summary: Subscribe to status emails
      description: Subscribe an email to status change notifications for selected platforms.
      security:
      - UserSession: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  format: email
                platforms:
                  type: array
                  minItems: 1
                  items:
                    type: string
                    enum:
                    - twitter
                    - instagram
                    - reddit
                    - tiktok
              required:
              - email
              - platforms
      responses:
        '200':
          description: Subscribed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessFlag'
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/UnauthorizedMessage'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorField'
      operationId: postStatusSubscribe
  /api/status/unsubscribe:
    get:
      tags:
      - System Status
      summary: Unsubscribe from status emails
      description: Unsubscribe using the token from the notification email.
      security: []
      parameters:
      - name: token
        in: query
        required: true
        description: Unsubscribe token.
        schema:
          type: string
          minLength: 1
      responses:
        '200':
          description: Unsubscribed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessFlag'
        '400':
          description: Missing, invalid, or expired token.
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/SimpleError'
                - $ref: '#/components/schemas/ErrorField'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorField'
      operationId: getStatusUnsubscribe
components:
  responses:
    ValidationError:
      description: Query or body validation failed. `message` joins all validation issues with `, `.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/SimpleError'
    NotAuthorized:
      description: Caller lacks the required admin feature flag or `@xpoz.ai` email.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorField'
    UnauthorizedMessage:
      description: Missing or invalid credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/MessageError'
  schemas:
    SimpleError:
      type: object
      properties:
        success:
          type: boolean
          const: false
        message:
          type: string
      required:
      - success
      - message
    StatusHistory:
      type: object
      properties:
        hoursBack:
          type: integer
        generatedAt:
          type: string
          format: date-time
        platforms:
          type: object
          additionalProperties:
            type: array
            items:
              type: object
              properties:
                hour:
                  type: string
                  format: date-time
                status:
                  type: string
                  enum:
                  - green
                  - yellow
                  - red
                  - gray
              required:
              - hour
              - status
      required:
      - hoursBack
      - generatedAt
      - platforms
    PlatformStatus:
      type: string
      enum:
      - up
      - degraded
      - down
    SystemStatus:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/PlatformStatus'
        updatedAt:
          type: string
          format: date-time
        message:
          type: string
        platforms:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PlatformStatusDetail'
      required:
      - status
      - updatedAt
      - platforms
    ErrorField:
      type: object
      properties:
        error:
          type: string
      required:
      - error
    PlatformStatusDetail:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/PlatformStatus'
        errorStatus:
          type: string
        perfStatus:
          type: string
        totalExecutions:
          type: integer
        internalErrorRatePct:
          type: number
        p95Ms:
          type: number
        baselineP95Ms:
          type: number
        spikeRatio:
          type: number
    MessageError:
      type: object
      properties:
        message:
          type: string
      required:
      - message
    SuccessFlag:
      type: object
      properties:
        success:
          type: boolean
          const: true
      required:
      - success
  securitySchemes:
    AccessKey:
      type: http
      scheme: bearer
      description: 'XPOZ API access key, created from the dashboard or `POST /api/tokens`. Send as `Authorization: Bearer <access key>`.'
    UserSession:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Descope session JWT of a logged-in dashboard user. Send as `Authorization: Bearer <session JWT>`.'