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

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

si_id = "f5b0fa81-f241-4508-9219-dae31dcced18"
user_id = "user-uuid-here"

# Add a follower
si = SearchIndexes.add_followers(si_id, [user_id])
print(f"Followers: {len(si.followers)}")

# Remove a follower
si = SearchIndexes.remove_followers(si_id, [user_id])

# Add a vote
si = SearchIndexes.add_vote(si_id, vote_type="votedUp")

# Remove a vote
si = SearchIndexes.remove_vote(si_id)
{
  "id": "f5b0fa81-f241-4508-9219-dae31dcced18",
  "name": "table_search_index",
  "fullyQualifiedName": "elasticsearch_sample.table_search_index",
  "displayName": "TableSearchIndex",
  "version": 0.1,
  "updatedAt": 1769982670810,
  "updatedBy": "admin",
  "service": {
    "id": "search-service-id",
    "type": "searchService",
    "name": "elasticsearch_sample",
    "fullyQualifiedName": "elasticsearch_sample"
  },
  "serviceType": "ElasticSearch",
  "deleted": false,
  "followers": [
    {
      "id": "user-uuid-here",
      "type": "user",
      "name": "john.doe"
    }
  ],
  "owners": [],
  "tags": [],
  "domains": []
}

Followers & Votes

Manage followers and votes for search index entities.

Followers

Add Follower

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

Remove Follower

DELETE /v1/searchIndexes/{id}/followers/{userId}
id
string
required
UUID of the search index.
userId
string
required
UUID of the user to remove.

Votes

Add or Update Vote

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

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

si_id = "f5b0fa81-f241-4508-9219-dae31dcced18"
user_id = "user-uuid-here"

# Add a follower
si = SearchIndexes.add_followers(si_id, [user_id])
print(f"Followers: {len(si.followers)}")

# Remove a follower
si = SearchIndexes.remove_followers(si_id, [user_id])

# Add a vote
si = SearchIndexes.add_vote(si_id, vote_type="votedUp")

# Remove a vote
si = SearchIndexes.remove_vote(si_id)
{
  "id": "f5b0fa81-f241-4508-9219-dae31dcced18",
  "name": "table_search_index",
  "fullyQualifiedName": "elasticsearch_sample.table_search_index",
  "displayName": "TableSearchIndex",
  "version": 0.1,
  "updatedAt": 1769982670810,
  "updatedBy": "admin",
  "service": {
    "id": "search-service-id",
    "type": "searchService",
    "name": "elasticsearch_sample",
    "fullyQualifiedName": "elasticsearch_sample"
  },
  "serviceType": "ElasticSearch",
  "deleted": false,
  "followers": [
    {
      "id": "user-uuid-here",
      "type": "user",
      "name": "john.doe"
    }
  ],
  "owners": [],
  "tags": [],
  "domains": []
}

Error Handling

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