Open Policy Agent Data API

API for reading and writing documents in OPA (Open Policy Agent).

OpenAPI Specification

data-api.yml Raw ↑
openapi: 3.1.0
info:
  title: Data API
  description: API for reading and writing documents in OPA (Open Policy Agent).
  version: 1.0.0
paths:
  /v1/data/{path}:
    get:
      summary: Get a Document
      description: Retrieve a document from the specified path.
      parameters:
        - name: path
          in: path
          required: true
          description: Path to the document
          schema:
            type: string
        - name: input
          in: query
          required: false
          description: Input document in JSON format
          schema:
            type: object
        - name: pretty
          in: query
          required: false
          description: Format response for human readability
          schema:
            type: boolean
        - name: provenance
          in: query
          required: false
          description: Include build/version information
          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 performance metrics
          schema:
            type: boolean
        - name: instrument
          in: query
          required: false
          description: Instrument query evaluation
          schema:
            type: boolean
        - name: strict-builtin-errors
          in: query
          required: false
          description: Treat built-in function call errors as fatal
          schema:
            type: boolean
      responses:
        '200':
          description: Document retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: object
                  metrics:
                    type: object
                  decision_id:
                    type: string
        '400':
          description: Bad request
        '500':
          description: Server error
    post:
      summary: Get a Document (with Input)
      description: Retrieve a document that requires an input document.
      parameters:
        - name: path
          in: path
          required: true
          description: Path to the document
          schema:
            type: string
        - name: pretty
          in: query
          required: false
          description: Format response for human readability
          schema:
            type: boolean
        - name: provenance
          in: query
          required: false
          description: Include build/version information
          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 performance metrics
          schema:
            type: boolean
        - name: instrument
          in: query
          required: false
          description: Instrument query evaluation
          schema:
            type: boolean
        - name: strict-builtin-errors
          in: query
          required: false
          description: Treat built-in function call errors as fatal
          schema:
            type: boolean
      requestBody:
        description: Input document in JSON format
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Document retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: object
                  metrics:
                    type: object
                  decision_id:
                    type: string
        '400':
          description: Bad request
        '500':
          description: Server error
    put:
      summary: Create or Overwrite a Document
      description: Create or overwrite a document at the specified path.
      parameters:
        - name: path
          in: path
          required: true
          description: Path to the document
          schema:
            type: string
        - name: metrics
          in: query
          required: false
          description: Return performance metrics
          schema:
            type: boolean
      requestBody:
        description: Document content in JSON format
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '204':
          description: Document created or overwritten successfully
        '400':
          description: Bad request
        '404':
          description: Write conflict
        '500':
          description: Server error
    patch:
      summary: Patch a Document
      description: Update a document using JSON Patch.
      parameters:
        - name: path
          in: path
          required: true
          description: Path to the document
          schema:
            type: string
      requestBody:
        description: JSON Patch operations
        required: true
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                type: object
                properties:
                  op:
                    type: string
                    enum:
                      - add
                      - remove
                      - replace
                      - move
                      - copy
                      - test
                  path:
                    type: string
                  value:
                    type: object
      responses:
        '204':
          description: Document patched successfully
        '400':
          description: Bad request
        '404':
          description: Document not found
        '500':
          description: Server error
    delete:
      summary: Delete a Document
      description: Delete a document at the specified path.
      parameters:
        - name: path
          in: path
          required: true
          description: Path to the document
          schema:
            type: string
        - name: metrics
          in: query
          required: false
          description: Return performance metrics
          schema:
            type: boolean
      responses:
        '204':
          description: Document deleted successfully
        '404':
          description: Document not found
        '500':
          description: Server error
  /v0/data/{path}:
    post:
      summary: Get a Document (Webhook)
      description: Retrieve a document from a webhook.
      parameters:
        - name: path
          in: path
          required: true
          description: Path to the document
          schema:
            type: string
        - name: pretty
          in: query
          required: false
          description: Format response for human readability
          schema:
            type: boolean
      requestBody:
        description: Input document in JSON format
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Document retrieved successfully
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Bad request
        '404':
          description: Document not found
        '500':
          description: Server error