Skip to main content
GET
https://sandbox.getcollate.io/api
/
v1
/
storedProcedures
GET /v1/storedProcedures
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 Stored Procedures

List all stored procedures with optional filtering and pagination.

Query Parameters

databaseSchema
string
Filter by database schema fully qualified name.
database
string
Filter by database fully qualified name.
limit
integer
default:"10"
Maximum number of results to return (max: 1000000).
before
string
Cursor for backward pagination.
after
string
Cursor for forward pagination.
fields
string
Comma-separated list of fields to include: owners, tags, followers, votes, extension, domains, sourceHash. See Supported Fields below.
include
string
default:"non-deleted"
Include all, deleted, or non-deleted entities.
GET /v1/storedProcedures
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
  }
}

Returns

Returns a paginated list of stored procedure objects. By default, only basic fields are included. Use the fields parameter to request additional data.

Response

data
array
Array of stored procedure objects.
paging
object
Pagination information.

Supported Fields

The following fields can be requested via the fields query parameter:
FieldDescription
ownersOwner references (users and teams)
tagsClassification tags
followersUsers following the stored procedure
votesUser votes and ratings
extensionCustom property values
domainsDomain assignments for governance
sourceHashHash for change detection

Error Handling

CodeError TypeDescription
401UNAUTHORIZEDInvalid or missing authentication token
403FORBIDDENUser lacks permission to list stored procedures