PUT /v1/pipelines
curl -X PUT "{base_url}/api/v1/pipelines" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "dbt_analytics_customers",
"displayName": "DBT Customer Analytics",
"service": "sample_airflow",
"description": "Analytics pipeline for customer data processing",
"sourceUrl": "http://localhost:8080/tree?dag_id=dbt_analytics_customers",
"tasks": [
{
"name": "extract_customers",
"taskType": "BatchTask",
"description": "Extract customer data from source",
"downstreamTasks": ["transform_customers"]
},
{
"name": "transform_customers",
"taskType": "BatchTask",
"description": "Transform and clean customer data",
"downstreamTasks": ["load_customers"]
},
{
"name": "load_customers",
"taskType": "BatchTask",
"description": "Load transformed data into warehouse"
}
]
}'
from metadata.sdk import configure
from metadata.sdk.entities import Pipelines
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# Retrieve, modify, and update
pipeline = Pipelines.retrieve("538faa63-d204-46ff-aead-d158d0401cac")
pipeline.description = "Updated: Analytics pipeline with incremental customer processing"
updated = Pipelines.update(pipeline)
print(f"Updated to version {updated.version.root}")
import org.openmetadata.schema.entity.data.Pipeline;
// client is an initialized OpenMetadataClient.
// Retrieve, modify, and update
Pipeline pipeline = client.pipelines().get("538faa63-d204-46ff-aead-d158d0401cac");
pipeline.setDescription("Updated: Analytics pipeline with incremental customer processing");
Pipeline updated = client.pipelines().update(pipeline.getId(), pipeline);
# Update by ID
curl -X PATCH "{base_url}/api/v1/pipelines/538faa63-d204-46ff-aead-d158d0401cac" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated: Analytics pipeline with incremental customer processing"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/pipelines/name/sample_airflow.dbt_analytics_customers" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated: Analytics pipeline with incremental customer processing"}
]'
{
"id": "538faa63-d204-46ff-aead-d158d0401cac",
"name": "dbt_analytics_customers",
"displayName": "DBT Customer Analytics",
"fullyQualifiedName": "sample_airflow.dbt_analytics_customers",
"description": "Updated: Analytics pipeline with incremental customer processing",
"version": 0.2,
"updatedAt": 1769982668397,
"updatedBy": "admin",
"service": {
"id": "daa58a49-df05-48a3-a417-45dfd12eacf5",
"type": "pipelineService",
"name": "sample_airflow",
"fullyQualifiedName": "sample_airflow",
"deleted": false
},
"serviceType": "DBTCloud",
"href": "http://localhost:8585/api/v1/pipelines/538faa63-d204-46ff-aead-d158d0401cac",
"deleted": false,
"owners": [],
"tags": [],
"followers": [],
"votes": {
"upVotes": 0,
"downVotes": 0
},
"domains": []
}
Update a Pipeline
Create or update a pipeline with a full request body
PUT
/
v1
/
pipelines
PUT /v1/pipelines
curl -X PUT "{base_url}/api/v1/pipelines" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "dbt_analytics_customers",
"displayName": "DBT Customer Analytics",
"service": "sample_airflow",
"description": "Analytics pipeline for customer data processing",
"sourceUrl": "http://localhost:8080/tree?dag_id=dbt_analytics_customers",
"tasks": [
{
"name": "extract_customers",
"taskType": "BatchTask",
"description": "Extract customer data from source",
"downstreamTasks": ["transform_customers"]
},
{
"name": "transform_customers",
"taskType": "BatchTask",
"description": "Transform and clean customer data",
"downstreamTasks": ["load_customers"]
},
{
"name": "load_customers",
"taskType": "BatchTask",
"description": "Load transformed data into warehouse"
}
]
}'
from metadata.sdk import configure
from metadata.sdk.entities import Pipelines
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# Retrieve, modify, and update
pipeline = Pipelines.retrieve("538faa63-d204-46ff-aead-d158d0401cac")
pipeline.description = "Updated: Analytics pipeline with incremental customer processing"
updated = Pipelines.update(pipeline)
print(f"Updated to version {updated.version.root}")
import org.openmetadata.schema.entity.data.Pipeline;
// client is an initialized OpenMetadataClient.
// Retrieve, modify, and update
Pipeline pipeline = client.pipelines().get("538faa63-d204-46ff-aead-d158d0401cac");
pipeline.setDescription("Updated: Analytics pipeline with incremental customer processing");
Pipeline updated = client.pipelines().update(pipeline.getId(), pipeline);
# Update by ID
curl -X PATCH "{base_url}/api/v1/pipelines/538faa63-d204-46ff-aead-d158d0401cac" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated: Analytics pipeline with incremental customer processing"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/pipelines/name/sample_airflow.dbt_analytics_customers" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated: Analytics pipeline with incremental customer processing"}
]'
{
"id": "538faa63-d204-46ff-aead-d158d0401cac",
"name": "dbt_analytics_customers",
"displayName": "DBT Customer Analytics",
"fullyQualifiedName": "sample_airflow.dbt_analytics_customers",
"description": "Updated: Analytics pipeline with incremental customer processing",
"version": 0.2,
"updatedAt": 1769982668397,
"updatedBy": "admin",
"service": {
"id": "daa58a49-df05-48a3-a417-45dfd12eacf5",
"type": "pipelineService",
"name": "sample_airflow",
"fullyQualifiedName": "sample_airflow",
"deleted": false
},
"serviceType": "DBTCloud",
"href": "http://localhost:8585/api/v1/pipelines/538faa63-d204-46ff-aead-d158d0401cac",
"deleted": false,
"owners": [],
"tags": [],
"followers": [],
"votes": {
"upVotes": 0,
"downVotes": 0
},
"domains": []
}
Update a Pipeline
Create a pipeline or update it if it already exists, usingPUT /v1/pipelines with the full request body. Send the complete definition, not just the fields you want to change. To change only some fields, use PATCH with a JSON Patch array and the application/json-patch+json content type, as shown in the PATCH examples below.
Body Parameters
string
required
Name of the pipeline. Must be unique within the parent pipeline service.
string
required
Fully qualified name of the parent PipelineService, for example
sample_airflow.string
Human-readable display name for the pipeline.
string
Description of the pipeline in Markdown format.
string
URL to the pipeline definition in the source system, for example, the Airflow DAG URL.
array
Array of pipeline tasks representing individual steps in the pipeline.
array
array
Fully qualified names of the domains to assign for governance purposes.
array
object
Custom property values defined by your organization’s metadata schema.
PUT /v1/pipelines
curl -X PUT "{base_url}/api/v1/pipelines" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json" \
-d '{
"name": "dbt_analytics_customers",
"displayName": "DBT Customer Analytics",
"service": "sample_airflow",
"description": "Analytics pipeline for customer data processing",
"sourceUrl": "http://localhost:8080/tree?dag_id=dbt_analytics_customers",
"tasks": [
{
"name": "extract_customers",
"taskType": "BatchTask",
"description": "Extract customer data from source",
"downstreamTasks": ["transform_customers"]
},
{
"name": "transform_customers",
"taskType": "BatchTask",
"description": "Transform and clean customer data",
"downstreamTasks": ["load_customers"]
},
{
"name": "load_customers",
"taskType": "BatchTask",
"description": "Load transformed data into warehouse"
}
]
}'
from metadata.sdk import configure
from metadata.sdk.entities import Pipelines
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# Retrieve, modify, and update
pipeline = Pipelines.retrieve("538faa63-d204-46ff-aead-d158d0401cac")
pipeline.description = "Updated: Analytics pipeline with incremental customer processing"
updated = Pipelines.update(pipeline)
print(f"Updated to version {updated.version.root}")
import org.openmetadata.schema.entity.data.Pipeline;
// client is an initialized OpenMetadataClient.
// Retrieve, modify, and update
Pipeline pipeline = client.pipelines().get("538faa63-d204-46ff-aead-d158d0401cac");
pipeline.setDescription("Updated: Analytics pipeline with incremental customer processing");
Pipeline updated = client.pipelines().update(pipeline.getId(), pipeline);
# Update by ID
curl -X PATCH "{base_url}/api/v1/pipelines/538faa63-d204-46ff-aead-d158d0401cac" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated: Analytics pipeline with incremental customer processing"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/pipelines/name/sample_airflow.dbt_analytics_customers" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated: Analytics pipeline with incremental customer processing"}
]'
{
"id": "538faa63-d204-46ff-aead-d158d0401cac",
"name": "dbt_analytics_customers",
"displayName": "DBT Customer Analytics",
"fullyQualifiedName": "sample_airflow.dbt_analytics_customers",
"description": "Updated: Analytics pipeline with incremental customer processing",
"version": 0.2,
"updatedAt": 1769982668397,
"updatedBy": "admin",
"service": {
"id": "daa58a49-df05-48a3-a417-45dfd12eacf5",
"type": "pipelineService",
"name": "sample_airflow",
"fullyQualifiedName": "sample_airflow",
"deleted": false
},
"serviceType": "DBTCloud",
"href": "http://localhost:8585/api/v1/pipelines/538faa63-d204-46ff-aead-d158d0401cac",
"deleted": false,
"owners": [],
"tags": [],
"followers": [],
"votes": {
"upVotes": 0,
"downVotes": 0
},
"domains": []
}
Returns
Returns the updated pipeline object with the new version number.Response
string
Unique identifier for the pipeline (UUID format).
string
Pipeline name.
string
Fully qualified name in format
service.pipelineName.string
Updated description.
number
Incremented version number.
Error Handling
| Code | Error Type | Description |
|---|---|---|
400 | BAD_REQUEST | Invalid or malformed request body |
401 | UNAUTHORIZED | Invalid or missing authentication token |
403 | FORBIDDEN | User lacks permission to update this pipeline |
409 | CONFLICT | Concurrent modification detected |
Was this page helpful?