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

# Run a GraphQL query

> Executes one GraphQL operation against the indexer of the selected chain. Every table has a singular query by
primary key and a plural query with `where`, `orderBy`, `orderDirection`, `limit` (max 1000) and `after` /
`before` cursors. Note the plural names `launchs` and `currencys`. Bigint columns are returned as decimal
strings, hex columns lowercase. Opening this path in a browser (`GET`) loads GraphiQL.




## OpenAPI

````yaml /openapi/windrose.yaml post /graphql
openapi: 3.1.0
info:
  title: Windrose API
  version: 1.0.0
  summary: Public indexer and web-app endpoints for Windrose.
  description: >
    Windrose runs one [Ponder](https://ponder.sh) indexer per chain. Each
    indexer serves the GraphQL API at

    `POST /graphql` plus the status routes below. The two `/api/*` routes are
    served by the web app on

    `https://windrose.market` and describe the registered chains and their
    contract addresses.


    No authentication. Every response carries `access-control-allow-origin: *`.
    The endpoints are public and best-effort.
  contact:
    name: Windrose
    url: https://windrose.market
servers:
  - url: https://api.windrose.market
    description: Robinhood Chain indexer
  - url: https://api.windrose.market/testnet
    description: Robinhood testnet indexer
  - url: https://api-arc.windrose.market
    description: Arc testnet indexer
security: []
tags:
  - name: GraphQL
    description: >-
      The indexer's GraphQL API. Conventions and per-table queries are
      documented in the GraphQL pages.
  - name: Indexer status
    description: >-
      Liveness, readiness, indexing progress and Prometheus metrics of an
      indexer.
  - name: Web app
    description: JSON routes of the Windrose web app on windrose.market.
paths:
  /graphql:
    post:
      tags:
        - GraphQL
      summary: Run a GraphQL query
      description: >
        Executes one GraphQL operation against the indexer of the selected
        chain. Every table has a singular query by

        primary key and a plural query with `where`, `orderBy`,
        `orderDirection`, `limit` (max 1000) and `after` /

        `before` cursors. Note the plural names `launchs` and `currencys`.
        Bigint columns are returned as decimal

        strings, hex columns lowercase. Opening this path in a browser (`GET`)
        loads GraphiQL.
      operationId: graphql
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GraphQLRequest'
            example:
              query: |
                query Launches($limit: Int) {
                  launchs(orderBy: "createdAt", orderDirection: "desc", limit: $limit) {
                    items { token symbol currency lastPriceQuote lastPriceUsd volumeQuote holderCount graduated }
                    pageInfo { hasNextPage endCursor }
                  }
                }
              variables:
                limit: 2
      responses:
        '200':
          description: >-
            The operation ran. Field errors, if any, are in `errors` next to a
            partial `data`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GraphQLResponse'
              example:
                data:
                  launchs:
                    items:
                      - token: '0x9c1f0a4a5d1c6b0d2b4b0f9d6a5e4c3b2a190807'
                        symbol: CHAI
                        currency: INR
                        lastPriceQuote: '16000000000000'
                        lastPriceUsd: '192192192192'
                        volumeQuote: '412000000000000000000000'
                        holderCount: 37
                        graduated: false
                      - token: '0x5b7d9e2f3c4a1b0e8d7c6f5a4b3c2d1e0f9a8b7c'
                        symbol: CAFE
                        currency: USD
                        lastPriceQuote: '8000000000000'
                        lastPriceUsd: '8000000000000'
                        volumeQuote: '1250000000000000000000'
                        holderCount: 12
                        graduated: false
                    pageInfo:
                      hasNextPage: true
                      endCursor: eyJjcmVhdGVkQXQiOiIxNzg5Njk1MTAwIn0=
        '400':
          description: >-
            The request body is not a valid GraphQL document or fails validation
            (for example an unknown column in `orderBy`, or `limit` above 1000).
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/GraphQLError'
              example:
                errors:
                  - message: Invalid limit. Got 5000, expected <=1000.
components:
  schemas:
    GraphQLRequest:
      type: object
      required:
        - query
      properties:
        query:
          type: string
          description: The GraphQL document.
        variables:
          type: object
          description: >-
            Values for the document's variables. Bigint arguments are passed as
            strings.
          additionalProperties: true
        operationName:
          type: string
          description: Which operation to run when the document defines several.
    GraphQLResponse:
      type: object
      properties:
        data:
          type:
            - object
            - 'null'
          description: >-
            The selected fields, keyed by query name. Bigints are decimal
            strings; hex values are lowercase.
          additionalProperties: true
        errors:
          type: array
          items:
            $ref: '#/components/schemas/GraphQLError'
    GraphQLError:
      type: object
      required:
        - message
      properties:
        message:
          type: string
        locations:
          type: array
          items:
            type: object
            properties:
              line:
                type: integer
              column:
                type: integer
        path:
          type: array
          items:
            oneOf:
              - type: string
              - type: integer

````