> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usespoke.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# System, support, and developer tools

> Network catalogs, status, endpoint discovery, support, developer surfaces, and operator-scoped methods.

Network catalogs, status, endpoint discovery, support, developer surfaces, and operator-scoped methods.

This reference is generated from application commit [`1c90c5e`](https://github.com/Enoch208/spoke/commit/1c90c5e408592d5b4e87944ea79b998890633249). It covers **20 client methods** in this group.

<Note>
  Input schemas describe the typed client call before path/query/body mapping.
  Output schemas describe the envelope's `data`, not the full HTTP response.
  Custom refinements, transforms, and runtime permissions are enforced by the
  [shared Zod
  contract](https://github.com/Enoch208/spoke/tree/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api).
  Read [transport rules](/developers/http-transport) before copying a client
  object into an HTTP body. Designed methods reject live calls; optional funding
  still requires provider configuration.
</Note>

[Download all method schemas](https://raw.githubusercontent.com/Enoch208/docs-madonna/main/schemas/client-methods.json) · [Live endpoint registry](https://api.usespoke.xyz/v1/system/endpoints)

## Methods at a glance

| Client method | HTTP route | Access | Availability |
| - | - | - | - |
| [`networks.list`](#networks-list) | `GET /v1/networks` | public | Core live |
| [`tokens.list`](#tokens-list) | `GET /v1/tokens` | public | Core live |
| [`support.report`](#support-report) | `POST /v1/support/reports` | public | Core live |
| [`support.contact`](#support-contact) | `POST /v1/support/contact` | public | Core live |
| [`support.mine`](#support-mine) | `GET /v1/me/support` | session | Core live |
| [`system.health`](#system-health) | `GET /v1/health` | public | Core live |
| [`system.status`](#system-status) | `GET /v1/system/status` | public | Core live |
| [`system.contracts`](#system-contracts) | `GET /v1/system/contracts` | public | Core live |
| [`system.endpoints`](#system-endpoints) | `GET /v1/system/endpoints` | public | Core live |
| [`system.events`](#system-events) | `GET /v1/system/events` | public | Core live |
| [`playground.run`](#playground-run) | `POST /v1/playground` | public | Core live |
| [`clients.list`](#clients-list) | `GET /v1/clients` | public | Designed — unavailable |
| [`ops.queue`](#ops-queue) | `GET /v1/ops/queue` | session | Core live |
| [`ops.case`](#ops-case) | `GET /v1/ops/cases/:id` | session | Core live |
| [`ops.act`](#ops-act) | `POST /v1/ops/cases/:id/actions` | session | Core live |
| [`ops.moderation`](#ops-moderation) | `GET /v1/ops/moderation` | session | Core live |
| [`ops.audit`](#ops-audit) | `GET /v1/ops/audit` | session | Core live |
| [`ops.reconciliation`](#ops-reconciliation) | `GET /v1/ops/reconciliation` | session | Core live |
| [`ops.runReconciliation`](#ops-runreconciliation) | `POST /v1/ops/reconciliation` | session | Core live |
| [`ops.incident`](#ops-incident) | `POST /v1/ops/incidents` | session | Core live |

## networks.list

**GET `/v1/networks`** · **Core live** · Access: **public**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L604).

**Client input fields**

No fields. Use an empty object for the client method input.

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "chainId": {
            "type": "integer",
            "minimum": -9007199254740991,
            "maximum": 9007199254740991
          },
          "name": {
            "type": "string"
          },
          "explorer": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri"
              },
              {
                "type": "null"
              }
            ]
          },
          "protocolAddress": {
            "anyOf": [
              {
                "$ref": "#/$defs/__schema0"
              },
              {
                "type": "null"
              }
            ]
          },
          "allowedTokens": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "address": {
                  "$ref": "#/$defs/__schema0"
                },
                "symbol": {
                  "type": "string"
                },
                "decimals": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 36
                },
                "name": {
                  "type": "string"
                },
                "testnet": {
                  "type": "boolean"
                }
              },
              "required": ["address", "symbol", "decimals"],
              "additionalProperties": false
            }
          },
          "status": {
            "type": "string",
            "enum": ["live", "not_deployed", "unavailable"]
          }
        },
        "required": [
          "chainId",
          "name",
          "explorer",
          "protocolAddress",
          "allowedTokens",
          "status"
        ],
        "additionalProperties": false
      },
      "$defs": {
        "__schema0": {
          "type": "string",
          "pattern": "^0x[0-9a-fA-F]{40}$"
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## tokens.list

**GET `/v1/tokens`** · **Core live** · Access: **public**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L605).

**Client input fields**

No fields. Use an empty object for the client method input.

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "pattern": "^0x[0-9a-fA-F]{40}$"
          },
          "symbol": {
            "type": "string"
          },
          "decimals": {
            "type": "integer",
            "minimum": 0,
            "maximum": 36
          },
          "name": {
            "type": "string"
          },
          "testnet": {
            "type": "boolean"
          },
          "role": {
            "type": "string",
            "enum": ["payment", "reward", "both"]
          },
          "label": {
            "type": "string"
          }
        },
        "required": ["address", "symbol", "decimals", "role", "label"],
        "additionalProperties": false
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## support.report

**POST `/v1/support/reports`** · **Core live** · Access: **public**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L609).

**Client input fields**

| Field | Type | Required | Constraints |
| - | - | - | - |
| `subject` | string | No | Min length: 3; Max length: 150 |
| `category` | "abuse" · "fraud" · "product" · "payment" · "account" · "other" | Yes | See nested schema and runtime validation |
| `message` | string | Yes | Min length: 20; Max length: 5000 |
| `email` | string | No | Format: email; Pattern validated; see input schema |
| `context` | object | Yes | See nested schema and runtime validation |
| `target` | object | No | See nested schema and runtime validation |

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "subject": {
          "type": "string",
          "minLength": 3,
          "maxLength": 150
        },
        "category": {
          "type": "string",
          "enum": ["abuse", "fraud", "product", "payment", "account", "other"]
        },
        "message": {
          "type": "string",
          "minLength": 20,
          "maxLength": 5000
        },
        "email": {
          "type": "string",
          "format": "email",
          "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
        },
        "context": {
          "type": "object",
          "properties": {
            "page": {
              "type": "string",
              "minLength": 1,
              "maxLength": 2048
            },
            "campaignId": {
              "$ref": "#/$defs/__schema0"
            },
            "nodeId": {
              "$ref": "#/$defs/__schema0"
            },
            "saleId": {
              "$ref": "#/$defs/__schema0"
            },
            "merchantId": {
              "$ref": "#/$defs/__schema0"
            }
          },
          "required": ["page"],
          "additionalProperties": false
        },
        "target": {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "enum": ["campaign", "link", "merchant", "distributor", "sale"]
            },
            "id": {
              "$ref": "#/$defs/__schema0"
            }
          },
          "required": ["kind", "id"],
          "additionalProperties": false
        }
      },
      "required": ["category", "message", "context"],
      "additionalProperties": false,
      "$defs": {
        "__schema0": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[a-zA-Z0-9_-]+$"
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "ticketId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[a-zA-Z0-9_-]+$"
        }
      },
      "required": ["ticketId"],
      "additionalProperties": false
    }
    ```
  </Accordion>
</AccordionGroup>

## support.contact

**POST `/v1/support/contact`** · **Core live** · Access: **public**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L610).

**Client input fields**

| Field | Type | Required | Constraints |
| - | - | - | - |
| `subject` | string | Yes | Min length: 3; Max length: 150 |
| `message` | string | Yes | Min length: 20; Max length: 5000 |
| `email` | string | Yes | Format: email; Pattern validated; see input schema |

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "subject": {
          "type": "string",
          "minLength": 3,
          "maxLength": 150
        },
        "message": {
          "type": "string",
          "minLength": 20,
          "maxLength": 5000
        },
        "email": {
          "type": "string",
          "format": "email",
          "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
        }
      },
      "required": ["subject", "message", "email"]
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "ticketId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[a-zA-Z0-9_-]+$"
        }
      },
      "required": ["ticketId"],
      "additionalProperties": false
    }
    ```
  </Accordion>
</AccordionGroup>

## support.mine

**GET `/v1/me/support`** · **Core live** · Access: **session**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L618).

An authenticated session is necessary; ownership, merchant/operator scope, and any fresh-confirmation requirements are checked separately by the service.

**Client input fields**

No fields. Use an empty object for the client method input.

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "^[a-zA-Z0-9_-]+$"
          },
          "subject": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": ["open", "answered", "resolved", "declined"]
          },
          "createdAt": {
            "$ref": "#/$defs/__schema0"
          },
          "updatedAt": {
            "$ref": "#/$defs/__schema0"
          }
        },
        "required": [
          "id",
          "subject",
          "category",
          "status",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      },
      "$defs": {
        "__schema0": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## system.health

**GET `/v1/health`** · **Core live** · Access: **public**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L619).

**Client input fields**

No fields. Use an empty object for the client method input.

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "api": {
          "type": "string",
          "enum": ["ok", "degraded", "down", "not_configured"]
        },
        "database": {
          "type": "string",
          "enum": ["ok", "degraded", "down", "not_configured"]
        },
        "rpc": {
          "type": "string",
          "enum": ["ok", "degraded", "down", "not_configured"]
        },
        "indexer": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string",
              "enum": ["ok", "degraded", "down", "not_configured"]
            },
            "lastBlock": {
              "anyOf": [
                {
                  "$ref": "#/$defs/__schema0"
                },
                {
                  "type": "null"
                }
              ]
            },
            "lagSeconds": {
              "anyOf": [
                {
                  "type": "number",
                  "minimum": 0
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": ["status", "lastBlock", "lagSeconds"],
          "additionalProperties": false
        },
        "chainHead": {
          "anyOf": [
            {
              "$ref": "#/$defs/__schema0"
            },
            {
              "type": "null"
            }
          ]
        },
        "chainId": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "protocolAddress": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^0x[0-9a-fA-F]{40}$"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "api",
        "database",
        "rpc",
        "indexer",
        "chainHead",
        "chainId",
        "protocolAddress"
      ],
      "additionalProperties": false,
      "$defs": {
        "__schema0": {
          "type": "string"
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## system.status

**GET `/v1/system/status`** · **Core live** · Access: **public**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L620).

**Client input fields**

No fields. Use an empty object for the client method input.

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "indexer": {
          "type": "object",
          "properties": {
            "name": {
              "type": ["string", "null"]
            },
            "indexedBlock": {
              "anyOf": [
                {
                  "$ref": "#/$defs/__schema0"
                },
                {
                  "type": "null"
                }
              ]
            },
            "chainHead": {
              "$ref": "#/$defs/__schema0"
            },
            "chainTime": {
              "$ref": "#/$defs/__schema1"
            },
            "lagBlocks": {
              "anyOf": [
                {
                  "$ref": "#/$defs/__schema0"
                },
                {
                  "type": "null"
                }
              ]
            },
            "lagSeconds": {
              "anyOf": [
                {
                  "type": "number",
                  "minimum": 0
                },
                {
                  "type": "null"
                }
              ]
            },
            "state": {
              "type": "string",
              "enum": ["live", "syncing", "behind", "not_configured"]
            }
          },
          "required": [
            "name",
            "indexedBlock",
            "chainHead",
            "chainTime",
            "lagBlocks",
            "lagSeconds",
            "state"
          ],
          "additionalProperties": false
        },
        "reconciliation": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "matches": {
                  "type": "boolean"
                },
                "blockNumber": {
                  "$ref": "#/$defs/__schema0"
                },
                "rewardIndex": {
                  "$ref": "#/$defs/__schema2"
                },
                "rewardChain": {
                  "$ref": "#/$defs/__schema2"
                },
                "proceedsIndex": {
                  "$ref": "#/$defs/__schema3"
                },
                "proceedsChain": {
                  "$ref": "#/$defs/__schema3"
                },
                "mismatches": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "campaignId": {
                        "anyOf": [
                          {
                            "$ref": "#/$defs/__schema0"
                          },
                          {
                            "type": "string",
                            "pattern": "^demo-[\\w-]+$"
                          }
                        ]
                      },
                      "field": {
                        "type": "string"
                      },
                      "indexed": {
                        "$ref": "#/$defs/__schema0"
                      },
                      "canonical": {
                        "$ref": "#/$defs/__schema0"
                      }
                    },
                    "required": ["campaignId", "field", "indexed", "canonical"],
                    "additionalProperties": false
                  }
                }
              },
              "required": [
                "matches",
                "blockNumber",
                "rewardIndex",
                "rewardChain",
                "proceedsIndex",
                "proceedsChain",
                "mismatches"
              ],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "incidents": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[a-zA-Z0-9_-]+$"
              },
              "title": {
                "type": "string"
              },
              "impact": {
                "type": "string"
              },
              "severity": {
                "type": "string",
                "enum": ["degraded", "outage", "maintenance"]
              },
              "startsAt": {
                "$ref": "#/$defs/__schema1"
              },
              "endsAt": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/__schema1"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "updatedAt": {
                "$ref": "#/$defs/__schema1"
              },
              "updates": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    },
                    "at": {
                      "$ref": "#/$defs/__schema1"
                    }
                  },
                  "required": ["message", "at"],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "id",
              "title",
              "impact",
              "severity",
              "startsAt",
              "endsAt",
              "updatedAt",
              "updates"
            ],
            "additionalProperties": false
          }
        },
        "maintenanceWindow": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "from": {
                  "$ref": "#/$defs/__schema1"
                },
                "to": {
                  "$ref": "#/$defs/__schema1"
                }
              },
              "required": ["from", "to"],
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": ["indexer", "reconciliation", "incidents", "maintenanceWindow"],
      "additionalProperties": false,
      "$defs": {
        "__schema0": {
          "type": "string"
        },
        "__schema1": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        },
        "__schema2": {
          "type": "object",
          "properties": {
            "netDeposited": {
              "$ref": "#/$defs/__schema0"
            },
            "available": {
              "$ref": "#/$defs/__schema0"
            },
            "pendingReserved": {
              "$ref": "#/$defs/__schema0"
            },
            "vestedUnclaimed": {
              "$ref": "#/$defs/__schema0"
            },
            "rewardsClaimed": {
              "$ref": "#/$defs/__schema0"
            },
            "surplusWithdrawn": {
              "$ref": "#/$defs/__schema0"
            }
          },
          "required": [
            "netDeposited",
            "available",
            "pendingReserved",
            "vestedUnclaimed",
            "rewardsClaimed",
            "surplusWithdrawn"
          ],
          "additionalProperties": false
        },
        "__schema3": {
          "type": "object",
          "properties": {
            "proceedsPending": {
              "$ref": "#/$defs/__schema0"
            },
            "proceedsClaimable": {
              "$ref": "#/$defs/__schema0"
            },
            "proceedsClaimed": {
              "$ref": "#/$defs/__schema0"
            },
            "buyerRefunded": {
              "$ref": "#/$defs/__schema0"
            }
          },
          "required": [
            "proceedsPending",
            "proceedsClaimable",
            "proceedsClaimed",
            "buyerRefunded"
          ],
          "additionalProperties": false
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## system.contracts

**GET `/v1/system/contracts`** · **Core live** · Access: **public**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L621).

**Client input fields**

No fields. Use an empty object for the client method input.

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "contracts": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "address": {
                "type": "string",
                "pattern": "^0x[0-9a-fA-F]{40}$"
              },
              "deployedBlock": {
                "type": "string"
              },
              "deploymentTx": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/__schema0"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "abiHash": {
                "$ref": "#/$defs/__schema0"
              },
              "sourceVerified": {
                "type": "boolean"
              },
              "version": {
                "type": "string"
              }
            },
            "required": [
              "name",
              "address",
              "deployedBlock",
              "deploymentTx",
              "abiHash",
              "sourceVerified",
              "version"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": ["contracts"],
      "additionalProperties": false,
      "$defs": {
        "__schema0": {
          "type": "string",
          "pattern": "^0x[0-9a-fA-F]{64}$"
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## system.endpoints

**GET `/v1/system/endpoints`** · **Core live** · Access: **public**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L622).

**Client input fields**

No fields. Use an empty object for the client method input.

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "enum": ["GET", "POST", "PUT", "PATCH", "DELETE"]
          },
          "path": {
            "type": "string"
          },
          "auth": {
            "type": "string",
            "enum": ["public", "session", "owner", "merchant", "operator"]
          },
          "inputSchema": {
            "type": "string"
          },
          "outputSchema": {
            "type": "string"
          },
          "rateLimit": {
            "type": "object",
            "properties": {
              "requests": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "windowSeconds": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              }
            },
            "required": ["requests", "windowSeconds"],
            "additionalProperties": false
          },
          "apiVersion": {
            "type": "string",
            "const": "v1"
          },
          "availability": {
            "type": "string",
            "enum": ["live", "designed", "requires_contract"]
          }
        },
        "required": [
          "method",
          "path",
          "auth",
          "inputSchema",
          "outputSchema",
          "rateLimit",
          "apiVersion",
          "availability"
        ],
        "additionalProperties": false
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## system.events

**GET `/v1/system/events`** · **Core live** · Access: **public**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L623).

**Client input fields**

| Field | Type | Required | Constraints |
| - | - | - | - |
| `name` | string | No | See nested schema and runtime validation |
| `limit` | integer | No | Minimum: 1; Maximum: 100 |

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "tx": {
            "type": "object",
            "properties": {
              "hash": {
                "type": "string",
                "pattern": "^0x[0-9a-fA-F]{64}$"
              },
              "blockNumber": {
                "type": "string"
              },
              "explorerUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "at": {
                "$ref": "#/$defs/__schema0"
              }
            },
            "required": ["hash", "blockNumber", "explorerUrl"],
            "additionalProperties": false
          },
          "logIndex": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "at": {
            "$ref": "#/$defs/__schema0"
          },
          "actor": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "address": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^0x[0-9a-fA-F]{40}$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "handle": {
                    "type": ["string", "null"]
                  },
                  "displayName": {
                    "type": ["string", "null"]
                  },
                  "visibility": {
                    "type": "string",
                    "enum": ["public", "pseudonymous", "private"]
                  }
                },
                "required": ["address", "handle", "displayName", "visibility"],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "args": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              ]
            }
          }
        },
        "required": ["name", "tx", "logIndex", "at", "actor", "args"],
        "additionalProperties": false
      },
      "$defs": {
        "__schema0": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## playground.run

**POST `/v1/playground`** · **Core live** · Access: **public**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L627).

**Client input fields**

| Field | Type | Required | Constraints |
| - | - | - | - |
| `path` | string | Yes | Min length: 4; Max length: 2048 |

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "minLength": 4,
          "maxLength": 2048
        }
      },
      "required": ["path"]
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "status": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "headers": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "type": "string"
          }
        },
        "body": {
          "type": "string"
        },
        "durationMs": {
          "type": "number",
          "minimum": 0
        },
        "size": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        }
      },
      "required": ["status", "headers", "body", "durationMs", "size"],
      "additionalProperties": false
    }
    ```
  </Accordion>
</AccordionGroup>

## clients.list

**GET `/v1/clients`** · **Designed — unavailable** · Access: **public**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L637).

**Client input fields**

No fields. Use an empty object for the client method input.

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "maker": {
            "type": "string"
          },
          "purpose": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": ["web", "widget", "sdk", "wallet"]
          },
          "uses": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "protocolVersion": {
            "type": "string"
          },
          "checks": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "lastCheckedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
          }
        },
        "required": [
          "name",
          "maker",
          "purpose",
          "type",
          "uses",
          "protocolVersion",
          "checks",
          "lastCheckedAt"
        ],
        "additionalProperties": false
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## ops.queue

**GET `/v1/ops/queue`** · **Core live** · Access: **session**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L638).

An authenticated session is necessary; ownership, merchant/operator scope, and any fresh-confirmation requirements are checked separately by the service.

**Client input fields**

| Field | Type | Required | Constraints |
| - | - | - | - |
| `cursor` | string | No | See nested schema and runtime validation |
| `limit` | integer | No | Minimum: 1; Maximum: 100 |

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "cursor": {
          "type": "string"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[a-zA-Z0-9_-]+$"
              },
              "category": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": ["open", "closed"]
              },
              "revision": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "assignedTo": {
                "type": ["string", "null"]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
              }
            },
            "required": [
              "id",
              "category",
              "status",
              "revision",
              "assignedTo",
              "createdAt"
            ],
            "additionalProperties": false
          }
        },
        "nextCursor": {
          "type": ["string", "null"]
        }
      },
      "required": ["items", "nextCursor"],
      "additionalProperties": false
    }
    ```
  </Accordion>
</AccordionGroup>

## ops.case

**GET `/v1/ops/cases/:id`** · **Core live** · Access: **session**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L639).

An authenticated session is necessary; ownership, merchant/operator scope, and any fresh-confirmation requirements are checked separately by the service.

**Client input fields**

| Field | Type | Required | Constraints |
| - | - | - | - |
| `id` | string | Yes | Min length: 1; Max length: 100; Pattern validated; see input schema |

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[a-zA-Z0-9_-]+$"
        }
      },
      "required": ["id"]
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[a-zA-Z0-9_-]+$"
        },
        "category": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": ["open", "closed"]
        },
        "revision": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "assignedTo": {
          "type": ["string", "null"]
        },
        "createdAt": {
          "$ref": "#/$defs/__schema0"
        },
        "evidence": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "hash": {
                "type": "string",
                "pattern": "^0x[0-9a-fA-F]{64}$"
              },
              "blockNumber": {
                "type": "string"
              },
              "explorerUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "at": {
                "$ref": "#/$defs/__schema0"
              }
            },
            "required": ["hash", "blockNumber", "explorerUrl"],
            "additionalProperties": false
          }
        },
        "notes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "actor": {
                "type": "string"
              },
              "internalNote": {
                "type": "string"
              },
              "publicNote": {
                "type": ["string", "null"]
              },
              "at": {
                "$ref": "#/$defs/__schema0"
              }
            },
            "required": ["actor", "internalNote", "publicNote", "at"],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "id",
        "category",
        "status",
        "revision",
        "assignedTo",
        "createdAt",
        "evidence",
        "notes"
      ],
      "additionalProperties": false,
      "$defs": {
        "__schema0": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## ops.act

**POST `/v1/ops/cases/:id/actions`** · **Core live** · Access: **session**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L640).

An authenticated session is necessary; ownership, merchant/operator scope, and any fresh-confirmation requirements are checked separately by the service.

HTTP body mapping: send the `action` property itself after removing path fields, rather than the complete client input wrapper.

**Client input fields**

| Field | Type | Required | Constraints |
| - | - | - | - |
| `id` | string | Yes | Min length: 1; Max length: 100; Pattern validated; see input schema |
| `action` | object | Yes | See nested schema and runtime validation |

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[a-zA-Z0-9_-]+$"
        },
        "action": {
          "type": "object",
          "properties": {
            "action": {
              "type": "string",
              "enum": [
                "addNote",
                "assign",
                "close",
                "reopen",
                "openCase",
                "dismissReport",
                "acknowledgeAlert",
                "requestInformation",
                "hideFromDiscovery",
                "addPublicNotice",
                "freezeNewActivity",
                "askMerchantToPause",
                "restore",
                "liftFreeze"
              ]
            },
            "revision": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "reasonCategory": {
              "type": "string"
            },
            "internalNote": {
              "type": "string",
              "minLength": 20,
              "maxLength": 1000
            },
            "publicNote": {
              "type": "string",
              "maxLength": 280
            },
            "assignee": {
              "type": "string"
            }
          },
          "required": ["action", "revision", "reasonCategory", "internalNote"]
        }
      },
      "required": ["id", "action"]
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[a-zA-Z0-9_-]+$"
        },
        "category": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": ["open", "closed"]
        },
        "revision": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "assignedTo": {
          "type": ["string", "null"]
        },
        "createdAt": {
          "$ref": "#/$defs/__schema0"
        },
        "evidence": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "hash": {
                "type": "string",
                "pattern": "^0x[0-9a-fA-F]{64}$"
              },
              "blockNumber": {
                "type": "string"
              },
              "explorerUrl": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "at": {
                "$ref": "#/$defs/__schema0"
              }
            },
            "required": ["hash", "blockNumber", "explorerUrl"],
            "additionalProperties": false
          }
        },
        "notes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "actor": {
                "type": "string"
              },
              "internalNote": {
                "type": "string"
              },
              "publicNote": {
                "type": ["string", "null"]
              },
              "at": {
                "$ref": "#/$defs/__schema0"
              }
            },
            "required": ["actor", "internalNote", "publicNote", "at"],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "id",
        "category",
        "status",
        "revision",
        "assignedTo",
        "createdAt",
        "evidence",
        "notes"
      ],
      "additionalProperties": false,
      "$defs": {
        "__schema0": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## ops.moderation

**GET `/v1/ops/moderation`** · **Core live** · Access: **session**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L641).

An authenticated session is necessary; ownership, merchant/operator scope, and any fresh-confirmation requirements are checked separately by the service.

**Client input fields**

| Field | Type | Required | Constraints |
| - | - | - | - |
| `cursor` | string | No | See nested schema and runtime validation |
| `limit` | integer | No | Minimum: 1; Maximum: 100 |

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "cursor": {
          "type": "string"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[a-zA-Z0-9_-]+$"
              },
              "subject": {
                "type": "string"
              },
              "category": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": ["open", "answered", "resolved", "declined"]
              },
              "createdAt": {
                "$ref": "#/$defs/__schema0"
              },
              "updatedAt": {
                "$ref": "#/$defs/__schema0"
              }
            },
            "required": [
              "id",
              "subject",
              "category",
              "status",
              "createdAt",
              "updatedAt"
            ],
            "additionalProperties": false
          }
        },
        "nextCursor": {
          "type": ["string", "null"]
        }
      },
      "required": ["items", "nextCursor"],
      "additionalProperties": false,
      "$defs": {
        "__schema0": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## ops.audit

**GET `/v1/ops/audit`** · **Core live** · Access: **session**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L642).

An authenticated session is necessary; ownership, merchant/operator scope, and any fresh-confirmation requirements are checked separately by the service.

**Client input fields**

| Field | Type | Required | Constraints |
| - | - | - | - |
| `cursor` | string | No | See nested schema and runtime validation |
| `limit` | integer | No | Minimum: 1; Maximum: 100 |

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "cursor": {
          "type": "string"
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "^[a-zA-Z0-9_-]+$"
              },
              "actor": {
                "type": "string"
              },
              "role": {
                "type": "string"
              },
              "resource": {
                "type": "string"
              },
              "action": {
                "type": "string"
              },
              "beforeHash": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/__schema0"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "afterHash": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/__schema0"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "at": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
              }
            },
            "required": [
              "id",
              "actor",
              "role",
              "resource",
              "action",
              "beforeHash",
              "afterHash",
              "at"
            ],
            "additionalProperties": false
          }
        },
        "nextCursor": {
          "type": ["string", "null"]
        }
      },
      "required": ["items", "nextCursor"],
      "additionalProperties": false,
      "$defs": {
        "__schema0": {
          "type": "string",
          "pattern": "^0x[0-9a-fA-F]{64}$"
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## ops.reconciliation

**GET `/v1/ops/reconciliation`** · **Core live** · Access: **session**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L643).

An authenticated session is necessary; ownership, merchant/operator scope, and any fresh-confirmation requirements are checked separately by the service.

**Client input fields**

No fields. Use an empty object for the client method input.

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "matches": {
            "type": "boolean"
          },
          "blockNumber": {
            "$ref": "#/$defs/__schema0"
          },
          "rewardIndex": {
            "$ref": "#/$defs/__schema1"
          },
          "rewardChain": {
            "$ref": "#/$defs/__schema1"
          },
          "proceedsIndex": {
            "$ref": "#/$defs/__schema2"
          },
          "proceedsChain": {
            "$ref": "#/$defs/__schema2"
          },
          "mismatches": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "campaignId": {
                  "anyOf": [
                    {
                      "$ref": "#/$defs/__schema0"
                    },
                    {
                      "type": "string",
                      "pattern": "^demo-[\\w-]+$"
                    }
                  ]
                },
                "field": {
                  "type": "string"
                },
                "indexed": {
                  "$ref": "#/$defs/__schema0"
                },
                "canonical": {
                  "$ref": "#/$defs/__schema0"
                }
              },
              "required": ["campaignId", "field", "indexed", "canonical"],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "matches",
          "blockNumber",
          "rewardIndex",
          "rewardChain",
          "proceedsIndex",
          "proceedsChain",
          "mismatches"
        ],
        "additionalProperties": false
      },
      "$defs": {
        "__schema0": {
          "type": "string"
        },
        "__schema1": {
          "type": "object",
          "properties": {
            "netDeposited": {
              "$ref": "#/$defs/__schema0"
            },
            "available": {
              "$ref": "#/$defs/__schema0"
            },
            "pendingReserved": {
              "$ref": "#/$defs/__schema0"
            },
            "vestedUnclaimed": {
              "$ref": "#/$defs/__schema0"
            },
            "rewardsClaimed": {
              "$ref": "#/$defs/__schema0"
            },
            "surplusWithdrawn": {
              "$ref": "#/$defs/__schema0"
            }
          },
          "required": [
            "netDeposited",
            "available",
            "pendingReserved",
            "vestedUnclaimed",
            "rewardsClaimed",
            "surplusWithdrawn"
          ],
          "additionalProperties": false
        },
        "__schema2": {
          "type": "object",
          "properties": {
            "proceedsPending": {
              "$ref": "#/$defs/__schema0"
            },
            "proceedsClaimable": {
              "$ref": "#/$defs/__schema0"
            },
            "proceedsClaimed": {
              "$ref": "#/$defs/__schema0"
            },
            "buyerRefunded": {
              "$ref": "#/$defs/__schema0"
            }
          },
          "required": [
            "proceedsPending",
            "proceedsClaimable",
            "proceedsClaimed",
            "buyerRefunded"
          ],
          "additionalProperties": false
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>

## ops.runReconciliation

**POST `/v1/ops/reconciliation`** · **Core live** · Access: **session**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L644).

An authenticated session is necessary; ownership, merchant/operator scope, and any fresh-confirmation requirements are checked separately by the service.

**Client input fields**

No fields. Use an empty object for the client method input.

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "runId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[a-zA-Z0-9_-]+$"
        }
      },
      "required": ["runId"],
      "additionalProperties": false
    }
    ```
  </Accordion>
</AccordionGroup>

## ops.incident

**POST `/v1/ops/incidents`** · **Core live** · Access: **session**. [Source definition](https://github.com/Enoch208/spoke/blob/1c90c5e408592d5b4e87944ea79b998890633249/packages/protocol/src/api/methods.ts#L645).

An authenticated session is necessary; ownership, merchant/operator scope, and any fresh-confirmation requirements are checked separately by the service.

**Client input fields**

| Field | Type | Required | Constraints |
| - | - | - | - |
| `id` | string | No | Min length: 1; Max length: 100; Pattern validated; see input schema |
| `title` | string | Yes | Min length: 5; Max length: 150 |
| `impact` | string | Yes | Min length: 10; Max length: 1000 |
| `severity` | "degraded" · "outage" · "maintenance" | Yes | See nested schema and runtime validation |
| `publicMessage` | string | Yes | Min length: 10; Max length: 2000 |
| `status` | "open" · "resolved" | Yes | See nested schema and runtime validation |

<AccordionGroup>
  <Accordion title="Structural input JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[a-zA-Z0-9_-]+$"
        },
        "title": {
          "type": "string",
          "minLength": 5,
          "maxLength": 150
        },
        "impact": {
          "type": "string",
          "minLength": 10,
          "maxLength": 1000
        },
        "severity": {
          "type": "string",
          "enum": ["degraded", "outage", "maintenance"]
        },
        "publicMessage": {
          "type": "string",
          "minLength": 10,
          "maxLength": 2000
        },
        "status": {
          "type": "string",
          "enum": ["open", "resolved"]
        }
      },
      "required": ["title", "impact", "severity", "publicMessage", "status"]
    }
    ```
  </Accordion>

  <Accordion title="Structural output JSON schema">
    ```json theme={null}
    {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "^[a-zA-Z0-9_-]+$"
        },
        "title": {
          "type": "string"
        },
        "impact": {
          "type": "string"
        },
        "severity": {
          "type": "string",
          "enum": ["degraded", "outage", "maintenance"]
        },
        "startsAt": {
          "$ref": "#/$defs/__schema0"
        },
        "endsAt": {
          "anyOf": [
            {
              "$ref": "#/$defs/__schema0"
            },
            {
              "type": "null"
            }
          ]
        },
        "updatedAt": {
          "$ref": "#/$defs/__schema0"
        },
        "updates": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "message": {
                "type": "string"
              },
              "at": {
                "$ref": "#/$defs/__schema0"
              }
            },
            "required": ["message", "at"],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "id",
        "title",
        "impact",
        "severity",
        "startsAt",
        "endsAt",
        "updatedAt",
        "updates"
      ],
      "additionalProperties": false,
      "$defs": {
        "__schema0": {
          "type": "string",
          "format": "date-time",
          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
        }
      }
    }
    ```
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.