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

# JSON query



## OpenAPI

````yaml /api-reference/core-data.yaml post /v1/load
openapi: 3.0.0
info:
  title: Cube Core Data REST (JSON) API
  version: 1.0.0
  description: |-
    Deliver data from Cube over HTTP. Run queries with `POST /v1/load` and
    retrieve the data model with `GET /v1/meta`. The `{base_path}` segment
    (`/cubejs-api` by default) is configurable.
servers:
  - url: https://{deployment}.{region}.cubecloudapp.dev/cubejs-api
    description: >-
      Cube Cloud deployment REST API. The host includes your deployment slug and
      region; copy the exact URL from your deployment's API settings. The
      /cubejs-api base path is configurable.
    variables:
      deployment:
        default: your-deployment
        description: Your Cube Cloud deployment slug
      region:
        default: aws-us-east-1
        description: >-
          Cloud region of your deployment, e.g. aws-us-east-1, aws-eu-central-1,
          gcp-us-central1
  - url: http://localhost:4000/cubejs-api
    description: Self-hosted Cube (default port and base path).
security:
  - apiToken: []
tags:
  - name: Data
paths:
  /v1/load:
    post:
      tags:
        - Data
      summary: JSON query
      operationId: loadV1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V1LoadRequest'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1LoadResponse'
        4XX:
          description: Request could not be completed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1Error'
        5XX:
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V1Error'
      security:
        - apiToken: []
components:
  schemas:
    V1LoadRequest:
      type: object
      properties:
        queryType:
          type: string
        cache:
          type: string
          enum:
            - stale-if-slow
            - stale-while-revalidate
            - must-revalidate
            - no-cache
        query:
          $ref: '#/components/schemas/V1LoadRequestQuery'
          type: object
    V1LoadResponse:
      type: object
      required:
        - results
      properties:
        pivotQuery:
          type: object
        slowQuery:
          type: boolean
        queryType:
          type: string
        results:
          type: array
          items:
            $ref: '#/components/schemas/V1LoadResult'
    V1Error:
      type: object
      required:
        - error
      properties:
        error:
          type: string
    V1LoadRequestQuery:
      type: object
      properties:
        measures:
          type: array
          items:
            type: string
        dimensions:
          type: array
          items:
            type: string
        segments:
          type: array
          items:
            type: string
        timeDimensions:
          type: array
          items:
            $ref: '#/components/schemas/V1LoadRequestQueryTimeDimension'
        order:
          type: array
          items:
            type: array
            items:
              type: string
        limit:
          type: integer
          format: int32
        offset:
          type: integer
          format: int32
        filters:
          type: array
          items:
            $ref: '#/components/schemas/V1LoadRequestQueryFilterItem'
        ungrouped:
          type: boolean
        subqueryJoins:
          type: array
          items:
            $ref: '#/components/schemas/V1LoadRequestQueryJoinSubquery'
        joinHints:
          type: array
          items:
            $ref: '#/components/schemas/V1LoadRequestJoinHint'
        timezone:
          type: string
        responseFormat:
          type: string
          description: >-
            Output format of the result `data` payload. `default` returns
            row-oriented data (`V1LoadResultDataRow`); `compact` returns a `{
            members, dataset }` object with rows of primitive arrays
            (`V1LoadResultDataCompact`); `columnar` returns a `{ members,
            columns }` object with one primitive array per member
            (`V1LoadResultDataColumnar`).
          enum:
            - default
            - compact
            - columnar
    V1LoadResult:
      type: object
      required:
        - annotation
        - data
      properties:
        dataSource:
          type: string
        annotation:
          $ref: '#/components/schemas/V1LoadResultAnnotation'
        data:
          $ref: '#/components/schemas/V1LoadResultData'
        refreshKeyValues:
          type: array
          items:
            type: object
        lastRefreshTime:
          type: string
    V1LoadRequestQueryTimeDimension:
      type: object
      required:
        - dimension
      properties:
        dimension:
          type: string
        granularity:
          type: string
        dateRange:
          type: object
    V1LoadRequestQueryFilterItem:
      oneOf:
        - $ref: '#/components/schemas/V1LoadRequestQueryFilterBase'
        - $ref: '#/components/schemas/V1LoadRequestQueryFilterLogicalOr'
        - $ref: '#/components/schemas/V1LoadRequestQueryFilterLogicalAnd'
    V1LoadRequestQueryJoinSubquery:
      type: object
      properties:
        sql:
          type: string
        'on':
          type: string
        joinType:
          type: string
        alias:
          type: string
      required:
        - sql
        - 'on'
        - joinType
        - alias
    V1LoadRequestJoinHint:
      type: array
      items:
        type: string
    V1LoadResultAnnotation:
      type: object
      required:
        - measures
        - dimensions
        - segments
        - timeDimensions
      properties:
        measures:
          type: object
        dimensions:
          type: object
        segments:
          type: object
        timeDimensions:
          type: object
    V1LoadResultData:
      description: >-
        Result `data` payload. Either an array of objects keyed by member name
        (default); a compact `{ members, dataset }` object when
        `responseFormat=compact`; or a columnar `{ members, columns }` object
        when `responseFormat=columnar`.
      oneOf:
        - $ref: '#/components/schemas/V1LoadResultDataRow'
        - $ref: '#/components/schemas/V1LoadResultDataCompact'
        - $ref: '#/components/schemas/V1LoadResultDataColumnar'
    V1LoadRequestQueryFilterBase:
      type: object
      properties:
        member:
          type: string
        operator:
          type: string
        values:
          type: array
          items:
            type: string
    V1LoadRequestQueryFilterLogicalOr:
      type: object
      properties:
        or:
          type: array
          items:
            type: object
    V1LoadRequestQueryFilterLogicalAnd:
      type: object
      properties:
        and:
          type: array
          items:
            type: object
    V1LoadResultDataRow:
      type: array
      description: >-
        Row-oriented (default) data format - an array of rows, each row is an
        object keyed by member name.
      items:
        type: object
    V1LoadResultDataCompact:
      type: object
      description: >-
        Compact data format - a single object with the members list and a
        dataset of primitive arrays. Returned when `responseFormat=compact` is
        requested.
      required:
        - members
        - dataset
      properties:
        members:
          type: array
          description: >-
            Ordered list of member names that correspond to each cell position
            in `dataset` rows.
          items:
            type: string
        dataset:
          type: array
          description: >-
            Array of rows, where each row is an array of primitive values (null,
            boolean, number, string) aligned with `members`.
          items:
            type: array
            items: {}
    V1LoadResultDataColumnar:
      type: object
      description: >-
        Columnar data format - members list paired with one primitive array per
        column. Returned when `responseFormat=columnar` is requested.
      required:
        - members
        - columns
      properties:
        members:
          type: array
          description: >-
            Ordered list of member names. Element `i` of `columns` holds the
            values for `members[i]` across all rows.
          items:
            type: string
        columns:
          type: array
          description: >-
            One array per member, in the same order as `members`. Each inner
            array contains the primitive value of that member for every row
            (null, boolean, number, string).
          items:
            type: array
            items: {}
  securitySchemes:
    apiToken:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Cube API token (a JWT). Sent directly in the Authorization header, e.g.
        `Authorization: <CUBE_API_TOKEN>` (no "Bearer" prefix).

````