Skip to main content
PUT
https://sandbox.getcollate.io/api
/
v1
/
pipelines
/
{id}
/
followers
PUT /v1/pipelines/{id}/followers
from metadata.sdk import configure
from metadata.sdk.entities import Pipelines

configure(
    host="https://your-company.getcollate.io/api",
    jwt_token="your-jwt-token"
)

pipeline_id = "538faa63-d204-46ff-aead-d158d0401cac"
user_id = "user-uuid-here"

# Add a follower
pipeline = Pipelines.add_followers(pipeline_id, [user_id])
print(f"Followers: {len(pipeline.followers)}")

# Remove a follower
pipeline = Pipelines.remove_followers(pipeline_id, [user_id])

# Add a vote
pipeline = Pipelines.add_vote(pipeline_id, vote_type="votedUp")

# Remove a vote
pipeline = Pipelines.remove_vote(pipeline_id)
{
  "id": "538faa63-d204-46ff-aead-d158d0401cac",
  "name": "dbt_analytics_customers",
  "displayName": "DBT Customer Analytics",
  "fullyQualifiedName": "sample_airflow.dbt_analytics_customers",
  "description": "Analytics pipeline for customer data processing",
  "version": 0.1,
  "updatedAt": 1769982668397,
  "updatedBy": "admin",
  "service": {
    "id": "daa58a49-df05-48a3-a417-45dfd12eacf5",
    "type": "pipelineService",
    "name": "sample_airflow",
    "fullyQualifiedName": "sample_airflow"
  },
  "serviceType": "DBTCloud",
  "deleted": false,
  "followers": [
    {
      "id": "user-uuid-here",
      "type": "user",
      "name": "john.doe"
    }
  ],
  "owners": [],
  "tags": [],
  "votes": {
    "upVotes": 0,
    "downVotes": 0
  },
  "domains": []
}

Followers & Votes

Manage followers and votes for pipeline entities.

Followers

Add Follower

PUT /v1/pipelines/{id}/followers
id
string
required
UUID of the pipeline.
id
string
required
UUID of the user to add as a follower (sent as request body string).

Remove Follower

DELETE /v1/pipelines/{id}/followers/{userId}
id
string
required
UUID of the pipeline.
userId
string
required
UUID of the user to remove.

Votes

Add or Update Vote

PUT /v1/pipelines/{id}/vote
id
string
required
UUID of the pipeline.
updatedVoteType
string
required
Vote type: votedUp, votedDown, or unVoted.
PUT /v1/pipelines/{id}/followers
from metadata.sdk import configure
from metadata.sdk.entities import Pipelines

configure(
    host="https://your-company.getcollate.io/api",
    jwt_token="your-jwt-token"
)

pipeline_id = "538faa63-d204-46ff-aead-d158d0401cac"
user_id = "user-uuid-here"

# Add a follower
pipeline = Pipelines.add_followers(pipeline_id, [user_id])
print(f"Followers: {len(pipeline.followers)}")

# Remove a follower
pipeline = Pipelines.remove_followers(pipeline_id, [user_id])

# Add a vote
pipeline = Pipelines.add_vote(pipeline_id, vote_type="votedUp")

# Remove a vote
pipeline = Pipelines.remove_vote(pipeline_id)
{
  "id": "538faa63-d204-46ff-aead-d158d0401cac",
  "name": "dbt_analytics_customers",
  "displayName": "DBT Customer Analytics",
  "fullyQualifiedName": "sample_airflow.dbt_analytics_customers",
  "description": "Analytics pipeline for customer data processing",
  "version": 0.1,
  "updatedAt": 1769982668397,
  "updatedBy": "admin",
  "service": {
    "id": "daa58a49-df05-48a3-a417-45dfd12eacf5",
    "type": "pipelineService",
    "name": "sample_airflow",
    "fullyQualifiedName": "sample_airflow"
  },
  "serviceType": "DBTCloud",
  "deleted": false,
  "followers": [
    {
      "id": "user-uuid-here",
      "type": "user",
      "name": "john.doe"
    }
  ],
  "owners": [],
  "tags": [],
  "votes": {
    "upVotes": 0,
    "downVotes": 0
  },
  "domains": []
}

Error Handling

CodeError TypeDescription
401UNAUTHORIZEDInvalid or missing authentication token
403FORBIDDENUser lacks permission
404NOT_FOUNDPipeline or user does not exist