Skip to main content
GET
https://sandbox.getcollate.io/api
/
v1
/
storedProcedures
/
{id}
GET /v1/storedProcedures/{id}
from metadata.sdk import configure
from metadata.sdk.entities import StoredProcedures

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

# Get by ID
sp = StoredProcedures.retrieve("770e8400-e29b-41d4-a716-446655440000")
print(f"{sp.fullyQualifiedName}: {sp.description}")

# Get by ID with fields
sp = StoredProcedures.retrieve(
    "770e8400-e29b-41d4-a716-446655440000",
    fields=["owners", "tags", "storedProcedureCode"]
)

# Get by fully qualified name
sp = StoredProcedures.retrieve_by_name("snowflake_prod.analytics.public.usp_refresh_analytics")

# Get by name with fields
sp = StoredProcedures.retrieve_by_name(
    "snowflake_prod.analytics.public.usp_refresh_analytics",
    fields=["owners", "tags", "domain"]
)
{
  "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"
}

Retrieve a Stored Procedure

Get a single stored procedure by its unique ID or fully qualified name.

Get by ID

id
string
required
UUID of the stored procedure to retrieve.
fields
string
Comma-separated list of fields to include (e.g., owners,tags,followers,votes,extension,domains,sourceHash).
include
string
default:"non-deleted"
Include all, deleted, or non-deleted entities.

Get by Fully Qualified Name

Use GET /v1/storedProcedures/name/{fqn} to retrieve by fully qualified name.
fqn
string
required
Fully qualified name of the stored procedure (e.g., snowflake_prod.analytics.public.usp_refresh_analytics).
fields
string
Comma-separated list of fields to include: owners, tags, followers, votes, extension, domains, sourceHash.
include
string
default:"non-deleted"
Include all, deleted, or non-deleted entities.
GET /v1/storedProcedures/{id}
from metadata.sdk import configure
from metadata.sdk.entities import StoredProcedures

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

# Get by ID
sp = StoredProcedures.retrieve("770e8400-e29b-41d4-a716-446655440000")
print(f"{sp.fullyQualifiedName}: {sp.description}")

# Get by ID with fields
sp = StoredProcedures.retrieve(
    "770e8400-e29b-41d4-a716-446655440000",
    fields=["owners", "tags", "storedProcedureCode"]
)

# Get by fully qualified name
sp = StoredProcedures.retrieve_by_name("snowflake_prod.analytics.public.usp_refresh_analytics")

# Get by name with fields
sp = StoredProcedures.retrieve_by_name(
    "snowflake_prod.analytics.public.usp_refresh_analytics",
    fields=["owners", "tags", "domain"]
)
{
  "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"
}

Returns

Returns a stored procedure object with all requested fields populated.

Response

id
string
Unique identifier for the stored procedure (UUID format).
name
string
Stored procedure name.
fullyQualifiedName
string
Fully qualified name in format service.database.schema.storedProcedure.
displayName
string
Human-readable display name.
description
string
Description of the stored procedure in Markdown format.
databaseSchema
object
Reference to the parent database schema.
storedProcedureCode
object
Source code and language. Only included when fields contains storedProcedureCode.
serviceType
string
Type of database service (e.g., Snowflake, BigQuery, PostgreSQL).
version
number
Version number for the entity.
owners
array
List of owners. Only included when fields contains owners.
tags
array
Classification tags. Only included when fields contains tags.
domains
array
Domain assignments. Only included when fields contains domains.

Error Handling

CodeError TypeDescription
401UNAUTHORIZEDInvalid or missing authentication token
403FORBIDDENUser lacks permission to view this stored procedure
404NOT_FOUNDStored procedure with given ID or FQN does not exist