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

# Get a grid

> Read a grid's sheets and each sheet's columns.



## OpenAPI

````yaml api-reference/openapi.yaml GET /v1/grids/{grid_id}
openapi: 3.0.3
info:
  title: QX API
  version: '1.0'
  description: >-
    Run what you build in QX from your own code. Message agents, execute flows
    and grids, and read their results.
servers:
  - url: https://api.qxlabs.com
security:
  - bearerAuth: []
tags:
  - name: Agents
    description: >-
      Message agents through OpenAI's Responses API, so OpenAI's SDKs work with
      a QX API key.
  - name: Flows
    description: Execute flows and follow their executions.
  - name: Grids
    description: Execute grids, follow their executions and read their rows.
paths:
  /v1/grids/{grid_id}:
    get:
      tags:
        - Grids
      summary: Get a grid
      description: >
        Returns the IDs you need for the other grid endpoints: the grid's sheets
        and each sheet's columns.

        Rows come from the sheet endpoint. Prompts, credentials and other column
        settings are never returned.
      operationId: getGrid
      parameters:
        - name: grid_id
          in: path
          required: true
          schema:
            type: string
          description: The grid's ID, as shown in its URL in the app
          example: 3e7a9c415b2d4f8ea6c19d0b2e4f7a18
      responses:
        '200':
          description: The grid
          content:
            application/json:
              schema:
                type: object
                properties:
                  grid_id:
                    type: string
                  name:
                    type: string
                  description:
                    type: string
                    nullable: true
                  sheets:
                    type: array
                    items:
                      type: object
                      properties:
                        sheet_id:
                          type: string
                        name:
                          type: string
                        columns:
                          type: array
                          description: Every column on the sheet
                          items:
                            type: object
                            properties:
                              column_id:
                                type: string
                              name:
                                type: string
                              type:
                                type: string
                                description: >-
                                  The column's processor. `ManualInputProcessor`
                                  is an input column, anything else is computed
              example:
                grid_id: 3e7a9c415b2d4f8ea6c19d0b2e4f7a18
                name: Lead research
                description: null
                sheets:
                  - sheet_id: b2d4f6a81c3e4a5b8d7f0e9c2a4b6d81
                    name: Companies
                    columns:
                      - column_id: c1a2b3c4d5e64f708a9b0c1d2e3f4a5b
                        name: Domain
                        type: ManualInputProcessor
                      - column_id: 9f8e7d6c5b4a439281706f5e4d3c2b1a
                        name: Summary
                        type: QueryAIProcessor
        '403':
          description: The grid is in your org but isn't shared with you
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: There's no such grid, or it belongs to another org
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: Read rate limit exceeded for grids endpoints
      x-codeSamples:
        - lang: bash
          label: cURL
          source: >
            curl
            https://api.qxlabs.com/v1/grids/3e7a9c415b2d4f8ea6c19d0b2e4f7a18 \
              -H "Authorization: Bearer <YOUR_QX_API_KEY>"
        - lang: python
          label: Python
          source: >
            import requests


            headers = {"Authorization": "Bearer <YOUR_QX_API_KEY>"}


            grid =
            requests.get("https://api.qxlabs.com/v1/grids/3e7a9c415b2d4f8ea6c19d0b2e4f7a18",
            headers=headers).json()

            for sheet in grid["sheets"]:
                print(sheet["sheet_id"], sheet["name"])
                for column in sheet["columns"]:
                    print(" ", column["column_id"], column["name"], column["type"])
        - lang: typescript
          label: TypeScript
          source: >
            const headers = { Authorization: "Bearer <YOUR_QX_API_KEY>" };


            const response = await
            fetch("https://api.qxlabs.com/v1/grids/3e7a9c415b2d4f8ea6c19d0b2e4f7a18",
            { headers });

            const grid = await response.json();

            for (const sheet of grid.sheets) {
              console.log(sheet.sheet_id, sheet.name);
              for (const column of sheet.columns) console.log(" ", column.column_id, column.name, column.type);
            }
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
          description: What went wrong
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Your QX API key. The `X-API-Key` header works too

````

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