DataHub website screenshot

DataHub

DataHub is LinkedIn's generalized metadata search and discovery platform, providing a unified data catalog, lineage graph, governance tooling, and event-driven Actions Framework. It exposes GraphQL, OpenAPI, and Rest.li APIs along with Python and Java SDKs and a CLI for metadata ingestion.

7 APIs 0 Features
Data CatalogData DiscoveryData GovernanceData LineageMetadata

APIs

DataHub GraphQL API

Primary API for querying and mutating metadata in DataHub. The GraphQL API serves as the main public API for the platform and can be used to fetch and update metadata programmat...

DataHub OpenAPI

RESTful API endpoints documented using the OpenAPI standard for interacting with DataHub metadata. Provides endpoints for entities, relationships, timeline, and platform events....

DataHub REST API

The Rest.li API represents the underlying persistence layer and exposes the raw PDL models used in storage. It powers the GraphQL API under the hood and is used for system-speci...

DataHub Python SDK

Python client for interacting with DataHub. The acryl-datahub package provides a CLI and SDK for DataHub, including REST and Kafka emitter APIs for pushing metadata programmatic...

DataHub Java SDK

Java client for interacting with DataHub. The io.acryl datahub-client package offers REST emitter APIs that can be used to emit metadata from JVM-based systems. It supports all ...

DataHub CLI

Command line tool for interacting with DataHub. The datahub CLI allows you to perform common operations including metadata ingestion, entity management, and system administratio...

DataHub Actions Framework

Event-driven framework for responding to real-time changes in the DataHub metadata graph. The Actions Framework allows you to configure event sources, transformations, and actio...

Collections

DataHub OpenAPI

POSTMAN

Arazzo Workflows

DataHub Add Glossary Terms to a Dataset

Confirm a dataset, attach glossary terms via its glossaryTerms aspect, then review the change in the entity timeline.

ARAZZO

DataHub Assign Dataset Ownership

Write an ownership aspect onto a dataset, then read it back to verify the owners were recorded.

ARAZZO

DataHub Decommission a Dataset

Confirm a dataset, check it has no downstream dependents, then soft delete it from the metadata graph.

ARAZZO

DataHub Emit Platform Event and Audit

Emit a metadata change proposal through the platform ingestion path, then read the entity back and review its timeline.

ARAZZO

DataHub Tag a Dataset

Confirm a dataset exists, then write its globalTags aspect to apply governance tags.

ARAZZO

DataHub Trace Dataset Lineage

Confirm a dataset, query its downstream relationships, then batch fetch the related datasets' aspects.

ARAZZO

DataHub Upsert Dataset and Verify

Write a dataset's properties aspect into the metadata graph, then read the entity back to confirm the write landed.

ARAZZO

GraphQL

DataHub GraphQL API

Primary API for querying and mutating metadata in DataHub. The GraphQL API serves as the main public API for the platform and can be used to fetch and update metadata programmat...

GRAPHQL

Pricing Plans

Datahub Plans Pricing

2 plans

PLANS

Rate Limits

Datahub Rate Limits

2 limits

RATE LIMITS

FinOps

Event Specifications

DataHub Actions Framework Events

Event-driven interface for responding to real-time changes in the DataHub metadata graph. The Actions Framework consumes Metadata Change Log events and Platform Events from Kafk...

ASYNCAPI

Semantic Vocabularies

Datahub Context

0 classes · 9 properties

JSON-LD

API Governance Rules

DataHub API Rules

5 rules · 1 errors 4 warnings

SPECTRAL

JSON Structure

Datahub Structure

0 properties

JSON STRUCTURE

Resources

🔗
PostmanWorkspace
PostmanWorkspace
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Arazzo
Arazzo
🔗
Website
Website
🌐
Portal
Portal
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
🔑
Authentication
Authentication
👥
GitHubRepository
GitHubRepository
🔗
Slack
Slack
📰
Blog
Blog
🔗
Demo
Demo
📄
ChangeLog
ChangeLog
🟢
StatusPage
StatusPage
🔗
Community
Community
👥
YouTube
YouTube
🔗
LinkedIn
LinkedIn
📜
PrivacyPolicy
PrivacyPolicy
🔗
Security
Security
🔗
JSONLD
JSONLD
🔗
Vocabulary
Vocabulary
🔗
Capabilities
Capabilities
🔗
Rules
Rules

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: DataHub OpenAPI
  version: 1.4.0
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Entities
    type: folder
  items:
  - info:
      name: DataHub Upsert entity aspects
      type: http
    http:
      method: POST
      url: http://localhost:8080/entities/v1/
      params:
      - name: createEntityIfNotExists
        value: ''
        type: query
        description: When set to true, the entity will only be created if it does not already exist. If the entity already
          exists, the request is ignored.
      body:
        type: json
        data: '{}'
    docs: Create or update one or more entity aspects in the DataHub metadata graph. Supports upserting entity-aspect pairs
      where the entire DataHub metadata model is available for writing. Use the createEntityIfNotExists query parameter to
      conditionally create entities only if they do not already exist.
  - info:
      name: DataHub Delete entities
      type: http
    http:
      method: DELETE
      url: http://localhost:8080/entities/v1/
      params:
      - name: urns
        value: ''
        type: query
        description: One or more entity URNs to operate on. Only a single entity type may be queried per request. URNs follow
          the format urn:li:{entityType}:{key}.
      - name: soft
        value: ''
        type: query
        description: Whether to perform a soft delete (marking the entity as removed while preserving metadata) or a hard
          delete (permanently removing all metadata). Defaults to true (soft delete).
    docs: Delete one or more entities from the DataHub metadata graph. Supports both soft deletes (marking entities as removed
      while preserving metadata) and hard deletes (permanently removing all entity metadata). Soft delete is the default behavior.
  - info:
      name: DataHub Retrieve latest entity aspects
      type: http
    http:
      method: GET
      url: http://localhost:8080/entities/v1/latest
      params:
      - name: urns
        value: ''
        type: query
        description: One or more entity URNs to operate on. Only a single entity type may be queried per request. URNs follow
          the format urn:li:{entityType}:{key}.
      - name: aspectNames
        value: ''
        type: query
        description: Specific aspect names to retrieve for the requested entities. If not provided, all aspects are returned.
    docs: Retrieve the latest aspects for one or more entities from the DataHub metadata graph. Requires raw URN strings and
      supports fetching specific aspects by name. Only a single entity type may be queried per request.
- info:
    name: Relationships
    type: folder
  items:
  - info:
      name: DataHub Query entity relationships
      type: http
    http:
      method: GET
      url: http://localhost:8080/relationships/v1/
      params:
      - name: urn
        value: ''
        type: query
        description: The URN of the target entity to query relationships for.
      - name: relationshipTypes
        value: ''
        type: query
        description: Filter results to specific relationship types such as OwnedBy, Contains, DownstreamOf, or Produces.
      - name: direction
        value: ''
        type: query
        description: Direction of relationship traversal relative to the target entity.
      - name: start
        value: ''
        type: query
        description: Pagination offset for the result set.
      - name: count
        value: ''
        type: query
        description: Maximum number of relationships to return.
    docs: Query the relationship graph to navigate connections between entities. Returns relationships for a given entity
      URN, with support for filtering by relationship type and traversal direction. Use this endpoint to discover lineage,
      ownership, containment, and other graph edges.
- info:
    name: Timeline
    type: folder
  items:
  - info:
      name: DataHub Query entity timeline
      type: http
    http:
      method: GET
      url: http://localhost:8080/timeline/
      params:
      - name: urn
        value: ''
        type: query
        description: The URN of the entity whose timeline to retrieve.
      - name: aspectNames
        value: ''
        type: query
        description: The names of aspects to include in the timeline. If not specified, all aspects are returned.
      - name: startTimeMillis
        value: ''
        type: query
        description: Start of the time range in epoch milliseconds.
      - name: endTimeMillis
        value: ''
        type: query
        description: End of the time range in epoch milliseconds.
    docs: Query the versioned history of an entity's aspects over time. Useful for tracking changes such as schema modifications,
      documentation updates, ownership transfers, and tag additions that have occurred on a given entity. Returns a chronological
      list of aspect versions with timestamps and audit information.
- info:
    name: Platform
    type: folder
  items:
  - info:
      name: DataHub Emit platform metadata events
      type: http
    http:
      method: POST
      url: http://localhost:8080/platform/entities/v1
      body:
        type: json
        data: '{}'
    docs: Write metadata events using the standard platform format. Provides an alternative ingestion path for emitting metadata
      change proposals (MCPs) to the DataHub metadata graph. Events are processed asynchronously and undergo basic schema
      validation upon receipt.
- info:
    name: Batch
    type: folder
  items:
  - info:
      name: DataHub Batch fetch entities
      type: http
    http:
      method: POST
      url: http://localhost:8080/v3/entity/:entityName/batchGet
      params:
      - name: entityName
        value: ''
        type: path
        description: The type name of the entities to fetch, such as dataset, chart, dashboard, dataFlow, dataJob, or corpUser.
      body:
        type: json
        data: '{}'
    docs: Fetch multiple entities and their aspects in a single request. Supports retrieving specific aspect versions using
      the If-Version-Match header for conditional reads. Allows fetching entities in bulk with fine-grained control over which
      aspects and versions are returned.
bundled: true