OpenObserve Functions API
Functions retrieval & management operations
Functions retrieval & management operations
openapi: 3.1.0
info:
title: openobserve Actions Functions API
description: OpenObserve API documents [https://openobserve.ai/docs/](https://openobserve.ai/docs/)
contact:
name: OpenObserve
url: https://openobserve.ai/
email: hello@zinclabs.io
license:
name: AGPL-3.0
identifier: AGPL-3.0
version: 0.90.0
tags:
- name: Functions
description: Functions retrieval & management operations
paths:
/api/{org_id}/enrichment_tables/{table_name}:
post:
tags:
- Functions
summary: Create or update enrichment table
description: Creates a new enrichment table or updates existing table data for log enrichment
operationId: CreateUpdateEnrichmentTable
parameters:
- name: org_id
in: path
description: Organization name
required: true
schema:
type: string
- name: table_name
in: path
description: Table name
required: true
schema:
type: string
responses:
'201':
description: Saved enrichment table
content:
application/json:
schema:
default: null
'400':
description: Bad Request
content:
application/json:
schema:
default: null
security:
- Authorization: []
x-o2-mcp:
description: Create/update enrichment table
category: enrichment
x-o2-ratelimit:
module: Enrichment Table
operation: create
/api/{org_id}/enrichment_tables/{table_name}/url:
post:
tags:
- Functions
summary: Create enrichment table from URL
description: Creates a new enrichment table by fetching CSV data from a public URL. The process runs asynchronously in the background.
operationId: CreateEnrichmentTableFromUrl
parameters:
- name: org_id
in: path
description: Organization name
required: true
schema:
type: string
- name: table_name
in: path
description: Table name
required: true
schema:
type: string
- name: append
in: query
description: 'Whether to append data to existing table (default: false)'
required: false
schema:
type: boolean
requestBody:
description: URL for the CSV file
content:
application/json:
schema:
$ref: '#/components/schemas/EnrichmentTableUrlRequest'
required: true
responses:
'202':
description: Job created successfully
content:
text/plain:
schema:
type: string
'400':
description: Bad Request
content:
text/plain:
schema:
type: string
'500':
description: Internal Server Error
content:
text/plain:
schema:
type: string
security:
- Authorization: []
x-o2-ratelimit:
module: Enrichment Table
operation: create
x-o2-mcp:
description: Create table from URL
category: enrichment
/api/{org_id}/functions:
get:
tags:
- Functions
summary: List organization functions
description: Retrieves all custom transformation functions available in the organization, including their VRL code, configuration parameters, and current usage status. Shows function metadata such as creation date, last modified time, and pipeline dependencies to help administrators manage data transformation logic across the organization.
operationId: listFunctions
parameters:
- name: org_id
in: path
description: Organization name
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- list
properties:
list:
type: array
items:
$ref: '#/components/schemas/Transform'
security:
- Authorization: []
x-o2-ratelimit:
module: Functions
operation: list
x-o2-mcp:
description: List all functions
category: functions
summary_fields:
- name
- transType
- streams
post:
tags:
- Functions
summary: Create new function
description: Creates a new custom transformation function using VRL (Vector Remap Language) code. Functions can be used in data ingestion pipelines to transform, enrich, or filter incoming log, metric, and trace data. Support complex data transformations, field extraction, format conversion, and conditional processing to standardize data before storage and indexing.
operationId: createFunction
parameters:
- name: org_id
in: path
description: Organization name
required: true
schema:
type: string
requestBody:
description: Function data
content:
application/json:
schema:
type: object
required:
- function
properties:
function:
type: string
name:
type: string
numArgs:
type: integer
format: int32
minimum: 0
params:
type: string
streams:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/StreamOrder'
transType:
type:
- integer
- 'null'
format: int32
minimum: 0
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
'400':
description: Failure
content:
application/json:
schema:
default: null
security:
- Authorization: []
x-o2-mcp:
description: Create a VRL (Vector Remap Language) function
category: functions
x-o2-ratelimit:
module: Functions
operation: create
/api/{org_id}/functions/test:
post:
tags:
- Functions
summary: Validate VRL function syntax
description: Validates VRL (Vector Remap Language) transformation function syntax by testing it against sample events. Returns validation results with any syntax errors or successful transformation output. Use this to verify VRL code is correct before creating or updating a function. Accepts function code, sample events to test against, and optional trans_type (0 for VRL, 1 for JS).
operationId: testFunction
parameters:
- name: org_id
in: path
description: Organization name
required: true
schema:
type: string
requestBody:
description: Test run function
content:
application/json:
schema:
type: object
required:
- function
- events
properties:
events:
type: array
items: {}
function:
type: string
trans_type:
type:
- integer
- 'null'
format: int32
minimum: 0
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
'400':
description: Failure
content:
application/json:
schema:
default: null
security:
- Authorization: []
x-o2-mcp:
category: functions
/api/{org_id}/functions/{name}:
get:
tags:
- Functions
summary: Get function pipeline dependencies
description: Lists all data processing pipelines that currently use the specified transformation function. Returns pipeline names, types, and usage details to help administrators understand the impact scope before making changes to the function. Essential for change management and ensuring data processing continuity during function updates.
operationId: functionPipelineDependency
parameters:
- name: org_id
in: path
description: Organization name
required: true
schema:
type: string
- name: name
in: path
description: Function name
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
required:
- list
properties:
list:
type: array
items:
$ref: '#/components/schemas/Transform'
'404':
description: Function not found
content:
application/json:
schema:
default: null
'500':
description: Internal server error
content:
application/json:
schema:
default: null
security:
- Authorization: []
x-o2-mcp:
description: Check function dependencies
category: functions
x-o2-ratelimit:
module: Functions
operation: get
put:
tags:
- Functions
summary: Update function
description: Updates an existing transformation function with new VRL code, parameters, or configuration settings. Changes take effect immediately and apply to all data processing pipelines currently using this function. Test function changes thoroughly before deployment to avoid data transformation errors in production pipelines.
operationId: updateFunction
parameters:
- name: org_id
in: path
description: Organization name
required: true
schema:
type: string
- name: name
in: path
description: Function name
required: true
schema:
type: string
requestBody:
description: Function data
content:
application/json:
schema:
type: object
required:
- function
properties:
function:
type: string
name:
type: string
numArgs:
type: integer
format: int32
minimum: 0
params:
type: string
streams:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/StreamOrder'
transType:
type:
- integer
- 'null'
format: int32
minimum: 0
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
'400':
description: Failure
content:
application/json:
schema:
default: null
security:
- Authorization: []
x-o2-mcp:
description: Update a VRL function
category: functions
x-o2-ratelimit:
module: Functions
operation: update
delete:
tags:
- Functions
summary: Delete function
description: Permanently deletes a custom transformation function from the organization. The function must not be in use by active pipelines unless the force parameter is specified. Once deleted, any pipelines previously using this function will need to be updated with alternative transformation logic to continue functioning properly.
operationId: deleteFunction
parameters:
- name: org_id
in: path
description: Organization name
required: true
schema:
type: string
- name: name
in: path
description: Function name
required: true
schema:
type: string
- name: force
in: query
description: Force delete function regardless pipeline dependencies
required: true
schema:
type: boolean
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
'404':
description: NotFound
content:
application/json:
schema:
default: null
security:
- Authorization: []
x-o2-ratelimit:
module: Functions
operation: delete
x-o2-mcp:
description: Delete a function
category: functions
requires_confirmation: true
components:
schemas:
StreamOrder:
type: object
properties:
applyBeforeFlattening:
type: boolean
isRemoved:
type: boolean
order:
type: integer
format: int32
minimum: 0
stream:
type: string
streamType:
$ref: '#/components/schemas/StreamType'
Transform:
type: object
required:
- function
properties:
function:
type: string
name:
type: string
numArgs:
type: integer
format: int32
minimum: 0
params:
type: string
streams:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/StreamOrder'
transType:
type:
- integer
- 'null'
format: int32
minimum: 0
EnrichmentTableUrlRequest:
type: object
description: 'Request body for creating an enrichment table from a public URL.
The URL must point to a publicly accessible CSV file. Authentication-required
URLs (e.g., S3 presigned URLs with complex headers) are not currently supported.
The `append` behavior is controlled via query parameter, matching the file upload endpoint.'
required:
- url
properties:
replace_failed:
type: boolean
description: 'Replace only the failed job''s URL (optional, default: false)
When true, only updates the failed job with the new URL while keeping
all successful jobs unchanged. Useful for fixing typos or broken URLs
without re-downloading working data sources.'
url:
type: string
description: 'Public URL to the CSV file.
Requirements:
- Must start with http:// or https://
- Must be publicly accessible (no authentication)
- Should return CSV content-type (not enforced but recommended)
- File can be any size - streaming handles large files efficiently'
StreamType:
type: string
enum:
- logs
- metrics
- traces
- service_graph
- enrichment_tables
- file_list
- metadata
- index
securitySchemes:
Authorization:
type: apiKey
in: header
name: Authorization
BasicAuth:
type: http
scheme: basic