Clearstreet8e71 · Schema
PositionInstruction
A position instruction and its current lifecycle state.
CompanyFinTechBrokerageAPIInstitutional
Properties
| Name | Type | Description |
|---|---|---|
| accepted_quantity | stringnull | Number of contracts accepted by the clearing venue. Populated once the instruction reaches `ACCEPTED`. When a null/undefined value is observed, it indicates that there is no available data. |
| account_id | object | Account the instruction belongs to. |
| client_instruction_id | string | Caller-supplied idempotency key echoed from the submit request; the server-assigned fallback when none was supplied. |
| created_at | stringnull | When the instruction was first accepted by the service. When a null/undefined value is observed, it indicates that there is no available data. |
| id | string | Server-assigned id. Used as the path parameter on cancel. |
| instruction_type | object | The action this instruction requests. |
| instrument_id | string | Identifier of the options contract this instruction acts on. |
| quantity | string | Number of contracts included in the instruction. |
| rejection | object | |
| rejection_reason | stringnull | Human-readable explanation populated on any non-success terminal status — `REJECTED` or `CANCEL_FAILED`. On a `207 Multi-Status` batch submit the top-level `error` field summarizes the batch; per-row |
| status | object | Current lifecycle status. |
| symbol | string | Options symbol (OSI) for display. |
| underlying_instrument_id | stringnull | Identifier of the underlying instrument, when available. When a null/undefined value is observed, it indicates it does not apply. |
| updated_at | stringnull | When the instruction's lifecycle state last changed. When a null/undefined value is observed, it indicates that there is no available data. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/clearstreet8e71/main/json-schema/clearstreet8e71-position-instruction-schema.json",
"title": "PositionInstruction",
"description": "A position instruction and its current lifecycle state.",
"x-generated": "2026-10-09",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/clearstreet8e71-openapi.yaml#/components/schemas/PositionInstruction",
"type": "object",
"required": [
"id",
"client_instruction_id",
"account_id",
"instruction_type",
"instrument_id",
"symbol",
"quantity",
"status"
],
"properties": {
"accepted_quantity": {
"type": [
"string",
"null"
],
"description": "Number of contracts accepted by the clearing venue. Populated once\nthe instruction reaches `ACCEPTED`.\nWhen a null/undefined value is observed, it indicates that there is no available data."
},
"account_id": {
"$ref": "#/$defs/i64",
"description": "Account the instruction belongs to."
},
"client_instruction_id": {
"type": "string",
"description": "Caller-supplied idempotency key echoed from the submit request; the\nserver-assigned fallback when none was supplied."
},
"created_at": {
"type": [
"string",
"null"
],
"format": "date-time",
"description": "When the instruction was first accepted by the service.\nWhen a null/undefined value is observed, it indicates that there is no available data."
},
"id": {
"type": "string",
"format": "uuid",
"description": "Server-assigned id. Used as the path parameter on cancel."
},
"instruction_type": {
"$ref": "#/$defs/PositionInstructionType",
"description": "The action this instruction requests."
},
"instrument_id": {
"type": "string",
"format": "uuid",
"description": "Identifier of the options contract this instruction acts on."
},
"quantity": {
"type": "string",
"description": "Number of contracts included in the instruction."
},
"rejection": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/PositionInstructionRejection",
"description": "Machine-readable counterpart to `rejection_reason`: a stable reason code,\nhuman-readable `description`, and params, present on every rejected row —\non submit, cancel, get, and list alike. Branch on `rejection.reason` and\nread `rejection.description` instead of the top-level `rejection_reason`.\nWhen a null/undefined value is observed, it indicates it does not apply."
}
]
},
"rejection_reason": {
"type": [
"string",
"null"
],
"description": "Human-readable explanation populated on any non-success terminal\nstatus — `REJECTED` or `CANCEL_FAILED`. On a\n`207 Multi-Status` batch submit the top-level `error` field\nsummarizes the batch; per-row detail continues to live here.\nWhen a null/undefined value is observed, it indicates it does not apply."
},
"status": {
"$ref": "#/$defs/PositionInstructionStatus",
"description": "Current lifecycle status."
},
"symbol": {
"type": "string",
"description": "Options symbol (OSI) for display."
},
"underlying_instrument_id": {
"type": [
"string",
"null"
],
"format": "uuid",
"description": "Identifier of the underlying instrument, when available.\nWhen a null/undefined value is observed, it indicates it does not apply."
},
"updated_at": {
"type": [
"string",
"null"
],
"format": "date-time",
"description": "When the instruction's lifecycle state last changed.\nWhen a null/undefined value is observed, it indicates that there is no available data."
}
},
"$defs": {
"PositionInstructionRejection": {
"type": "object",
"description": "Machine-readable detail for a rejected position instruction.\n\nPresent on every rejected row, across the full lifecycle — submit, cancel,\nget, and list. Branch on `reason` for programmatic handling and template your\nown copy from `metadata`, or show `description` directly.",
"required": [
"domain",
"reason",
"description",
"metadata"
],
"properties": {
"description": {
"type": "string",
"description": "Human-readable explanation of the rejection. Duplicates the top-level\n`rejection_reason`; prefer this field."
},
"domain": {
"type": "string",
"description": "Namespacing domain of the `reason` code — `com.clearstreet.oems.exercise`\nfor reasons OEMS validates, `com.clearstreet.oems.clearing` for\nclearing-owned reasons."
},
"metadata": {
"type": "object",
"description": "Reason-specific parameters as a string→string map. Which keys are present\ndepends on `reason`:\n\n- `INSUFFICIENT_POSITION` → `available`, `requested`\n- `DNE_NOT_ON_EXPIRY` / `CEA_NOT_ON_EXPIRY` → `expiry`, `business_date`\n- `EXERCISE_PAST_CUTOFF` → `cutoff_time`\n- `DUPLICATE_INSTRUCTION` → `existing_id`\n\nEmpty for reasons that carry no parameters. New keys may be added over\ntime, so treat unknown keys leniently.",
"additionalProperties": {
"type": "string"
},
"propertyNames": {
"type": "string"
}
},
"reason": {
"type": "string",
"description": "Stable, machine-readable reason code, e.g. `DNE_NOT_ON_EXPIRY`,\n`INSUFFICIENT_POSITION`, `OPTIONS_LEVEL_EXCEEDED`, `EXERCISE_PAST_CUTOFF`."
}
}
},
"PositionInstructionStatus": {
"type": "string",
"description": "Lifecycle status of a position instruction.\n\n- `SENT`: accepted and submitted to the clearing venue.\n- `ACCEPTED`: terminal — accepted by the clearing venue.\n- `REJECTED`: terminal rejection; `rejection_reason` carries the\n detail. Covers both venue-reported rejections and rejections\n raised before the instruction reached the clearing venue (e.g.\n duplicate `client_instruction_id`, `DO_NOT_EXERCISE` / `CONTRARY_EXERCISE`\n submitted on a non-expiry day, insufficient position, or an\n instrument that does not resolve).\n- `CANCEL_REQUESTED`: cancel accepted; final cancel state pending.\n- `CANCELLED`: terminal — cancel completed.\n- `CANCEL_FAILED`: cancel could not be completed; operator\n attention required. `rejection_reason` carries the detail.\n- `UNKNOWN`: status could not be determined.",
"enum": [
"SENT",
"ACCEPTED",
"REJECTED",
"CANCEL_REQUESTED",
"CANCELLED",
"CANCEL_FAILED",
"UNKNOWN"
]
},
"PositionInstructionType": {
"type": "string",
"description": "The action to take against an options position.",
"enum": [
"EXERCISE",
"DO_NOT_EXERCISE",
"CONTRARY_EXERCISE"
]
},
"i64": {
"type": "integer",
"format": "int64"
}
}
}
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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/clearstreet8e71-position-instruction"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.