---
title: "Information Block"
method: POST
path: "/extensions/roboledger/{graph_id}/operations/information-block"
tags: ["RoboLedger: Analytical Views"]
---

# Information Block

`POST /extensions/roboledger/{graph_id}/operations/information-block`

## Request

- Base URL: `https://api.robosystems.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.robosystems.ai/extensions/roboledger/{graph_id}/operations/information-block`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

One section of a report read whole — the expensive call: rows in presentation order with the consolidated value per period column, the same rows broken out by the section's own axes, the axes with the members that carry facts, every total's calculation children with a footing check, and the section's text blocks. Member breakdowns and period columns are kept most-reported / most-recent first up to a response budget; a row is never left blank by a cut, and `members_omitted` / `periods_omitted` say what was. A block longer than `max_rows` is `truncated`; pass its `next_offset` as `offset` for the next page. Take `block` from `disclosures`. Same resolution as `disclosures`: `ticker` or `report_id` on shared-repo graphs, `report_id` on tenant graphs. On a tenant graph this reads the section as the ledger's report holds it; `get-information-block` returns one authored block's envelope with its rules and verification.

**Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict.

## Path parameters

- `graph_id` string, required

## Headers

- `Idempotency-Key` string, nullable

## Request body

- InformationBlockRequest: Request for the information-block view op — one section read whole.
  - `ticker` string, nullable: Company ticker. On shared-repository graphs (SEC) it resolves the latest matching filing when report_id is not given; ignored on tenant graphs.
  - `report_id` string, nullable: Specific report identifier. Required on tenant graphs; on SEC, optional when ticker is given.
  - `fiscal_year` integer, nullable: Narrow auto-resolution to this fiscal year focus
  - `period_type` string, nullable: Which forms auto-resolution considers: annual (10-K / 20-F / 40-F, the default) or quarterly (10-Q as well)
  - `block` string, required: The block id from disclosures (a role name or its last segment also resolves)
  - `periods` string[], nullable: Period keys to keep, from a previous call's columns. Default keeps the budgeted set, year and balance columns first on an annual form.
  - `member` string, nullable: Keep only breakdowns whose member key contains this text (a segment name)
  - `max_rows` integer, nullable: Cap on presentation rows (default 400)
  - `max_members` integer, nullable: An explicit cap on member breakdowns, instead of the response budget
  - `offset` integer, nullable: Rows to skip: the next_offset a truncated response returned

## Response `200`

Successful Response

- OperationEnvelopeInformationBlockResponse
  - `operation` string, required: Kebab-case operation name
  - `operationId` string, required: op_-prefixed ULID for audit and SSE correlation
  - `status` 'completed' | 'pending' | 'failed', required: Operation lifecycle state
  - `result` InformationBlockResponse: The information-block view op's result: xbrlkit's block, stamped.
    - `graph_id` string, required
    - `report_id` string, required
    - `resolved_report` ResolvedReportInfo: Information about the auto-resolved report.
      - `report_id` string, required
      - `form` string, nullable
      - `filing_date` string, nullable
      - `fiscal_year` integer, nullable
      - `fiscal_period` string, nullable
      - `links` FilingLinks: Where a filing on a shared repository is served.
        - `viewer` string, nullable: The xbrlkit viewer over the published holon — the link to show the filing
        - `holon` string, nullable
        - `tavi` string, nullable
        - `as_filed` string, nullable: The primary document as filed
        - `exhibits` object, nullable: An 8-K's exhibits by exhibit number (EX-99.1)
        - `manifest` string, nullable: Every file in the filing's public folder, with its URL
        - `edgar` string, nullable: The filing's folder on EDGAR
    - `block` object, required
    - `columns` object[]
    - `axes` object[], nullable
    - `rows` object[]
    - `row_count` integer, nullable
    - `truncated` boolean, nullable
    - `offset` integer, nullable
    - `ancestors` object[], nullable
    - `next_offset` integer, nullable
    - `calculation` object[], nullable
    - `text` object[], nullable
    - `note` string, nullable
  - `at` string, required: ISO-8601 UTC timestamp
  - `createdBy` string, nullable: User ID that initiated the operation
  - `idempotentReplay` boolean: True when this envelope came from the idempotency cache — the underlying command did not execute again. False on fresh executions.

## Other responses

- `400`: Invalid request
- `401`: Authentication required
- `403`: Access denied
- `404`: Resource not found
- `409`: Idempotency-Key conflict — key reused with different body
- `422`: Validation error
- `429`: Rate limit exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/robosystems/apis/robosystems-api.md) · [All operations](https://skmtc.dev/robosystems/apis/robosystems-api/llms.txt) · [OpenAPI document](https://skmtc.dev/robosystems/apis/robosystems-api/revisions/e661e2d5ca6a?raw)
