Open Policy Agent Query API

API for executing simple and ad-hoc queries in OPA (Open Policy Agent).

OpenAPI Specification

query-api.yml Raw ↑
openapi: 3.1.0
info:
  title: Query API
  description: API for executing simple and ad-hoc queries in OPA (Open Policy Agent).
  version: 1.0.0
paths:
  /:
    post:
      summary: Execute a Simple Query
      description: Execute a simple query using the default decision (`/data/system/main`).
      requestBody:
        description: Input document in JSON or YAML format.
        required: true
        content:
          application/json:
            schema:
              type: object
          application/yaml:
            schema:
              type: object
      parameters:
        - name: pretty
          in: query
          required: false
          description: Format response for human readability
          schema:
            type: boolean
      responses:
        '200':
          description: Query executed successfully
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request
        '404':
          description: Document not found
        '500':
          description: Server error
  /v1/query:
    get:
      summary: Execute an Ad-hoc Query (GET)
      description: Execute an ad-hoc query by providing the query as a URL parameter.
      parameters:
        - name: q
          in: query
          required: true
          description: Ad-hoc query to execute (URL encoded)
          schema:
            type: string
        - name: pretty
          in: query
          required: false
          description: Format response for human readability
          schema:
            type: boolean
        - name: explain
          in: query
          required: false
          description: Return query explanation
          schema:
            type: string
            enum:
              - notes
              - fails
              - full
              - debug
        - name: metrics
          in: query
          required: false
          description: Return query performance metrics
          schema:
            type: boolean
      responses:
        '200':
          description: Query executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: array
                    items:
                      type: object
        '400':
          description: Bad request
        '500':
          description: Server error
        '501':
          description: Streaming not implemented
    post:
      summary: Execute an Ad-hoc Query (POST)
      description: Execute an ad-hoc query by providing the query in the request body.
      requestBody:
        description: Query and optional input document in JSON format.
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  description: Ad-hoc query to execute
                input:
                  type: object
                  description: Optional input document
      parameters:
        - name: pretty
          in: query
          required: false
          description: Format response for human readability
          schema:
            type: boolean
        - name: explain
          in: query
          required: false
          description: Return query explanation
          schema:
            type: string
            enum:
              - notes
              - fails
              - full
              - debug
        - name: metrics
          in: query
          required: false
          description: Return query performance metrics
          schema:
            type: boolean
      responses:
        '200':
          description: Query executed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: array
                    items:
                      type: object
        '400':
          description: Bad request
        '500':
          description: Server error
        '501':
          description: Streaming not implemented