SandboxAQ Rules API

The rules API from SandboxAQ — 5 operation(s) for rules.

OpenAPI Specification

sandboxaq-rules-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact: {}
  description: Flint AI Platform API
  license:
    name: Flint AI
    url: https://www.sandboxaq.com/legal/eula
  title: Flint AI Platform Rules API
  version: 1.0.0
servers:
- description: Flint AI Platform (per-tenant instance)
  url: https://{instance}.flintai.dev/api/v1
  variables:
    instance:
      default: your-instance
      description: Your Flint AI instance subdomain
tags:
- name: rules
paths:
  /external-rules:
    get:
      description: List externally-sourced rules with optional name filtering
      operationId: GetExternalRules
      parameters:
      - description: Filter by rule name (case-insensitive like)
        in: query
        name: name__ilk
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: List of external rules
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/common.RequestError'
          description: Unauthorized
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/common.RequestError'
          description: Internal Server Error
      security:
      - BearerAuth: []
      summary: List external rules
      tags:
      - rules
  /rules/tenants/{tenant_id}/workspaces/{workspace_id}:
    get:
      description: List all rules (static + external) for a tenant workspace with optional filtering and pagination
      operationId: GetAllRules
      parameters:
      - description: Tenant ID
        in: path
        name: tenant_id
        required: true
        schema:
          type: string
      - description: Workspace ID
        in: path
        name: workspace_id
        required: true
        schema:
          type: string
      - description: Filter by rule name (case-insensitive like)
        in: query
        name: name__ilk
        schema:
          type: string
      - description: Page size
        in: query
        name: page_size
        schema:
          type: integer
      - description: Pagination cursor
        in: query
        name: cursor
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: Paginated list of rules
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/common.RequestError'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/common.RequestError'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/common.RequestError'
          description: Forbidden
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/common.RequestError'
          description: Internal Server Error
      security:
      - BearerAuth: []
      summary: List all rules for a workspace
      tags:
      - rules
  /rules/tenants/{tenant_id}/workspaces/{workspace_id}/{rule_id}:
    get:
      description: Get a single rule by its rule_id from the unified rules table (static + external)
      operationId: GetRule
      parameters:
      - description: Rule ID (e.g. SR-aispm_missing_input_guardrails)
        in: path
        name: rule_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/engine_output.RuleInfo'
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/common.RequestError'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/common.RequestError'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/common.RequestError'
          description: Internal Server Error
      security:
      - BearerAuth: []
      summary: Get a single rule by ID
      tags:
      - rules
  /rules/{id}/results:
    get:
      description: Get results from single rule
      operationId: GetRuleInstances
      parameters:
      - description: Rule Id
        in: path
        name: id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/engine_output.EngineDataPage'
          description: OK
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/common.RequestError'
          description: Unauthorized
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/common.RequestError'
          description: Not Found
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/common.RequestError'
          description: Internal Server Error
      security:
      - BearerAuth: []
      summary: Get results from single rule
      tags:
      - rules
  /static-rules:
    get:
      description: List built-in static rules with optional name filtering
      operationId: GetStaticRules
      parameters:
      - description: Filter by rule name (case-insensitive like)
        in: query
        name: name__ilk
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: List of static rules
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/common.RequestError'
          description: Unauthorized
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/common.RequestError'
          description: Internal Server Error
      security:
      - BearerAuth: []
      summary: List static rules
      tags:
      - rules
components:
  schemas:
    engine_output.EngineDataPage:
      properties:
        cursor:
          type: string
        header:
          items:
            type: string
          type: array
        rows:
          items:
            items: {}
            type: array
          type: array
        total:
          type: integer
        total_sampling:
          type: number
      required:
      - cursor
      - header
      - rows
      type: object
    engine_output.RuleInfo:
      properties:
        object_types:
          items:
            type: string
          type: array
        rule_description:
          type: string
        rule_id:
          type: string
        rule_name:
          type: string
        source:
          type: string
      type: object
    common.RequestError:
      description: Error responses returned by the API
      properties:
        code:
          example: 400
          type: integer
        message:
          example: Invalid request
          type: string
      required:
      - code
      - message
      type: object
  securitySchemes:
    BearerAuth:
      description: Use this header with a Bearer token to authenticate requests.
      in: header
      name: Authorization
      type: apiKey