Alpaca · Schema

AccountStatusEvent

Represents a change in an Account's status, sent over the events streaming api. For partners who utilize Alpaca’s KYC service for opening brokerage accounts an additional `kyc_results` object is represented in the account status update events.

FintechTradingStocksCryptocurrencyBrokerageMarket DataOptionsReal-TimeInvestingFinancial Services

Properties

Name Type Description
account_id string
account_number string
status_from object
status_to object
reason string Optional
at string Timestamp of event
kyc_result object
event_id integer monotonically increasing 64bit integer
View JSON Schema on GitHub

JSON Schema

alpaca-account-status-event-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/alpaca/json-schema/alpaca-account-status-event-schema.json",
  "title": "AccountStatusEvent",
  "description": "Represents a change in an Account's status, sent over the events streaming api.\n\nFor partners who utilize Alpaca’s KYC service for opening brokerage accounts an additional `kyc_results` object is represented in the account status update events.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/alpaca-accounts-api-openapi.yml#/components/schemas/AccountStatusEvent",
  "type": "object",
  "properties": {
    "account_id": {
      "type": "string",
      "minLength": 1
    },
    "account_number": {
      "type": "string",
      "minLength": 1
    },
    "status_from": {
      "$ref": "#/$defs/AccountStatus"
    },
    "status_to": {
      "$ref": "#/$defs/AccountStatus"
    },
    "reason": {
      "type": "string",
      "minLength": 1,
      "description": "Optional"
    },
    "at": {
      "type": "string",
      "minLength": 1,
      "description": "Timestamp of event"
    },
    "kyc_result": {
      "$ref": "#/$defs/KYCResult"
    },
    "event_id": {
      "type": "integer",
      "description": "monotonically increasing 64bit integer"
    }
  },
  "required": [
    "account_id",
    "account_number",
    "status_from",
    "status_to",
    "reason",
    "at",
    "event_id"
  ],
  "$defs": {
    "AccountStatus": {
      "type": "string",
      "enum": [
        "ONBOARDING",
        "SUBMITTED",
        "RESUBMITTED",
        "SUBMISSION_FAILED",
        "ACTION_REQUIRED",
        "EDITED",
        "ACCOUNT_UPDATED",
        "APPROVAL_PENDING",
        "REAPPROVAL_PENDING",
        "SIGNED_UP",
        "KYC_SUBMITTED",
        "LIMITED",
        "AML_REVIEW",
        "APPROVED",
        "REJECTED",
        "ACTIVE",
        "DISABLED",
        "DISABLE_PENDING",
        "ACCOUNT_CLOSED",
        "PAPER_ONLY"
      ],
      "description": "Designates the current status of this account\n\nPossible Values:\n- **ONBOARDING**\nAn application is expected for this user, but has not been submitted yet.\n- **SUBMITTED**\nThe application has been submitted and in process.\n- **RESUBMITTED**\nResubmitted is used to display when request has been re-submitted to Apex after account update\n- **SUBMISSION_FAILED**\nUsed to display if failure on submission\n- **ACTION_REQUIRED**\nThe application requires manual action.\n- **EDITED**\nApplication was edited (e.g. to match info from uploaded docs). This is a transient status.\n- **ACCOUNT_UPDATED**\nUsed to display when Account has been modified by user\n- **APPROVAL_PENDING**\nInitial value. The application approval process is in process.\n- **REAPPROVAL_PENDING**\nThis is a transient status used to display once apex approves a re-submission\n- **SIGNED_UP**\nUsers who were directed to and competed the [first stage](https://app.alpaca.markets/signup) of v2 registration\n- **KYC_SUBMITTED**\nUsers that have had their KYC submitted to the routed KYC Provider\n- **LIMITED**\nLimited Users that pass KYC but are missing financial_information and employment_details\n- **AML_REVIEW**\nUsers that pass KYC but from a restricted/high risk country and need manual AML approval\n- **APPROVED**\nThe account application has been approved, and waiting to be ACTIVE\n- **REJECTED**\nThe account application is rejected for some reason\n- **ACTIVE**\nThe account is fully active. Trading and funding are processed under this status.\n- **DISABLED**\nThe account is disabled after ACTIVE status.\n- **DISABLE_PENDING**\nDisablePending is used for accounts which requested to be disabled, but have not been processed yet.\n- **ACCOUNT_CLOSED**\nThe account is closed.\n- **PAPER_ONLY**\nUsed to display when only paper trading is allowed for this account\n"
    },
    "KYCResult": {
      "type": "object",
      "description": "Hold information about the result of KYC. Please see the documentation [here](https://alpaca.markets/docs/api-references/broker-api/events/#kyc-results) for more indepth details",
      "properties": {
        "reject": {
          "type": "object"
        },
        "accept": {
          "type": "object"
        },
        "indeterminate": {
          "type": "object"
        },
        "addidional_information": {
          "type": "string"
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/alpaca-account-status-event"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.