Grepr Validation API

Validation utilities for Flink SQL and other configurations

Operations 1

POST /v1/validation/sql/flink Validate a Flink SQL query #

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/grepr:grepr-validation-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

grepr-validation-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Grepr Validation API
  version: 1.0.0
  description: 'Operations tagged Validation across 2 of this provider''s published API definitions: grepr-openapi.json, grepr.json. Each path carries the servers of the definition it was published in.'
tags:
- description: Validation utilities for Flink SQL and other configurations
  name: Validation
paths:
  /v1/validation/sql/flink:
    post:
      description: Validates that the given Flink SQL query is valid.
      operationId: validate
      requestBody:
        content:
          application/json:
            schema:
              type: string
          text/plain:
            schema:
              type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParseQueryResponse'
          description: The query is valid.
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      security:
      - grepr-api-key: []
      - grepr-oidc: []
      summary: Validate a Flink SQL query
      tags:
      - Validation
components:
  schemas:
    ParseQueryResponse:
      properties:
        errorMessage:
          description: The error message if there is an error
          type: string
        parsedQuery:
          $ref: '#/components/schemas/ParsedQueryTree'
        valid:
          description: Whether a query is valid.
          type: boolean
      type: object
    TagKeyNode:
      properties:
        tagKey:
          default: ''
          description: ' This is a string that is matched against the tag key.'
          example: '"source"'
          type: string
        type:
          description: A node that represents a tag key in a parsed query.
          enum:
          - tag-key-node
          type: string
      required:
      - tagKey
      - type
      type: object
    ParsedQueryNode:
      discriminator:
        mapping:
          all-query-node: '#/components/schemas/AllQueryNode'
          and-query-node: '#/components/schemas/AndQueryNode'
          attribute-comparator-node: '#/components/schemas/AttributeWithComparatorNode'
          attribute-key-term-node: '#/components/schemas/AttributeKeyTermNode'
          attribute-node: '#/components/schemas/AttributeNode'
          attribute-prefix-node: '#/components/schemas/AttributePrefixNode'
          attribute-re2-node: '#/components/schemas/AttributeRe2Node'
          attribute-wildcard-node: '#/components/schemas/AttributeWildcardNode'
          message-exact-match-node: '#/components/schemas/MessageExactMatchNode'
          message-length-node: '#/components/schemas/MessageLengthNode'
          message-node: '#/components/schemas/MessageNode'
          message-prefix-node: '#/components/schemas/MessagePrefixNode'
          message-re2-node: '#/components/schemas/MessageRe2Node'
          message-wildcard-node: '#/components/schemas/MessageWildcardNode'
          not-query-node: '#/components/schemas/NotQueryNode'
          or-query-node: '#/components/schemas/OrQueryNode'
          phrase-node: '#/components/schemas/PhraseNode'
          severity-node: '#/components/schemas/SeverityNode'
          tag-comparator-node: '#/components/schemas/TagWithComparatorNode'
          tag-key-node: '#/components/schemas/TagKeyNode'
          tag-key-prefix-node: '#/components/schemas/TagKeyPrefixNode'
          tag-key-wildcard-node: '#/components/schemas/TagKeyWildcardNode'
          tag-node: '#/components/schemas/TagNode'
          tag-prefix-node: '#/components/schemas/TagPrefixNode'
          tag-re2-node: '#/components/schemas/TagRe2Node'
          tag-wildcard-node: '#/components/schemas/TagWildcardNode'
        propertyName: type
      oneOf:
      - $ref: '#/components/schemas/AttributeNode'
      - $ref: '#/components/schemas/AttributeKeyTermNode'
      - $ref: '#/components/schemas/AttributeRe2Node'
      - $ref: '#/components/schemas/AttributeWildcardNode'
      - $ref: '#/components/schemas/AttributePrefixNode'
      - $ref: '#/components/schemas/AttributeWithComparatorNode'
      - $ref: '#/components/schemas/MessageExactMatchNode'
      - $ref: '#/components/schemas/MessageLengthNode'
      - $ref: '#/components/schemas/MessageNode'
      - $ref: '#/components/schemas/MessageRe2Node'
      - $ref: '#/components/schemas/MessageWildcardNode'
      - $ref: '#/components/schemas/MessagePrefixNode'
      - $ref: '#/components/schemas/PhraseNode'
      - $ref: '#/components/schemas/TagKeyNode'
      - $ref: '#/components/schemas/TagKeyWildcardNode'
      - $ref: '#/components/schemas/TagKeyPrefixNode'
      - $ref: '#/components/schemas/TagNode'
      - $ref: '#/components/schemas/TagWildcardNode'
      - $ref: '#/components/schemas/TagPrefixNode'
      - $ref: '#/components/schemas/TagRe2Node'
      - $ref: '#/components/schemas/TagWithComparatorNode'
      - $ref: '#/components/schemas/SeverityNode'
      - $ref: '#/components/schemas/NotQueryNode'
      - $ref: '#/components/schemas/AndQueryNode'
      - $ref: '#/components/schemas/OrQueryNode'
      - $ref: '#/components/schemas/AllQueryNode'
      type: object
    AttributeKeyTermNode:
      properties:
        attribute:
          default: ''
          description: The string that is matched against the attribute key.
          example: '"app"'
          type: string
        type:
          description: A node that represents an attribute key in a parsed query.
          enum:
          - attribute-key-term-node
          type: string
      required:
      - attribute
      - type
      type: object
    MessageLengthNode:
      properties:
        maxLength:
          description: Inclusive maximum message length in characters. Null means no upper bound.
          example: 32768
          format: int64
          type: integer
        minLength:
          description: Inclusive minimum message length in characters. Null means no lower bound.
          example: 0
          format: int64
          type: integer
        type:
          description: A node representing a message-length filter in a parsed query.
          enum:
          - message-length-node
          type: string
      required:
      - type
      type: object
    TagRe2Node:
      properties:
        regex:
          default: ''
          description: The regex to match. This is a regex string that is matched against the tag
          example: '"grepr-service-1.*"'
          type: string
        tagKey:
          default: ''
          description: This is a string that is matched against the tag key.
          example: '"source"'
          type: string
        type:
          description: A node that represents a tag regex in a parsed query.
          enum:
          - tag-re2-node
          type: string
      required:
      - regex
      - tagKey
      - type
      type: object
    MessageWildcardNode:
      properties:
        type:
          description: A node that represents a message wildcard in a parsed query.
          enum:
          - message-wildcard-node
          type: string
        wildcard:
          default: ''
          description: The message with wildcard to match. This is a string that is matched against the message.
          example: '"grepr-service-1*"'
          type: string
      required:
      - type
      - wildcard
      type: object
    TagNode:
      properties:
        tagKey:
          default: ''
          description: 'The tag key '
          example: '"service"'
          type: string
        tagValue:
          default: ''
          description: This is a string that is matched against the tag value.
          example: '"grepr-service-1"'
          type: string
        type:
          description: A node that represents a tag key and value in a parsed query.
          enum:
          - tag-node
          type: string
      required:
      - tagKey
      - tagValue
      - type
      type: object
    MessageExactMatchNode:
      properties:
        exactValue:
          default: ''
          description: The exact message value to match.
          example: '"this is an exact message"'
          type: string
        type:
          description: A node that represents an exact message match in a parsed query.
          enum:
          - message-exact-match-node
          type: string
      required:
      - exactValue
      - type
      type: object
    AttributeRe2Node:
      properties:
        attribute:
          default: ''
          description: This is the attribute that is matched against the value of the regex field.
          example: '"appName"'
          type: string
        regex:
          default: ''
          description: The regex to match. This is a regex string that is matched against the value of the attribute field.
          example: '"grepr-service-1.*"'
          type: string
        type:
          description: A node that represents an attribute regex in a parsed query.
          enum:
          - attribute-re2-node
          type: string
      required:
      - attribute
      - regex
      - type
      type: object
    TagWithComparatorNode:
      properties:
        comparator:
          default: EQUAL
          description: The comparator to use for the match.
          enum:
          - GREATER_THAN
          - GREATER_THAN_OR_EQUAL
          - LESS_THAN
          - LESS_THAN_OR_EQUAL
          - EQUAL
          - NOT_EQUAL
          example: '"equals"'
          type: string
        tagKey:
          default: ''
          description: The tag name
          example: '"service"'
          type: string
        term:
          default: ''
          description: The term to match. This is a string that is matched against the tag.
          example: '"source"'
          type: string
        type:
          description: A node that compares a tag in a parsed query.
          enum:
          - tag-comparator-node
          type: string
      required:
      - comparator
      - tagKey
      - term
      - type
      type: object
    AttributePrefixNode:
      properties:
        attribute:
          default: ''
          description: The attribute name
          example: '"service"'
          type: string
        prefix:
          default: ''
          description: The prefix to match in the attribute.
          example: '"grepr-service"'
          type: string
        type:
          description: A node that represents an attribute with a prefix in a parsed query.
          enum:
          - attribute-prefix-node
          type: string
      required:
      - attribute
      - prefix
      - type
      type: object
    AttributeNode:
      properties:
        attribute:
          default: ''
          description: The attribute name
          example: '"service"'
          type: string
        term:
          default: ''
          description: The term to match. This is a string that is matched against the attribute.
          example: '"grepr-service-1"'
          type: string
        type:
          description: A node that matches an attribute in a parsed query.
          enum:
          - attribute-node
          type: string
      required:
      - attribute
      - term
      - type
      type: object
    TagKeyPrefixNode:
      properties:
        prefix:
          default: ''
          description: This is a string that is matched against the tag key prefix.
          example: '"sourc"'
          type: string
        type:
          description: A node that represents a tag key prefix in a parsed query.
          enum:
          - tag-key-prefix-node
          type: string
      required:
      - prefix
      - type
      type: object
    MessageRe2Node:
      properties:
        regex:
          default: ''
          description: The regex to match. This is a regex string that is matched against the message.
          example: '"grepr-service-1.*"'
          type: string
        type:
          description: A node that represents a message regex in a parsed query.
          enum:
          - message-re2-node
          type: string
      required:
      - regex
      - type
      type: object
    MessageNode:
      properties:
        term:
          default: ''
          description: The message term to match.
          example: word
          type: string
        type:
          description: A node that represents a message term match in a parsed query.
          enum:
          - message-node
          type: string
      required:
      - term
      - type
      type: object
    AttributeWildcardNode:
      properties:
        attribute:
          default: ''
          description: The attribute name
          example: '"service"'
          type: string
        type:
          description: A node that represents an attribute wildcard in a parsed query.
          enum:
          - attribute-wildcard-node
          type: string
        wildcard:
          default: ''
          description: The term to match. This is a wildcard string that contains wildcards
          example: '"grepr-service*"'
          type: string
      required:
      - attribute
      - type
      - wildcard
      type: object
    MessagePrefixNode:
      properties:
        prefix:
          default: ''
          description: The prefix to match a message.
          example: '"sample message prefix"'
          type: string
        type:
          description: A node that represents a message prefix in a parsed query.
          enum:
          - message-prefix-node
          type: string
      required:
      - prefix
      - type
      type: object
    TagKeyWildcardNode:
      properties:
        type:
          description: A node that represents a tag key wildcard in a parsed query.
          enum:
          - tag-key-wildcard-node
          type: string
        wildcard:
          default: ''
          description: This is a wildcarded string that is matched against the tag key.
          example: '"ser*"'
          type: string
      required:
      - type
      - wildcard
      type: object
    NotQueryNode:
      properties:
        expression:
          $ref: '#/components/schemas/ParsedQueryNode'
        type:
          description: A node that represents a negation in a parsed query.
          enum:
          - not-query-node
          type: string
      required:
      - expression
      - type
      type: object
    OrQueryNode:
      properties:
        expressions:
          default: []
          description: This is a list of expressions that are combined with an OR operator.
          example:
          - message1
          - message2
          items:
            $ref: '#/components/schemas/ParsedQueryNode'
          type: array
          uniqueItems: true
        type:
          description: A node that represents a logical OR in a parsed query.
          enum:
          - or-query-node
          type: string
      required:
      - expressions
      - type
      type: object
    AttributeWithComparatorNode:
      properties:
        attribute:
          default: ''
          description: The attribute name
          example: '"service"'
          type: string
        comparator:
          default: EQUAL
          description: The comparator to use for the match.
          enum:
          - GREATER_THAN
          - GREATER_THAN_OR_EQUAL
          - LESS_THAN
          - LESS_THAN_OR_EQUAL
          - EQUAL
          - NOT_EQUAL
          example: '"EQUALS"'
          type: string
        term:
          default: ''
          description: The term to match. This is a string that is matched against the attribute.
          example: '"grepr-service-1"'
          type: string
        type:
          description: A node that matches an attribute in a parsed query.
          enum:
          - attribute-comparator-node
          type: string
      required:
      - attribute
      - comparator
      - term
      - type
      type: object
    AndQueryNode:
      properties:
        expressions:
          default: []
          description: The and query node. This is a list of expressions that are combined with an AND operator.
          example:
          - attribute
          - index=main
          items:
            $ref: '#/components/schemas/ParsedQueryNode'
          type: array
          uniqueItems: true
        type:
          description: A node that represents AND operator in a parsed query.
          enum:
          - and-query-node
          type: string
      required:
      - expressions
      - type
      type: object
    ParsedQueryTree:
      description: The parsed query tree
      properties:
        root:
          $ref: '#/components/schemas/ParsedQueryNode'
      type: object
    AllQueryNode:
      properties:
        type:
          description: A node that represents a parsed query that matches all.
          enum:
          - all-query-node
          type: string
      required:
      - type
      type: object
    TagPrefixNode:
      properties:
        prefix:
          default: ''
          description: This is a prefix that is matched against the tag value.
          example: '"grepr-service"'
          type: string
        tagKey:
          default: ''
          description: This is a string that is matched against the tag key.
          example: '"source"'
          type: string
        type:
          description: A node that represents a tag prefix in a parsed query.
          enum:
          - tag-prefix-node
          type: string
      required:
      - prefix
      - tagKey
      - type
      type: object
    TagWildcardNode:
      properties:
        tagKey:
          default: ''
          description: The tag key
          example: '"service"'
          type: string
        type:
          description: A node that represents a tag wildcard in a parsed query.
          enum:
          - tag-wildcard-node
          type: string
        wildcard:
          default: ''
          description: This is a string including wildcards that is matched against the tag value.
          example: '"grepr-serv*"'
          type: string
      required:
      - tagKey
      - type
      - wildcard
      type: object
    PhraseNode:
      properties:
        terms:
          default: []
          description: 'The terms in a phrase to match '
          example:
          - grepr-service-1
          - grepr-service-2
          items:
            description: 'The terms in a phrase to match '
            example: '["grepr-service-1","grepr-service-2"]'
            type: string
          type: array
        type:
          description: A node that represents a phrase match in a parsed query.
          enum:
          - phrase-node
          type: string
      required:
      - terms
      - type
      type: object
    SeverityNode:
      properties:
        comparator:
          default: EQUAL
          description: The comparator to use for the match.
          enum:
          - GREATER_THAN
          - GREATER_THAN_OR_EQUAL
          - LESS_THAN
          - LESS_THAN_OR_EQUAL
          - EQUAL
          - NOT_EQUAL
          example: '"EQUAL"'
          type: string
        severity:
          default: 0
          description: The severity level to match. This is an integer that is matched against the severity.
          example: 9
          format: int32
          type: integer
        type:
          description: A node that represents a severity in a parsed query.
          enum:
          - severity-node
          type: string
      required:
      - comparator
      - severity
      - type
      type: object
  securitySchemes:
    grepr-api-key:
      in: header
      name: GREPR-API-KEY
      type: apiKey
    grepr-oidc:
      bearerFormat: JWT
      openIdConnectUrl: https://grepr-prod.us.auth0.com/.well-known/openid-configuration
      type: openIdConnect
x-refined-from:
- grepr-openapi.json
- grepr.json
x-tagGroups:
- name: Integrations
  tags:
  - Grepr-hosted Data Warehouse Integration
  - External S3 Data Warehouse Integration
  - Datadog Integration
  - New Relic Integration
  - Splunk Integration
  - Sumo Logic Integration
  - OpenTelemetry Integration
- name: Pipelines
  tags:
  - Jobs
  - Templates
  - Datasets
  - Status Metrics
  - External Triggers
  - Job Actions
  - Triggers
- name: Pipeline Components
  tags:
  - Operations
  - Transforms
  - Sources
  - Sinks
- name: Administration
  tags:
  - Users
  - Teams
  - Roles
  - Permission
  - Invitations
  - Activity Logs
- name: Organization
  tags:
  - Organizations
  - Access Configuration
  - Grepr API Key
  - Service Accounts
  - Signup
- name: Query & Analysis
  tags:
  - Job Anomalies
  - Grok Parsing
  - Query Parsing
  - Validation
- name: System
  tags:
  - Manifest