Skip to main content

OpenMetadata SDKs & APIs

The OpenMetadata API provides programmatic access to all metadata in your data catalog. Build integrations, automate workflows, and manage your data assets using our REST API or native SDKs.

Base URL

All API requests should be made to your OpenMetadata instance.
https://{your-company}.open-metadata.org/api/v1
https://your-host.com/api/v1

Client Libraries

Install an official SDK to interact with the OpenMetadata API in your preferred language.
pip install "openmetadata-ingestion~=1.11.9"
The Python SDK provides a high-level, type-safe API with built-in support for ingestion, lineage, and all entity operations.

Quick Start

Get started with a simple API call to list tables in your catalog:
Python
from metadata.ingestion.ometa.ometa_api import OpenMetadata
from metadata.generated.schema.entity.services.connections.metadata.openMetadataConnection import (
    OpenMetadataConnection,
)
from metadata.generated.schema.security.client.openMetadataJWTClientConfig import (
    OpenMetadataJWTClientConfig,
)

# Configure connection
server_config = OpenMetadataConnection(
    hostPort="https://your-company.open-metadata.org/api",
    authProvider="openmetadata",
    securityConfig=OpenMetadataJWTClientConfig(
        jwtToken="your-jwt-token"
    ),
)

# Create client
metadata = OpenMetadata(server_config)

# List tables
tables = metadata.list_all_entities(entity=Table)
for table in tables:
    print(f"{table.fullyQualifiedName}: {table.description}")

Authentication

All API requests require authentication using a JWT Bearer token.
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
You can obtain a token through Bot Tokens (for service accounts via Settings > Bots) or Personal Access Tokens (via your Profile > Access Tokens).

Authentication Guide

Learn more about authentication methods, token management, and security configuration.

Error Handling

The API uses conventional HTTP response codes:
CodeDescription
200Success
201Created
400Bad Request — Invalid parameters
401Unauthorized — Invalid or missing token
403Forbidden — Insufficient permissions
404Not Found — Resource doesn’t exist
409Conflict — Resource already exists
429Too Many Requests — Rate limit exceeded
500Internal Server Error

Explore the API

Need Help?