from metadata.sdk import configure
from metadata.sdk.entities import StoredProcedures
configure(
host="https://your-company.getcollate.io/api",
jwt_token="your-jwt-token"
)
# List first page
procedures = StoredProcedures.list(limit=50)
for sp in procedures.data:
print(f"{sp.fullyQualifiedName}")
# List all with auto-pagination
for sp in StoredProcedures.list_all():
print(f"{sp.fullyQualifiedName}")
# Filter by database schema
procedures = StoredProcedures.list(
databaseSchema="snowflake_prod.analytics.public",
fields=["owners", "tags", "domain"],
limit=50
)
for sp in procedures.data:
print(f"{sp.fullyQualifiedName}")
if sp.owners:
print(f" Owners: {[o.name for o in sp.owners]}")
if sp.tags:
print(f" Tags: {[t.tagFQN for t in sp.tags]}")
{
"data": [
{
"id": "d02b24fa-a246-4563-adf1-9ad21f251c0e",
"name": "calculate_average",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify.calculate_average",
"description": "Procedure to calculate average",
"storedProcedureCode": {
"code": "CREATE OR REPLACE PROCEDURE calculate_average(numbers INT ARRAY) RETURNS FLOAT NOT NULL LANGUAGE SQL AS $$DECLARE sum_val INT = 0;count_val INT = 0;average_val FLOAT;BEGIN\n FOR num IN ARRAY numbers DO sum_val := sum_val + num;\n count_val := count_val + 1;\nEND FOR;\nIF count_val = 0 THEN\n average_val := 0.0;\nELSE\n average_val := sum_val / count_val;\nEND IF;\nRETURN average_val;\nEND;$$;"
},
"version": 0.1,
"updatedAt": 1769982660822,
"updatedBy": "admin",
"storedProcedureType": "StoredProcedure",
"href": "http://localhost:8585/api/v1/storedProcedures/d02b24fa-a246-4563-adf1-9ad21f251c0e",
"databaseSchema": {
"id": "4dd30184-009c-4792-b296-9562eaed651f",
"type": "databaseSchema",
"name": "shopify",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify",
"description": "This **mock** database contains schema related to shopify sales and orders with related dimension tables.",
"displayName": "shopify",
"deleted": false,
"href": "http://localhost:8585/api/v1/databaseSchemas/4dd30184-009c-4792-b296-9562eaed651f"
},
"database": {
"id": "0be090de-0941-48c4-af49-a6157c91cda0",
"type": "database",
"name": "ecommerce_db",
"fullyQualifiedName": "sample_data.ecommerce_db",
"description": "This **mock** database contains schemas related to shopify sales and orders with related dimension tables.",
"displayName": "ecommerce_db",
"deleted": false,
"href": "http://localhost:8585/api/v1/databases/0be090de-0941-48c4-af49-a6157c91cda0"
},
"serviceType": "BigQuery",
"deleted": false,
"owners": [],
"tags": [],
"domains": [],
"processedLineage": false,
"entityStatus": "Unprocessed"
}
],
"paging": {
"after": "...",
"total": 12
}
}
List all stored procedures with optional filtering and pagination
from metadata.sdk import configure
from metadata.sdk.entities import StoredProcedures
configure(
host="https://your-company.getcollate.io/api",
jwt_token="your-jwt-token"
)
# List first page
procedures = StoredProcedures.list(limit=50)
for sp in procedures.data:
print(f"{sp.fullyQualifiedName}")
# List all with auto-pagination
for sp in StoredProcedures.list_all():
print(f"{sp.fullyQualifiedName}")
# Filter by database schema
procedures = StoredProcedures.list(
databaseSchema="snowflake_prod.analytics.public",
fields=["owners", "tags", "domain"],
limit=50
)
for sp in procedures.data:
print(f"{sp.fullyQualifiedName}")
if sp.owners:
print(f" Owners: {[o.name for o in sp.owners]}")
if sp.tags:
print(f" Tags: {[t.tagFQN for t in sp.tags]}")
{
"data": [
{
"id": "d02b24fa-a246-4563-adf1-9ad21f251c0e",
"name": "calculate_average",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify.calculate_average",
"description": "Procedure to calculate average",
"storedProcedureCode": {
"code": "CREATE OR REPLACE PROCEDURE calculate_average(numbers INT ARRAY) RETURNS FLOAT NOT NULL LANGUAGE SQL AS $$DECLARE sum_val INT = 0;count_val INT = 0;average_val FLOAT;BEGIN\n FOR num IN ARRAY numbers DO sum_val := sum_val + num;\n count_val := count_val + 1;\nEND FOR;\nIF count_val = 0 THEN\n average_val := 0.0;\nELSE\n average_val := sum_val / count_val;\nEND IF;\nRETURN average_val;\nEND;$$;"
},
"version": 0.1,
"updatedAt": 1769982660822,
"updatedBy": "admin",
"storedProcedureType": "StoredProcedure",
"href": "http://localhost:8585/api/v1/storedProcedures/d02b24fa-a246-4563-adf1-9ad21f251c0e",
"databaseSchema": {
"id": "4dd30184-009c-4792-b296-9562eaed651f",
"type": "databaseSchema",
"name": "shopify",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify",
"description": "This **mock** database contains schema related to shopify sales and orders with related dimension tables.",
"displayName": "shopify",
"deleted": false,
"href": "http://localhost:8585/api/v1/databaseSchemas/4dd30184-009c-4792-b296-9562eaed651f"
},
"database": {
"id": "0be090de-0941-48c4-af49-a6157c91cda0",
"type": "database",
"name": "ecommerce_db",
"fullyQualifiedName": "sample_data.ecommerce_db",
"description": "This **mock** database contains schemas related to shopify sales and orders with related dimension tables.",
"displayName": "ecommerce_db",
"deleted": false,
"href": "http://localhost:8585/api/v1/databases/0be090de-0941-48c4-af49-a6157c91cda0"
},
"serviceType": "BigQuery",
"deleted": false,
"owners": [],
"tags": [],
"domains": [],
"processedLineage": false,
"entityStatus": "Unprocessed"
}
],
"paging": {
"after": "...",
"total": 12
}
}
owners, tags, followers, votes, extension, domains, sourceHash. See Supported Fields below.all, deleted, or non-deleted entities.from metadata.sdk import configure
from metadata.sdk.entities import StoredProcedures
configure(
host="https://your-company.getcollate.io/api",
jwt_token="your-jwt-token"
)
# List first page
procedures = StoredProcedures.list(limit=50)
for sp in procedures.data:
print(f"{sp.fullyQualifiedName}")
# List all with auto-pagination
for sp in StoredProcedures.list_all():
print(f"{sp.fullyQualifiedName}")
# Filter by database schema
procedures = StoredProcedures.list(
databaseSchema="snowflake_prod.analytics.public",
fields=["owners", "tags", "domain"],
limit=50
)
for sp in procedures.data:
print(f"{sp.fullyQualifiedName}")
if sp.owners:
print(f" Owners: {[o.name for o in sp.owners]}")
if sp.tags:
print(f" Tags: {[t.tagFQN for t in sp.tags]}")
{
"data": [
{
"id": "d02b24fa-a246-4563-adf1-9ad21f251c0e",
"name": "calculate_average",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify.calculate_average",
"description": "Procedure to calculate average",
"storedProcedureCode": {
"code": "CREATE OR REPLACE PROCEDURE calculate_average(numbers INT ARRAY) RETURNS FLOAT NOT NULL LANGUAGE SQL AS $$DECLARE sum_val INT = 0;count_val INT = 0;average_val FLOAT;BEGIN\n FOR num IN ARRAY numbers DO sum_val := sum_val + num;\n count_val := count_val + 1;\nEND FOR;\nIF count_val = 0 THEN\n average_val := 0.0;\nELSE\n average_val := sum_val / count_val;\nEND IF;\nRETURN average_val;\nEND;$$;"
},
"version": 0.1,
"updatedAt": 1769982660822,
"updatedBy": "admin",
"storedProcedureType": "StoredProcedure",
"href": "http://localhost:8585/api/v1/storedProcedures/d02b24fa-a246-4563-adf1-9ad21f251c0e",
"databaseSchema": {
"id": "4dd30184-009c-4792-b296-9562eaed651f",
"type": "databaseSchema",
"name": "shopify",
"fullyQualifiedName": "sample_data.ecommerce_db.shopify",
"description": "This **mock** database contains schema related to shopify sales and orders with related dimension tables.",
"displayName": "shopify",
"deleted": false,
"href": "http://localhost:8585/api/v1/databaseSchemas/4dd30184-009c-4792-b296-9562eaed651f"
},
"database": {
"id": "0be090de-0941-48c4-af49-a6157c91cda0",
"type": "database",
"name": "ecommerce_db",
"fullyQualifiedName": "sample_data.ecommerce_db",
"description": "This **mock** database contains schemas related to shopify sales and orders with related dimension tables.",
"displayName": "ecommerce_db",
"deleted": false,
"href": "http://localhost:8585/api/v1/databases/0be090de-0941-48c4-af49-a6157c91cda0"
},
"serviceType": "BigQuery",
"deleted": false,
"owners": [],
"tags": [],
"domains": [],
"processedLineage": false,
"entityStatus": "Unprocessed"
}
],
"paging": {
"after": "...",
"total": 12
}
}
fields parameter to request additional data.
Show properties
service.database.schema.storedProcedure.fields contains owners.fields contains tags.fields contains domains.fields contains followers.fields contains votes.fields contains extension.fields query parameter:
| Field | Description |
|---|---|
owners | Owner references (users and teams) |
tags | Classification tags |
followers | Users following the stored procedure |
votes | User votes and ratings |
extension | Custom property values |
domains | Domain assignments for governance |
sourceHash | Hash for change detection |
| Code | Error Type | Description |
|---|---|---|
401 | UNAUTHORIZED | Invalid or missing authentication token |
403 | FORBIDDEN | User lacks permission to list stored procedures |
Was this page helpful?