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/bytebase:bytebase-celservice-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: 3.2.0
info:
title: Bytebase API Reference Cel Service API
description: API reference for Bytebase. Every endpoint is served by your own Bytebase instance.
version: 1.0.0
security: []
tags:
- name: CelService
description: CelService manages CEL (Common Expression Language) parsing and formatting operations.
paths:
/v1/cel/batchDeparse:
post:
tags:
- CelService
summary: BatchDeparse
description: 'Converts multiple CEL AST representations back into expression strings.
Permissions required: None'
operationId: CelService_BatchDeparse
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/bytebase.v1.BatchDeparseRequest'
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/bytebase.v1.BatchDeparseResponse'
/v1/cel/batchParse:
post:
tags:
- CelService
summary: BatchParse
description: 'Parses multiple CEL expression strings into AST representations.
Permissions required: None'
operationId: CelService_BatchParse
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/bytebase.v1.BatchParseRequest'
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/bytebase.v1.BatchParseResponse'
components:
schemas:
bytebase.v1.BatchParseResponse:
type: object
properties:
expressions:
type: array
items:
$ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
title: expressions
description: The parsed CEL expressions as AST.
title: BatchParseResponse
additionalProperties: false
description: Response message for batch parsing CEL expressions.
google.protobuf.Timestamp:
type: string
examples:
- '2023-01-15T01:30:15.01Z'
- '2024-12-25T12:00:00Z'
format: date-time
description: A point in time in RFC 3339 format, with up to nanosecond precision. Output uses UTC (`Z`); input may use an offset from UTC.
google.api.expr.v1alpha1.Expr.CreateStruct.Entry:
type: object
anyOf:
- type: object
properties:
fieldKey:
type: string
title: field_key
description: The field key for a message creator statement.
title: field_key
- type: object
properties:
mapKey:
allOf:
- $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
title: map_key
description: The key expression for a map creation statement.
title: map_key
unevaluatedProperties: false
not:
allOf:
- anyOf:
- required:
- fieldKey
- required:
- mapKey
- not:
oneOf:
- required:
- fieldKey
- required:
- mapKey
properties:
id:
type: string
title: id
format: int64
description: "Required. An id assigned to this node by the parser which is unique\n in a given expression tree. This is used to associate type\n information and other attributes to the node."
value:
allOf:
- $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
title: value
description: "Required. The value assigned to the key.\n\n If the optional_entry field is true, the expression must resolve to an\n optional-typed value. If the optional value is present, the key will be\n set; however, if the optional value is absent, the key will be unset."
optionalEntry:
type: boolean
title: optional_entry
description: Whether the key-value pair is optional.
title: Entry
description: Represents an entry.
google.api.expr.v1alpha1.Expr:
type: object
anyOf:
- type: object
properties:
callExpr:
allOf:
- $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr.Call'
title: call_expr
description: A call expression, including calls to predefined functions and operators.
title: call_expr
- type: object
properties:
comprehensionExpr:
allOf:
- $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr.Comprehension'
title: comprehension_expr
description: A comprehension expression.
title: comprehension_expr
- type: object
properties:
constExpr:
allOf:
- $ref: '#/components/schemas/google.api.expr.v1alpha1.Constant'
title: const_expr
description: A literal expression.
title: const_expr
- type: object
properties:
identExpr:
allOf:
- $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr.Ident'
title: ident_expr
description: An identifier expression.
title: ident_expr
- type: object
properties:
listExpr:
allOf:
- $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr.CreateList'
title: list_expr
description: A list creation expression.
title: list_expr
- type: object
properties:
selectExpr:
allOf:
- $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr.Select'
title: select_expr
description: A field selection expression, e.g. `request.auth`.
title: select_expr
- type: object
properties:
structExpr:
allOf:
- $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr.CreateStruct'
title: struct_expr
description: A map or message creation expression.
title: struct_expr
unevaluatedProperties: false
not:
allOf:
- anyOf:
- required:
- callExpr
- required:
- comprehensionExpr
- required:
- constExpr
- required:
- identExpr
- required:
- listExpr
- required:
- selectExpr
- required:
- structExpr
- not:
oneOf:
- required:
- callExpr
- required:
- comprehensionExpr
- required:
- constExpr
- required:
- identExpr
- required:
- listExpr
- required:
- selectExpr
- required:
- structExpr
properties:
id:
type: string
title: id
format: int64
description: "Required. An id assigned to this node by the parser which is unique in a\n given expression tree. This is used to associate type information and other\n attributes to a node in the parse tree."
title: Expr
description: "An abstract representation of a common expression.\n\n Expressions are abstractly represented as a collection of identifiers,\n select statements, function calls, literals, and comprehensions. All\n operators with the exception of the '.' operator are modelled as function\n calls. This makes it easy to represent new operators into the existing AST.\n\n All references within expressions must resolve to a\n [Decl][google.api.expr.v1alpha1.Decl] provided at type-check for an\n expression to be valid. A reference may either be a bare identifier `name` or\n a qualified identifier `google.api.name`. References may either refer to a\n value or a function declaration.\n\n For example, the expression `google.api.name.startsWith('expr')` references\n the declaration `google.api.name` within a\n [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression, and the\n function declaration `startsWith`."
bytebase.v1.BatchDeparseRequest:
type: object
properties:
expressions:
type: array
items:
$ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
title: expressions
description: The CEL expression ASTs to deparse.
title: BatchDeparseRequest
additionalProperties: false
description: Request message for batch deparsing CEL expressions.
google.api.expr.v1alpha1.Expr.Comprehension:
type: object
properties:
iterVar:
type: string
title: iter_var
description: "The name of the first iteration variable.\n When the iter_range is a list, this variable is the list element.\n When the iter_range is a map, this variable is the map entry key."
iterVar2:
type: string
title: iter_var2
description: "The name of the second iteration variable, empty if not set.\n When the iter_range is a list, this variable is the integer index.\n When the iter_range is a map, this variable is the map entry value.\n This field is only set for comprehension v2 macros."
iterRange:
allOf:
- $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
title: iter_range
description: The range over which the comprehension iterates.
accuVar:
type: string
title: accu_var
description: The name of the variable used for accumulation of the result.
accuInit:
allOf:
- $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
title: accu_init
description: The initial value of the accumulator.
loopCondition:
allOf:
- $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
title: loop_condition
description: "An expression which can contain iter_var, iter_var2, and accu_var.\n\n Returns false when the result has been computed and may be used as\n a hint to short-circuit the remainder of the comprehension."
loopStep:
allOf:
- $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
title: loop_step
description: "An expression which can contain iter_var, iter_var2, and accu_var.\n\n Computes the next value of accu_var."
result:
allOf:
- $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
title: result
description: "An expression which can contain accu_var.\n\n Computes the result."
title: Comprehension
additionalProperties: false
description: "A comprehension expression applied to a list or map.\n\n Comprehensions are not part of the core syntax, but enabled with macros.\n A macro matches a specific call signature within a parsed AST and replaces\n the call with an alternate AST block. Macro expansion happens at parse\n time.\n\n The following macros are supported within CEL:\n\n Aggregate type macros may be applied to all elements in a list or all keys\n in a map:\n\n * `all`, `exists`, `exists_one` - test a predicate expression against\n the inputs and return `true` if the predicate is satisfied for all,\n any, or only one value `list.all(x, x < 10)`.\n * `filter` - test a predicate expression against the inputs and return\n the subset of elements which satisfy the predicate:\n `payments.filter(p, p > 1000)`.\n * `map` - apply an expression to all elements in the input and return the\n output aggregate type: `[1, 2, 3].map(i, i * i)`.\n\n The `has(m.x)` macro tests whether the property `x` is present in struct\n `m`. The semantics of this macro depend on the type of `m`. For proto2\n messages `has(m.x)` is defined as 'defined, but not set`. For proto3, the\n macro tests whether the property is set to its default. For map and struct\n types, the macro tests whether the property `x` is defined on `m`.\n\n Comprehensions for the standard environment macros evaluation can be best\n visualized as the following pseudocode:\n\n ```\n let `accu_var` = `accu_init`\n for (let `iter_var` in `iter_range`) {\n if (!`loop_condition`) {\n break\n }\n `accu_var` = `loop_step`\n }\n return `result`\n ```\n\n Comprehensions for the optional V2 macros which support map-to-map\n translation differ slightly from the standard environment macros in that\n they expose both the key or index in addition to the value for each list\n or map entry:\n\n ```\n let `accu_var` = `accu_init`\n for (let `iter_var`, `iter_var2` in `iter_range`) {\n if (!`loop_condition`) {\n break\n }\n `accu_var` = `loop_step`\n }\n return `result`\n ```"
bytebase.v1.BatchDeparseResponse:
type: object
properties:
expressions:
type: array
items:
type: string
title: expressions
description: The deparsed CEL expressions as strings.
title: BatchDeparseResponse
additionalProperties: false
description: Response message for batch deparsing CEL expressions.
google.protobuf.Duration:
type: string
format: duration
description: A signed duration in seconds, with up to nine fractional digits and an `s` suffix (for example, `3s` or `-0.001s`).
google.api.expr.v1alpha1.Expr.Ident:
type: object
properties:
name:
type: string
title: name
description: "Required. Holds a single, unqualified identifier, possibly preceded by a\n '.'.\n\n Qualified names are represented by the\n [Expr.Select][google.api.expr.v1alpha1.Expr.Select] expression."
title: Ident
additionalProperties: false
description: An identifier expression. e.g. `request`.
google.api.expr.v1alpha1.Expr.Call:
type: object
properties:
target:
allOf:
- $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
title: target
description: "The target of an method call-style expression. For example, `x` in\n `x.f()`."
function:
type: string
title: function
description: Required. The name of the function or method being called.
args:
type: array
items:
$ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
title: args
description: The arguments.
title: Call
additionalProperties: false
description: "A call expression, including calls to predefined functions and operators.\n\n For example, `value == 10`, `size(map_value)`."
google.protobuf.NullValue:
type: string
title: NullValue
enum:
- NULL_VALUE
description: "`NullValue` is a singleton enumeration to represent the null value for the\n `Value` type union.\n\n The JSON representation for `NullValue` is JSON `null`."
google.api.expr.v1alpha1.Expr.CreateList:
type: object
properties:
elements:
type: array
items:
$ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
title: elements
description: The elements part of the list.
optionalIndices:
type: array
items:
type: integer
format: int32
title: optional_indices
description: "The indices within the elements list which are marked as optional\n elements.\n\n When an optional-typed value is present, the value it contains\n is included in the list. If the optional-typed value is absent, the list\n element is omitted from the CreateList result."
title: CreateList
additionalProperties: false
description: "A list creation expression.\n\n Lists may either be homogenous, e.g. `[1, 2, 3]`, or heterogeneous, e.g.\n `dyn([1, 'hello', 2.0])`"
google.api.expr.v1alpha1.Expr.Select:
type: object
properties:
operand:
allOf:
- $ref: '#/components/schemas/google.api.expr.v1alpha1.Expr'
title: operand
description: "Required. The target of the selection expression.\n\n For example, in the select expression `request.auth`, the `request`\n portion of the expression is the `operand`."
field:
type: string
title: field
description: "Required. The name of the field to select.\n\n For example, in the select expression `request.auth`, the `auth` portion\n of the expression would be the `field`."
testOnly:
type: boolean
title: test_only
description: "Whether the select is to be interpreted as a field presence test.\n\n This results from the macro `has(request.auth)`."
title: Select
additionalProperties: false
description: A field selection expression. e.g. `request.auth`.
google.api.expr.v1alpha1.Constant:
type: object
anyOf:
- type: object
properties:
boolValue:
type: boolean
title: bool_value
description: boolean value.
title: bool_value
- type: object
properties:
bytesValue:
type: string
title: bytes_value
format: byte
description: bytes value.
title: bytes_value
- type: object
properties:
doubleValue:
type: number
title: double_value
format: double
description: double value.
title: double_value
- type: object
properties:
durationValue:
allOf:
- $ref: '#/components/schemas/google.protobuf.Duration'
title: duration_value
description: "protobuf.Duration value.\n\n Deprecated: duration is no longer considered a builtin cel type."
deprecated: true
title: duration_value
- type: object
properties:
int64Value:
type: string
title: int64_value
format: int64
description: int64 value.
title: int64_value
- type: object
properties:
nullValue:
allOf:
- $ref: '#/components/schemas/google.protobuf.NullValue'
title: null_value
description: null value.
title: null_value
- type: object
properties:
stringValue:
type: string
title: string_value
description: string value.
title: string_value
- type: object
properties:
timestampValue:
allOf:
- $ref: '#/components/schemas/google.protobuf.Timestamp'
title: timestamp_value
description: "protobuf.Timestamp value.\n\n Deprecated: timestamp is no longer considered a builtin cel type."
deprecated: true
title: timestamp_value
- type: object
properties:
uint64Value:
type: string
title: uint64_value
format: int64
description: uint64 value.
title: uint64_value
unevaluatedProperties: false
not:
allOf:
- anyOf:
- required:
- boolValue
- required:
- bytesValue
- required:
- doubleValue
- required:
- durationValue
- required:
- int64Value
- required:
- nullValue
- required:
- stringValue
- required:
- timestampValue
- required:
- uint64Value
- not:
oneOf:
- required:
- boolValue
- required:
- bytesValue
- required:
- doubleValue
- required:
- durationValue
- required:
- int64Value
- required:
- nullValue
- required:
- stringValue
- required:
- timestampValue
- required:
- uint64Value
title: Constant
description: "Represents a primitive literal.\n\n Named 'Constant' here for backwards compatibility.\n\n This is similar as the primitives supported in the well-known type\n `google.protobuf.Value`, but richer so it can represent CEL's full range of\n primitives.\n\n Lists and structs are not included as constants as these aggregate types may\n contain [Expr][google.api.expr.v1alpha1.Expr] elements which require\n evaluation and are thus not constant.\n\n Examples of literals include: `\"hello\"`, `b'bytes'`, `1u`, `4.2`, `-2`,\n `true`, `null`."
bytebase.v1.BatchParseRequest:
type: object
properties:
expressions:
type: array
items:
type: string
title: expressions
description: The CEL expression strings to parse.
title: BatchParseRequest
additionalProperties: false
description: Request message for batch parsing CEL expressions.
google.api.expr.v1alpha1.Expr.CreateStruct:
type: object
properties:
messageName:
type: string
title: message_name
description: "The type name of the message to be created, empty when creating map\n literals."
entries:
type: array
items:
$ref: '#/components/schemas/google.api.expr.v1alpha1.Expr.CreateStruct.Entry'
title: entries
description: The entries in the creation expression.
title: CreateStruct
additionalProperties: false
description: "A map or message creation expression.\n\n Maps are constructed as `{'key_name': 'value'}`. Message construction is\n similar, but prefixed with a type name and composed of field ids:\n `types.MyType{field_id: 'value'}`."
x-provenance:
method: harvested
publisher: Bytebase
source: https://api.bytebase.com/openapi.yaml
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)