ObservePoint Rules API

Endpoints for managing rules including creation, configuration, assignment, and rule-based validation logic

Operations 11

POST /rules Create new rule #
GET /rules/previews Get list of rule preview objects #
GET /rules/snapshots/page-filters/{pageFilterSnapshotId}/original Get original rule page filter id by given rule page filter snapshot id #
GET /rules/snapshots/tags/variables/{tagVariableSnapshotId}/original Get original rule tag variable id by given rule tag variable snapshot id #
GET /rules/snapshots/tags/{tagSnapshotId}/original Get original rule tag id by given rule tag snapshot id #
GET /rules/snapshots/{ruleSnapshotId}/original Get original rule id by given rule snapshot id #
GET /rules/{ruleId} Get rule by given id #
PUT /rules/{ruleId} Update rule with given id #
DELETE /rules/{ruleId} Delete rule with given id #
GET /rules/{ruleId}/web-journeys Get all web journeys with given rule id #
POST /v3/rule-library Get all rules in an account #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/observepoint-rules-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

observepoint-rules-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Observepoint Rules API
  version: '1.0'
  description: 'Operations tagged Rules across 2 of this provider''s published API definitions: observepoint-v2-api-openapi.yml, observepoint-v3-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.observepoint.com/v2
- url: https://api.observepoint.com
  description: ObservePoint Production API
tags:
- description: Endpoints for managing rules including creation, configuration, assignment, and rule-based validation logic
  name: Rules
paths:
  /rules:
    post:
      description: POST /v2/rules
      operationId: createRule
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewRule'
        description: Rule create information
        required: true
      responses:
        '201':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
        '403':
          description: Current user has read-only permissions or doesn't have access to this rule
        '409':
          description: Rule name is not unique
      security:
      - API_Key: []
      summary: Create new rule
      tags:
      - Rules
    servers:
    - url: https://api.observepoint.com/v2
  /rules/previews:
    get:
      description: GET /v2/rules/previews
      operationId: getRulePreviews
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/RulePreview'
                type: array
        '401':
          description: Authentication credentials are missing or invalid
      security:
      - API_Key: []
      summary: Get list of rule preview objects
      tags:
      - Rules
    servers:
    - url: https://api.observepoint.com/v2
  /rules/snapshots/page-filters/{pageFilterSnapshotId}/original:
    get:
      description: GET /v2/rules/snapshots/page-filters/{pageFilterSnapshotId}/original
      operationId: getOriginalRulePageFilterIdFromSnapshot
      parameters:
      - name: pageFilterSnapshotId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        $ref: '#/components/requestBodies/UserContext'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
        '404':
          description: Rule by given id not found
      security:
      - API_Key: []
      summary: Get original rule page filter id by given rule page filter snapshot id
      tags:
      - Rules
    servers:
    - url: https://api.observepoint.com/v2
  /rules/snapshots/tags/variables/{tagVariableSnapshotId}/original:
    get:
      description: GET /v2/rules/snapshots/tags/variables/{tagVariableSnapshotId}/original
      operationId: getOriginalRuleTagVariableIdFromSnapshot
      parameters:
      - name: tagVariableSnapshotId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        $ref: '#/components/requestBodies/UserContext'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
        '404':
          description: Rule by given id not found
      security:
      - API_Key: []
      summary: Get original rule tag variable id by given rule tag variable snapshot id
      tags:
      - Rules
    servers:
    - url: https://api.observepoint.com/v2
  /rules/snapshots/tags/{tagSnapshotId}/original:
    get:
      description: GET /v2/rules/snapshots/tags/{tagSnapshotId}/original
      operationId: getOriginalRuleTagIdFromSnapshot
      parameters:
      - name: tagSnapshotId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        $ref: '#/components/requestBodies/UserContext'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
        '404':
          description: Rule by given id not found
      security:
      - API_Key: []
      summary: Get original rule tag id by given rule tag snapshot id
      tags:
      - Rules
    servers:
    - url: https://api.observepoint.com/v2
  /rules/snapshots/{ruleSnapshotId}/original:
    get:
      description: GET /v2/rules/snapshots/{ruleSnapshotId}/original
      operationId: getOriginalRuleIdFromSnapshot
      parameters:
      - name: ruleSnapshotId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        $ref: '#/components/requestBodies/UserContext'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
        '404':
          description: Rule by given id not found
      security:
      - API_Key: []
      summary: Get original rule id by given rule snapshot id
      tags:
      - Rules
    servers:
    - url: https://api.observepoint.com/v2
  /rules/{ruleId}:
    get:
      description: GET /v2/rules/{ruleId}
      operationId: getRule
      parameters:
      - name: ruleId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
        '404':
          description: Rule by given id not found
      security:
      - API_Key: []
      summary: Get rule by given id
      tags:
      - Rules
    put:
      description: PUT /v2/rules/{ruleId}
      operationId: updateRule
      parameters:
      - name: ruleId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRule'
        description: Rule update information
        required: true
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
        '404':
          description: Rule by given id not found
        '409':
          description: Rule name is not unique
      security:
      - API_Key: []
      summary: Update rule with given id
      tags:
      - Rules
    delete:
      description: DELETE /v2/rules/{ruleId}
      operationId: deleteRule
      parameters:
      - name: ruleId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '204':
          description: Rule was successfully deleted
        '403':
          description: Current user has read-only permissions or doesn't have access to this rule
        '404':
          description: Rule by given id not found
      security:
      - API_Key: []
      summary: Delete rule with given id
      tags:
      - Rules
    servers:
    - url: https://api.observepoint.com/v2
  /rules/{ruleId}/web-journeys:
    get:
      description: GET /v2/rules/{ruleId}/web-journeys
      operationId: getAllWebJourneysByRule
      parameters:
      - name: ruleId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/WebJourney'
                type: array
        '403':
          description: Current user has read-only permissions or doesn't have access to this rule
        '404':
          description: Rule by given id not found
      security:
      - API_Key: []
      summary: Get all web journeys with given rule id
      tags:
      - Rules
    servers:
    - url: https://api.observepoint.com/v2
  /v3/rule-library:
    post:
      tags:
      - Rules
      summary: Get all rules in an account
      operationId: getRuleLibraryRules
      parameters:
      - $ref: '#/components/parameters/PageParam'
      - in: query
        name: size
        required: false
        schema:
          type: integer
          maximum: 1000
          default: 50
          minimum: 50
      - name: sortBy
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/RuleLibrary_SortColumn'
      - $ref: '#/components/parameters/SortDescendingParam'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RuleLibrary_RequestDTO'
      responses:
        '200':
          description: Rules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RuleLibrary_ResponseDTO'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/UnAuthorized'
      security:
      - API_Key: []
      description: POST /v3/rule-library
    servers:
    - url: https://api.observepoint.com
      description: ObservePoint Production API
components:
  schemas:
    PageFilter:
      type: object
      required:
      - id
      - ruleId
      properties:
        id:
          format: int32
          type: integer
        matchType:
          enum:
          - Equals
          - DoesNotEqual
          - Contains
          - DoesNotContain
          - Regex
          - IsSet
          - IsNotSet
          - GreaterThanOrEqualTo
          - LessThanOrEqualTo
          type: string
        ruleId:
          format: int32
          type: integer
        type:
          description: 1 - url, 2 - status code, 3 - final url, 4 - final status code
          enum:
          - 1
          - 2
          - 3
          - 4
          format: int32
          type: integer
        value:
          type: string
    UpdateRuleTagVariable:
      type: object
      required:
      - variable
      properties:
        id:
          format: int32
          type: integer
        matchType:
          enum:
          - Equals
          - DoesNotEqual
          - Contains
          - DoesNotContain
          - Regex
          - IsSet
          - IsNotSet
          - GreaterThanOrEqualTo
          - LessThanOrEqualTo
          type: string
        ruleTagId:
          format: int32
          type: integer
        selectorType:
          enum:
          - String
          - UrlParameter
          - DataLayer
          - Tag
          - FinalUrlParameter
          type: string
        validationDescription:
          type: string
        value:
          type: string
        valueTagId:
          format: int32
          type: integer
        variable:
          type: string
    Value:
      type: object
    NewRule:
      type: object
      required:
      - checkTimes
      - matchAllFilters
      - name
      properties:
        checkTimes:
          format: int32
          type: integer
        isDefaultRule:
          type: number
        labels:
          items:
            $ref: '#/components/schemas/LabelId'
          type: array
        matchAllFilters:
          type: boolean
        name:
          type: string
        notes:
          type: string
        pageFilters:
          items:
            $ref: '#/components/schemas/NewPageFilter'
          type: array
        recipients:
          items:
            type: string
          type: array
        tags:
          items:
            $ref: '#/components/schemas/NewRuleTag'
          type: array
      description: Rule create information
    Rule:
      type: object
      required:
      - accountId
      - checkTimes
      - createdAt
      - createdBy
      - fromTemplate
      - id
      - isDefaultRule
      - matchAllFilters
      - name
      - updatedAt
      properties:
        accountId:
          format: int32
          type: integer
        checkTimes:
          format: int32
          type: integer
        createdAt:
          format: date-time
          type: string
        createdBy:
          format: int32
          type: integer
        fromTemplate:
          type: boolean
        id:
          format: int32
          type: integer
        isDefaultRule:
          type: boolean
        labels:
          items:
            $ref: '#/components/schemas/Label'
          type: array
        matchAllFilters:
          type: boolean
        name:
          type: string
        notes:
          type: string
        pageFilters:
          items:
            $ref: '#/components/schemas/PageFilter'
          type: array
        recipients:
          items:
            type: string
          type: array
        tags:
          items:
            $ref: '#/components/schemas/RuleTag'
          type: array
        updatedAt:
          format: date-time
          type: string
      description: Rule model
    SequencedActionSwaggerReference:
      type: object
      required:
      - preventNav
      - selectors
      - sequence
      properties:
        action:
          enum:
          - navto
          - click
          - input
          - select
          - check
          - uncheck
          - execute
          - watch
          - maskedInput
          - enterIframe
          - exitIframe
          type: string
        actionId:
          type: number
        js:
          type: string
        label:
          type: string
        maskedValue:
          type: string
        preventNav:
          type: boolean
        rules:
          items:
            type: number
          type: array
        seconds:
          format: int32
          type: integer
        selectors:
          items:
            $ref: '#/components/schemas/WebActionSelectorSwaggerReference'
          type: array
        sequence:
          format: int32
          type: integer
        url:
          type: string
        value:
          type: string
        waitDuration:
          format: int32
          maximum: 1800
          minimum: 0
          type: integer
    UpdatePageFilter:
      type: object
      properties:
        id:
          format: int32
          type: integer
        matchType:
          enum:
          - Equals
          - DoesNotEqual
          - Contains
          - DoesNotContain
          - Regex
          - IsSet
          - IsNotSet
          - GreaterThanOrEqualTo
          - LessThanOrEqualTo
          type: string
        ruleId:
          format: int32
          type: integer
        type:
          description: 1 - url, 2 - status code, 3 - final url, 4 - final status code
          enum:
          - 1
          - 2
          - 3
          - 4
          format: int32
          type: integer
        value:
          type: string
    WebJourney:
      type: object
      required:
      - actions
      - domainId
      - emails
      - folderId
      - id
      - name
      - options
      - queued
      - userId
      properties:
        actions:
          items:
            $ref: '#/components/schemas/SequencedActionSwaggerReference'
          type: array
        createdAt:
          format: date-time
          type: string
        domainId:
          format: int64
          type: integer
        emails:
          items:
            type: string
          type: array
        folderId:
          format: int64
          type: integer
        id:
          format: int64
          type: integer
        lastCheck:
          format: date-time
          type: string
        name:
          type: string
        nextCheck:
          format: date-time
          type: string
        options:
          $ref: '#/components/schemas/WebJourneyOptions'
        queued:
          type: boolean
        screenshot:
          type: string
        status:
          enum:
          - Ok
          - Failed
          - NotChecked
          - RulesFailed
          - ActionFailed
          - PageFailed
          - DataCollectionFailure
          type: string
        userId:
          format: int64
          type: integer
        webJourneyRunning:
          type: boolean
      description: Web journey model
    AuthToken:
      type: object
      required:
      - created
      - decryptedToken
      - token
      - tokenType
      - userId
      properties:
        created:
          type: string
        decryptedToken:
          type: string
        token:
          type: string
        tokenType:
          $ref: '#/components/schemas/TokenType'
        userId:
          type: string
    RuleTagVariable:
      type: object
      required:
      - id
      - ruleTagId
      - variable
      properties:
        id:
          format: int32
          type: integer
        matchType:
          enum:
          - Equals
          - DoesNotEqual
          - Contains
          - DoesNotContain
          - Regex
          - IsSet
          - IsNotSet
          - GreaterThanOrEqualTo
          - LessThanOrEqualTo
          type: string
        ruleTagId:
          format: int32
          type: integer
        selectorType:
          enum:
          - String
          - UrlParameter
          - DataLayer
          - Tag
          - FinalUrlParameter
          type: string
        validationDescription:
          type: string
        value:
          type: string
        valueTagId:
          format: int32
          type: integer
        variable:
          type: string
    RemoteFileMapping:
      type: object
      required:
      - matchType
      - matchValue
      properties:
        createdAt:
          format: date-time
          type: string
        createdBy:
          format: int32
          type: integer
        fileId:
          format: int32
          type: integer
        fileUrl:
          type: string
        id:
          format: int32
          type: integer
        matchType:
          enum:
          - '[equals'
          - regex]
          type: string
        matchValue:
          type: string
        name:
          type: string
        updatedAt:
          format: date-time
          type: string
        updatedBy:
          format: int32
          type: integer
    NewPageFilter:
      type: object
      properties:
        matchType:
          enum:
          - Equals
          - DoesNotEqual
          - Contains
          - DoesNotContain
          - Regex
          - IsSet
          - IsNotSet
          - GreaterThanOrEqualTo
          - LessThanOrEqualTo
          type: string
        ruleId:
          format: int32
          type: integer
        type:
          description: 1 - url, 2 - status code, 3 - final url, 4 - final status code
          enum:
          - 1
          - 2
          - 3
          - 4
          format: int32
          type: integer
        value:
          type: string
    Label:
      type: object
      required:
      - id
      - name
      properties:
        id:
          format: int32
          type: integer
        name:
          type: string
    RuleTag:
      type: object
      required:
      - id
      - ruleId
      - tagId
      properties:
        account:
          type: string
        clause:
          enum:
          - If
          - Then
          - Else
          type: string
        id:
          format: int32
          type: integer
        matchType:
          enum:
          - Equals
          - DoesNotEqual
          - Contains
          - DoesNotContain
          - Regex
          - IsSet
          - IsNotSet
          - GreaterThanOrEqualTo
          - LessThanOrEqualTo
          type: string
        ruleId:
          format: int32
          type: integer
        statusCode:
          $ref: '#/components/schemas/RuleTagStatusCode'
        tagId:
          format: int32
          type: integer
        validationDescription:
          type: string
        variables:
          items:
            $ref: '#/components/schemas/RuleTagVariable'
          type: array
    NewRuleTagVariable:
      type: object
      required:
      - variable
      properties:
        matchType:
          enum:
          - Equals
          - DoesNotEqual
          - Contains
          - DoesNotContain
          - Regex
          - IsSet
          - IsNotSet
          - GreaterThanOrEqualTo
          - LessThanOrEqualTo
          type: string
        ruleTagId:
          format: int32
          type: integer
        selectorType:
          enum:
          - String
          - UrlParameter
          - DataLayer
          - Tag
          - FinalUrlParameter
          type: string
        validationDescription:
          type: string
        value:
          type: string
        valueTagId:
          format: int32
          type: integer
        variable:
          type: string
    AccountCapabilities:
      type: object
      required:
      - customProxySupport
      - strongPasswordPolicy
      - vpnSupport
      properties:
        customProxySupport:
          type: boolean
        strongPasswordPolicy:
          type: boolean
        vpnSupport:
          type: boolean
    UserContext:
      type: object
      required:
      - accountId
      - accountStatus
      - accountType
      - capabilities
      - credsExpired
      - email
      - features
      - id
      - isAccountActive
      - isAccountAdmin
      - isLongTermToken
      - isOpAdmin
      - isOpSysAdmin
      - isReadOnly
      - isUser
      - isUserToken
      - isVisitor
      - permissions
      - rawToken
      - snowflakeUsage
      - timezone
      - tokenType
      properties:
        accountId:
          format: int32
          type: integer
        accountStatus:
          enum:
          - ACTIVE
          - ACTIVE_BILLING_PROBLEM
          - INACTIVE_BILLING_FAILED
          - INACTIVE_USER_CANCELLED
          - INACTIVE
          - DEMO
          type: string
        accountType:
          enum:
          - ADOBE_AUDITOR
          - FREE
          - CONTRACT
          - CPM_PARTNER
          - SAMPLE
          - INTERNAL
          - CONTRACT_SELF_SERVICE
          type: string
        authToken:
          $ref: '#/components/schemas/AuthToken'
        capabilities:
          $ref: '#/components/schemas/AccountCapabilities'
        credsExpired:
          type: boolean
        email:
          type: string
        features:
          items:
            $ref: '#/components/schemas/Value'
          type: array
        id:
          format: int32
          type: integer
        isAccountActive:
          type: boolean
        isAccountAdmin:
          type: boolean
        isLongTermToken:
          type: boolean
        isOpAdmin:
          type: boolean
        isOpSysAdmin:
          type: boolean
        isReadOnly:
          type: boolean
        isUser:
          type: boolean
        isUserToken:
          type: boolean
        isVisitor:
          type: boolean
        loginAsRequestedByUserId:
          type: number
        permissions:
          $ref: '#/components/schemas/Permissions'
        rawToken:
          type: string
        snowflakeUsage:
          $ref: '#/components/schemas/SnowflakeUsage'
        timezone:
          $ref: '#/components/schemas/DateTimeZone'
        tokenType:
          $ref: '#/components/schemas/TokenType'
    WebActionSelectorSwaggerReference:
      type: object
      discriminator:
        propertyName: selectorType
      properties:
        selectorType:
          format: int32
          type: integer
      description: 'Children: AttributesSelector, SimpleSelector'
    UpdateRuleTag:
      type: object
      required:
      - tagId
      properties:
        account:
          type: string
        clause:
          enum:
          - If
          - Then
          - Else
          type: string
        id:
          format: int32
          type: integer
        matchType:
          enum:
          - Equals
          - DoesNotEqual
          - Contains
          - DoesNotContain
          - Regex
          - IsSet
          - IsNotSet
          - GreaterThanOrEqualTo
          - LessThanOrEqualTo
          type: string
        ruleId:
          format: int32
          type: integer
        statusCode:
          $ref: '#/components/schemas/RuleTagStatusCode'
        tagId:
          format: int32
          type: integer
        validationDescription:
          type: string
        variables:
          items:
            $ref: '#/components/schemas/UpdateRuleTagVariable'
          type: array
    RulePreview:
      type: object
      required:
      - id
      - isDefaultRule
      - labels
      - name
      properties:
        id:
          format: int32
          type: integer
        isDefaultRule:
          type: boolean
        labels:
          items:
            $ref: '#/components/schemas/Label'
          type: array
        name:
          type: string
      description: Rule preview model
    LabelId:
      type: object
      required:
      - id
      properties:
        id:
          format: int32
          type: integer
    RuleTagStatusCode:
      type: object
      properties:
        matchType:
          enum:
          - Equals
          - DoesNotEqual
          - Contains
          - DoesNotContain
          - Regex
          - IsSet
          - IsNotSet
          - GreaterThanOrEqualTo
          - LessThanOrEqualTo
          type: string
        value:
          format: int32
          type: integer
        valueType:
          enum:
          - Specific
          - SuccessAndRedirect
          - Broken
          type: string
    TokenType:
      type: object
    DateTimeZone:
      type: object
      required:
      - fixed
      - id
      properties:
        fixed:
          type: boolean
        id:
          type: string
    NewRuleTag:
      type: object
      required:
      - tagId
      properties:
        account:
          type: string
        clause:
          enum:
          - If
          - Then
          - Else
          type: string
        matchType:
          enum:
          - Equals
          - DoesNotEqual
          - Contains
          - DoesNotContain
          - Regex
          - IsSet
          - IsNotSet
          - GreaterThanOrEqualTo
          - LessThanOrEqualTo
          type: string
        ruleId:
          format: int32
          type: integer
        statusCode:
          $ref: '#/components/schemas/RuleTagStatusCode'
        tagId:
          format: int32
          type: integer
        validationDescription:
          type: string
        variables:
          items:
            $ref: '#/components/schemas/NewRuleTagVariable'
          type: array
    WebJourneyOptions:
      type: object
      required:
      - alerts
      - browserWidth
      - loadFlash
      - location
      - userAgent
      properties:
        alerts:
          type: boolean
        browserWidth:
          format: int32
          type: integer
        customProxy:
          type: string
        flashLiveVideoEnabled:
          type: boolean
        frequency:
          type: string
        loadFlash:
          type: boolean
        location:
          type: string
        monitoredByScriptServices:
          type: number
        nextRun:
          format: date-time
          type: string
        remoteFileMapConfig:
          items:
            $ref: '#/components/schemas/RemoteFileMapping'
          type: array
        userAgent:
          type: string
        userAgentDescription:
          type: string
        vpnEnabled:
          type: boolean
        webHookUrl:
          type: string
    SnowflakeUsage:
      type: object
      required:
      - useForAdobeAuditor
      - useForAppJourneyRuleResults
      - useForAppJourneys
      - useForAudits
      - useForLiveConnect
      - useForLiveConnectRuleResults
      - useForWebJourneyRuleResults
      - useForWebJourneys
      - used
      properties:
        useForAdobeAuditor:
          type: boolean
        useForAppJourneyRuleResults:
          type: boolean
        useForAppJourneys:
          type: boolean
        useForAudits:
          type: boolean
        useForLiveConnect:
          type: boolean
        useForLiveConnectRuleResults:
          type: boolean
        useForWebJourneyRuleResults:
          type: boolean
        useForWebJourneys:
          type: boolean
        used:
          type: boolean
    UpdateRule:
      type: object
      required:
      - checkTimes
      - matchAllFilters
      - name
      properties:
        checkTimes:
          format: int32
          type: integer
        id:
          format: int32
          type: integer
        isDefaultRule:
          type: number
        labels:
          items:
            $ref: '#/components/schemas/LabelId'
          type: array
        matchAllFilters:
          type: boolean
        name:
          type: string
        notes:
          type: string
        pageFilters:
          items:
            $ref: '#/components/schemas/UpdatePageFilter'
          type: array
        recipients:
          items:
            type: string
          type: array
        tags:
          items:
            $ref: '#/components/schemas/UpdateRuleTag'
          type: array
      description: Rule update information
    Permissions:
      type: object
      required:
      - intValue
      - stringValue
      properties:
        intValue:
          format: int32
          type: integer
        stringValue:
          type: string
    PaginationMetadata:
      type: object
      required:
      - totalCount
      - totalPageCount
      - pageSize
      - currentPageSize
      - currentPageNumber
      properties:
        totalCount:
          description: Total number of items available from all result pages combined
          type: integer
        totalPageCount:
          description: Total number of pages available
          type: integer
        pageSize:
          description: Page size - number of items per result page configured by `size` query parameter or default page size
          type: integer
        currentPageSize:
          description: Number of items in current result page
          type: integer
        currentPageNumber:
          description: Current page number/ordinal
          type: integer
    RuleId:
      type: integer
      format: int64
      description: Rule ID
      example: 12
    ErrorModel:
      type: object
      properties:
        timestamp:
          type: string
          format: date-time
        message:
          type: string
        details:
          type: string
        validationReport:
          type: object
    RuleLibrary_SortColumn:
      type: string
      enum:
      - NAME
      - TYPE
      - AUDITS
      - WEB_JOURNEYS
      - APP_JOURNEYS
      - OWNER
      - MODIFIED_AT
    RuleLibrary_RuleItem:
      type: object
      required:
      - id
      - name
      - fromTemplate
      - labels
      - usage
      - ownedByUserId
      - updatedAt
      properties:
        id:
          $ref: '#/components/schemas/RuleId'
        name:
          type: string
        fromTemplate:
          type: boolean
        labels:
          type: array
          items:
            $ref: '#/components/schemas/AssignedLabel'
        usage:
          $ref: '#/components/schemas/RuleLibrary_RuleUsage'
        ownedByUserId:
          $ref: '#/components/schemas/UserId'
        updatedAt:
          $ref: '#/components/schemas/DateAndTime'
        recipients:
          type: array
          items:
            type: string
    RuleLibrary_ResponseDTO:
      type: object
      properties:
        paginationMetadata:
          $ref: '#/components/schemas/PaginationMetadata'
        rules:
          type: array
          items:
            $ref: '#/components/schemas/RuleLibrary_RuleItem'
    RuleLibrary_RuleUsage:
      type: object
      required:
      - auditCount
      - webJourneyCount
      - appJourneyCount
      properties:
        auditCount:
          type: integer
          example: 0
        webJourneyCount:
          type: integer
          example: 3
        appJourneyCount:
          type: inte

# --- truncated at 32 KB (34 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/observepoint/refs/heads/main/openapi/observepoint-rules-api-openapi.yml