Query structured spec data via REST or MCP. Get exactly what your agent needs.
https://api.secoda.co
https://eapi.secoda.co
https://aapi.secoda.co
https://{customer_domain}.secoda.co/api/v1
/dashboard/charts
Retrieve a list of charts with optional filtering by integration_id, parent_id (the dashboard the chart belongs to), and title.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| integration_id | query | optional | string | Filter by integration ID |
| parent_id | query | optional | string | Filter by parent ID |
| title | query | optional | string | Filter by title |
List of charts.
Bad Request
Internal Server Error
GET /dashboard/charts
/dashboard/charts/{chart_id}
Retrieve a specific chart by its ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| chart_id | path | required | string | The ID of the chart to retrieve. |
OK
Not Found
Internal Server Error
GET /dashboard/charts/{chart_id}
/collection/collections
This endpoint allows you to retrieve a list of collections. You can optionally filter the collections by title using the “title” query parameter.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| title | query | optional | string | Filter collections by title (optional) |
List of collections.
Bad Request
Internal Server Error
GET /collection/collections
/collection/collections/{collection_id}
This endpoint allows you to retrieve a collection by its unique identifier (collection_id).
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| collection_id | path | required | string | The unique identifier of the collection |
Collection retrieved successfully
Collection not found
Internal Server Error
GET /collection/collections/{collection_id}
/table/columns
This endpoint allows you to retrieve a list of all columns in the workspace. Optional filters for integration_id, title, and parent_id (the table or parent column) are available.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| integration_id | query | optional | string | Optional. Filter columns by integration identifier. |
| parent_id | query | optional | string | Optional. Filter columns by parent identifier. This could be the ID of the table or of the parent column in the case of nested columns. |
| title | query | optional | string | Optional. Filter columns by title of the column. |
| table_title | query | optional | string | Optional. Filter columns by title of the table that the columns belong to. If several integrations have the same naming of tables, it is recommended to combine this with the |
List of columns.
Bad request.
Internal server error.
GET /table/columns
/table/columns/{column_id}
This endpoint allows you to retrieve information about a specific column by its identifier.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| column_id | path | required | string | Identifier of the column to retrieve. |
Column retrieved successfully.
Column not found.
Internal server error.
GET /table/columns/{column_id}
/dashboard/groups
List all the dashboard groups in the workspace. Optional filter by title.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| title | query | optional | string | Filter groups by title |
List of groups.
Bad Request
Internal Server Error
GET /dashboard/groups
/dashboard/groups/{group_id}
Retrieve the information of a specific dashboard group.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| group_id | path | required | string | ID of the dashboard group to retrieve |
OK
Not Found
Internal Server Error
GET /dashboard/groups/{group_id}
/dashboard/dashboards
Retrieve a list of dashboards with optional filtering using the integration_id, parent_id (the dashboard group), and title.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| integration_id | query | optional | string | Filter by integration ID |
| parent_id | query | optional | string | Filter by parent ID |
| title | query | optional | string | Filter by title |
List of dashboards.
Bad Request
Internal Server Error
GET /dashboard/dashboards
/dashboard/dashboards/{dashboard_id}
Retrieve a specific dashboard by its ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| dashboard_id | path | required | string | The ID of the dashboard to retrieve. |
OK
Not Found
Internal Server Error
GET /dashboard/dashboards/{dashboard_id}
/table/databases
Use this endpoint to see all the databases active in your workspace.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| title | query | optional | string | The title of the database to search for. |
List of databases.
Bad request.
Internal server error.
GET /table/databases
/table/databases/{database_id}
Use this endpoint for retrieving a specific database by its ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| database_id | path | required | string | The unique identifier of the database to retrieve. |
Database retrieved successfully
Database not found.
Internal server error.
GET /table/databases/{database_id}
/document
This endpoint allows you to retrieve a list of documents. You can optionally filter the documents by title using the “title” query parameter.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| title | query | optional | string | Filter documents by title (optional) |
List of documents.
Bad Request
Internal Server Error
GET /document
/document/{document_id}
This endpoint allows you to retrieve a document by its unique identifier (document_id).
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| document_id | path | required | string | The unique identifier of the document |
Document retrieved successfully
Document not found
Internal Server Error
GET /document/{document_id}
/event/category
List all the event categories in the workspace. Optional filter by title.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| title | query | optional | string | Filter event categories by title |
List of event categories.
Bad Request
Internal Server Error
GET /event/category
/event/category/{event_category_id}
Retrieve the information of a specific event category.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| event_category_id | path | required | string | ID of the event category to retrieve |
OK
Not Found
Internal Server Error
GET /event/category/{event_category_id}
/event/event_properties
Retrieve a list of events with optional filtering using the integration_id, parent_id (the event), and title.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| integration_id | query | optional | string | Filter by integration ID |
| parent_id | query | optional | string | Filter by parent ID |
| title | query | optional | string | Filter by title |
List of event properties.
Bad Request
Internal Server Error
GET /event/event_properties
/event/event_properties/{event_property_id}
Retrieve a specific event property by its ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| event_property_id | path | required | string | The ID of the event property to retrieve. |
OK
Not Found
Internal Server Error
GET /event/event_properties/{event_property_id}
/event/events
Retrieve a list of events with optional filtering using the integration_id, parent_id (the event category), and title.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| integration_id | query | optional | string | Filter by integration ID |
| parent_id | query | optional | string | Filter by parent ID |
| title | query | optional | string | Filter by title |
List of events.
Bad Request
Internal Server Error
GET /event/events
/event/events/{event_id}
Retrieve a specific event by its ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| event_id | path | required | string | The ID of the event to retrieve. |
OK
Not Found
Internal Server Error
GET /event/events/{event_id}
/integration/integrations
This endpoint will return all the integrations active in your workspace.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| type | query | optional | string | The type of integrations to filter. |
List of integrations.
Bad request.
Internal server error.
GET /integration/integrations
/integration/integrations/{integration_id}
This endpoint will provide the details of an individual integration.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| integration_id | path | required | string | The ID of the integration to retrieve. |
Integration details retrieved successfully.
Integration not found.
Internal server error.
GET /integration/integrations/{integration_id}
/lineage/manual
Get lineage objects with optional filtering by source and destination entity.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| from_entity__in | query | optional | string | — |
| to_entity__in | query | optional | string | — |
List of lineage entries.
Bad Request
Internal Server Error
GET /lineage/manual
/lineage/manual/{lineage_id}
Get a lineage object by its ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| lineage_id | path | required | string | The ID of the lineage entry to retrieve. |
OK
Not Found
Internal Server Error
GET /lineage/manual/{lineage_id}
/metric/metrics
Retrieve a list of metrics.
List of metrics.
Bad Request
Internal Server Error
GET /metric/metrics
/metric/metrics/{metric_id}
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| metric_id | path | required | string | — |
Metric retrieved successfully
Metric not found
GET /metric/metrics/{metric_id}
/monitors/incident/{incident_id}
This endpoint allows you to retrieve an incident by it’s ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| incident_id | path | required | string | The unique identifier of the incident |
Monitor retrieved successfully
Incident not found
Internal Server Error
GET /monitors/incident/{incident_id}
/monitors/incidents
This endpoint allows you to retrieve a list of all the incidents in your workspace.
List of Incidents.
Bad Request
Internal Server Error
GET /monitors/incidents
/monitors/measurements
This endpoint allows you to retrieve a list of all the measurements in your workspace filtered by a Monitor or Incident. A query param of either the Monitor ID or Incident ID is required.
If using monitoring in automatic mode, thresholds will take some time to populate as the system learnins the appropriate range for your data.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| monitor | query | optional | string | The unique identifier of the monitor |
| incident_id | query | optional | string | The unique identifier of the incident |
List of Measurements.
Bad Request
Internal Server Error
GET /monitors/measurements
/monitors/monitors
This endpoint allows you to retrieve a list of all the monitors in your workspace.
List of Monitors.
Bad Request
Internal Server Error
GET /monitors/monitors
/monitors/monitors/{monitor_id}
This endpoint allows you to retrieve a monitors by it’s ID. You can find the ID in the URL of the monitor when accessing it from the Secoda UI.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| monitor_id | path | required | string | The unique identifier of the monitor |
Monitor retrieved successfully
Monitor not found
Internal Server Error
GET /monitors/monitors/{monitor_id}
/query/queries
This endpoint allows you to retrieve a list of all queries in the workspace. No filtering is available at this time.
List of queries.
Bad Request
Internal Server Error
GET /query/queries
/query/queries/{query_id}
This endpoint allows you to retrieve a query by its unique identifier (query_id).
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| query_id | path | required | string | The unique identifier of the query |
Query retrieved successfully
Query not found
Internal Server Error
GET /query/queries/{query_id}
/question/questions
This endpoint allows you to retrieve a list of questions.
List of questions.
Bad Request
Internal Server Error
GET /question/questions
/question/questions/{question_id}
This endpoint allows you to retrieve a question by its unique identifier (question_id).
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| question_id | path | required | string | The unique identifier of the question |
Question retrieved successfully
Question not found
Internal Server Error
GET /question/questions/{question_id}
/question/replies
This endpoint allows you to retrieve a list of replies. You can optionally filter the replies by question_id using the “question_id” query parameter.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| question_id | query | optional | string | Filter replies by question_id (optional) |
List of replies.
Bad Request
Internal Server Error
GET /question/replies
/question/replies/{reply_id}
This endpoint allows you to retrieve a reply by its unique identifier (reply_id).
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| reply_id | path | required | string | The unique identifier of the reply |
Reply retrieved successfully
Reply not found
Internal Server Error
GET /question/replies/{reply_id}
/table/schemas
Endpoint for retrieving a list of schemas with optional filtering by parent schema and title.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| parent | query | optional | string | The ID of the parent database to filter by. |
| title | query | optional | string | The title of the schema to filter by. |
List of schemas.
Bad request.
Internal server error.
GET /table/schemas
/table/schemas/{schema_id}
Retrieve schema details by its unique ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| schema_id | path | required | string | The ID of the schema to retrieve or update. |
Schema details retrieved successfully
Schema not found.
Internal server error.
GET /table/schemas/{schema_id}
/table/tables
This endpoint retrieves a list of tables, with optional filters for the integration, the schema, and the title of the table resource.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| integration_id | query | optional | string | Integration ID |
| parent_id | query | optional | string | ID of the schema |
| title | query | optional | string | Title of the table |
List of databases.
Bad request.
Internal server error.
GET /table/tables
/table/tables/{table_id}
This endpoint retrieves a specific table by its ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| table_id | path | required | string | ID of the table to retrieve |
Successful response
Table not found.
Internal server error.
GET /table/tables/{table_id}
/tag
Get a list of tags. No filtering is currently available.
List of tags.
Bad Request
Internal Server Error
GET /tag
/tag/{tag_id}
Get a tag by its ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| tag_id | path | required | string | The ID of the tag to retrieve. |
OK
Not Found
Internal Server Error
GET /tag/{tag_id}
/auth/teams
Get a list of teams in the workspace.
List of teams.
Bad Request
Internal Server Error
GET /auth/teams
/auth/teams/{id}
Get a team by their ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The ID of the team to retrieve. |
OK
Not Found
Internal Server Error
GET /auth/teams/{id}
/dictionary/terms
This endpoint allows you to retrieve a list of dictionary terms with optional filtering by name of the term (title).
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| title | query | optional | string | Filter terms by title (optional) |
List of dictionary terms.
Bad Request
Internal Server Error
GET /dictionary/terms
/dictionary/terms/{term_id}
This endpoint allows you to retrieve a single dictionary term by its unique identifier (term_id).
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| term_id | path | required | string | The unique identifier of the dictionary term |
Dictionary term retrieved successfully
Term not found
Internal Server Error
GET /dictionary/terms/{term_id}
/auth/group
Get a list of user groups in the workspace.
List of groups.
Bad Request
Internal Server Error
GET /auth/group
/auth/group/{id}
Get a user group by their ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The ID of the group to retrieve. |
OK
Not Found
Internal Server Error
GET /auth/group/{id}
/user
Get a list of users.
List of users.
Bad Request
Internal Server Error
GET /user
/user/{id}
Get a user by their ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The ID of the user to retrieve. |
OK
Not Found
Internal Server Error
GET /user/{id}
BasePatchRequest
{
"type": "object",
"properties": {
"pii": {
"type": "boolean",
"example": false,
"description": "Indicates whether the resource contains personally identifiable information (PII). Values can be - <ul><li> True <li> False</ul>"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"04654d61-4f64-4f08-b697-3915b5137c49",
"429693a2-a5e7-4525-b413-ece5e96bc5b3"
],
"description": "A list of tag IDs associated with the resources."
},
"teams": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"e8ac09ed-e51e-4e61-8eaf-59942c98c260",
"cca810f1-11c1-4117-bc23-20ae8020897f"
],
"description": "A list of team IDs that the resource belongs to."
},
"owners": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"33733f42-8ff7-460b-9e20-50a2133d3bb0",
"c90dedee-40ee-47ec-9c27-96dc3b2ec363"
],
"description": "A list of owner user IDs for the resource."
},
"verified": {
"type": "boolean",
"example": true,
"description": "Indicates whether the table has been set as verified. Values can be - <ul><li> True <li> False</ul>"
},
"published": {
"type": "boolean",
"example": true,
"description": "Indicates if the resource is visible to viewers or not. Values can be - <ul><li> True <li> False</ul>"
},
"definition": {
"type": "string",
"example": "\\n# Castae illa\\n\\n## Finemque aequore\\n\\nLorem markdownum motus",
"description": "Mark down documentation to be added to the resource."
},
"properties": {
"type": "object",
"properties": {
"custom": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CustomProperties"
}
}
},
"description": "A list of custom properties to add to the resource."
},
"collections": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"3b2c7185-fb5d-4d94-89d4-3dae08e093a9"
],
"description": "A list of collection IDs the resource belongs to."
},
"description": {
"type": "string",
"example": "This is a description for a sample table.",
"description": "A description of the resource."
},
"subscribers": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"c90dedee-40ee-47ec-9c27-96dc3b2ec363"
],
"description": "A list of the added user IDs that have been subscribed to the resource. Anyone subscribed will be notified of any changes."
}
}
}
BaseResourceRequest
{
"type": "object",
"properties": {
"pii": {
"type": "boolean",
"example": false,
"description": "Indicates whether the resource contains personally identifiable information (PII). Values can be - <ul><li> True <li> False</ul>"
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"04654d61-4f64-4f08-b697-3915b5137c49",
"429693a2-a5e7-4525-b413-ece5e96bc5b3"
],
"description": "A list of tag IDs associated with the resources."
},
"teams": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"e8ac09ed-e51e-4e61-8eaf-59942c98c260",
"cca810f1-11c1-4117-bc23-20ae8020897f"
],
"description": "A list of team IDs that the resource belongs to."
},
"title": {
"type": "string",
"example": "Sample Title",
"description": "The title of the resource."
},
"owners": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"33733f42-8ff7-460b-9e20-50a2133d3bb0",
"c90dedee-40ee-47ec-9c27-96dc3b2ec363"
],
"description": "A list of owner user IDs for the resource."
},
"parent": {
"type": "string",
"example": "df2c0597-13d9-4159-bb6d-00b3f54235dc",
"description": "The ID of the parent resource. Please keep the resource heirarchy in mind when setting the parent."
},
"verified": {
"type": "boolean",
"example": true,
"description": "Indicates whether the resource has been set as verified. Values can be - <ul><li> True <li> False</ul>"
},
"published": {
"type": "boolean",
"example": true,
"description": "Indicates if the resource is visible to viewers or not. Values can be - <ul><li> True <li> False</ul>"
},
"definition": {
"type": "string",
"example": "\\n# Castae illa\\n\\n## Finemque aequore\\n\\nLorem markdownum motus",
"description": "Mark down documentation to be added to the resource."
},
"properties": {
"type": "object",
"properties": {
"custom": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CustomProperties"
}
}
},
"description": "A list of custom properties associated with the resource."
},
"collections": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"3b2c7185-fb5d-4d94-89d4-3dae08e093a9"
],
"description": "A list of collection IDs the resource belongs to."
},
"description": {
"type": "string",
"example": "This is a description for a sample table.",
"description": "A description of the resource."
},
"integration": {
"type": "string",
"example": "ca529385-fbc9-4934-afae-e372affe795b",
"description": "The integration ID associated with the resource, if one exists."
},
"subscribers": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"c90dedee-40ee-47ec-9c27-96dc3b2ec363"
],
"description": "A list of user IDs that have been subscribed to the resource. Anyone subscribed will be notified of any changes."
}
}
}
BaseResponse
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "d935a76c-2125-4c30-9389-ef42fa7e23bb",
"description": "The unique identifier of the resource."
},
"pii": {
"type": "boolean",
"example": true,
"description": "Indicates if the resource contains Personally Identifiable Information (PII). Values can be - <ul> <li> True <li> False</ul>"
},
"url": {
"type": "string",
"example": "https://example.com/sample-table",
"description": "The URL associated with the resource."
},
"icon": {
"type": "string",
"example": "icon-url.png",
"description": "The icon associated with the resource."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"f7466f09-33bf-4ac2-9ff2-165fb4b8bdc2",
"a17f4ed0-0e5a-45a9-92c0-6c93c0b8242c"
],
"description": "List of tag IDs added to the resource."
},
"stale": {
"type": "boolean",
"example": false,
"description": "Indicates if the resource is stale. This means this resource no longer exists in the source, as of the last extraction."
},
"teams": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"8680f886-97d2-4f4e-92c8-c80b46a3017d"
],
"description": "List of team IDs associated with the resource."
},
"title": {
"type": "string",
"example": "Sample Table",
"description": "The title of the resource."
},
"owners": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"429693a2-a5e7-4525-b413-ece5e96bc5b3",
"f71585fa-251c-4102-8d81-c97c57c8d435"
],
"description": "List of owner IDs for the resource."
},
"parent": {
"type": "string",
"example": "df2c0597-13d9-4159-bb6d-00b3f54235dc",
"description": "The parent resource's ID."
},
"sources": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"8a3af948-026c-45d6-983d-3873f6156f86"
],
"description": "List of other integrations associated with the resource. For example, if a description is pulled in from DBT for a Snowflake table, this field will reference DBT."
},
"archived": {
"type": "boolean",
"example": false,
"description": "Indicates if the resource is deleted."
},
"verified": {
"type": "boolean",
"example": false,
"description": "Indicates if the resource is verified. Values can be - <ul><li> True <li> False</ul>"
},
"published": {
"type": "boolean",
"example": false,
"description": "Indicates if the resource is published and can be seen by Viewers."
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2023-08-16T23:12:53.245493Z",
"description": "The timestamp when the resource was created in Secoda in UTC format."
},
"definition": {
"type": "string",
"format": "markdown",
"description": "The documentation of the resource, written in Mark Down format."
},
"properties": {
"type": "object",
"properties": {
"custom": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CustomProperties"
}
}
},
"description": "A list of custom properties associated with the resource."
},
"title_full": {
"type": "string",
"example": "Sample Database.Sample Schema.Sample Table",
"description": "The full title of the resource. This is a generated field"
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2023-08-16T23:12:53.245507Z",
"description": "The timestamp when the resource was last updated in Secoda in UTC format."
},
"collections": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"e8ac09ed-e51e-4e61-8eaf-59942c98c260"
],
"description": "List of IDs representing the collection(s) that the resource has been added to."
},
"description": {
"type": "string",
"example": "This is a description for a sample table.",
"description": "A description of the resource."
},
"entity_type": {
"type": "string",
"example": "table",
"description": "The type of resource in Secoda."
},
"integration": {
"type": "string",
"example": "ca529385-fbc9-4934-afae-e372affe795b",
"description": "The integration ID associated with the resource."
},
"native_type": {
"type": "string",
"example": "Dataset",
"description": "The native type of the resource as it is referred to in the integration."
},
"subscribers": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"33733f42-8ff7-460b-9e20-50a2133d3bb0",
"c90dedee-40ee-47ec-9c27-96dc3b2ec363"
],
"description": "List of User IDs who subscribe to the resource."
},
"title_cased": {
"type": "string",
"example": "sampleTable",
"description": "The title in a cased format."
},
"total_usage": {
"type": "integer",
"example": 483,
"description": "The total usage count for the resource."
},
"multiplayers": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"429693a2-a5e7-4525-b413-ece5e96bc5b3",
"f71585fa-251c-4102-8d81-c97c57c8d435"
],
"description": "List of members who have opened or worked with the resource recently."
},
"workspace_id": {
"type": "string",
"example": "f71585fa-251c-4102-8d81-c97c57c8d435",
"description": "The ID of the workspace."
},
"bookmarked_by": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"d935a76c-2125-4c30-9389-ef42fa7e23bb",
"33733f42-8ff7-460b-9e20-50a2133d3bb0",
"c90dedee-40ee-47ec-9c27-96dc3b2ec363"
],
"description": "List of member IDs that have bookmarked the resource."
},
"owners_groups": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"3b2c7185-fb5d-4d94-89d4-3dae08e093a9"
],
"description": "List of owner group IDs for the resource."
},
"children_count": {
"type": "integer",
"example": 2,
"description": "The count of children entities of the resource."
},
"databuilder_id": {
"type": "string",
"example": "b818280a-ae1a-43bf-90d3-dbccf812b025.x68605bd2",
"description": "The databuilder ID associated with the resource. This is a generated field."
},
"external_usage": {
"type": "integer",
"example": 38,
"description": "The external usage count for the resource extracted from the source source. This is what is used to calculate Popularity of a resource."
},
"external_users": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"33733f42-8ff7-460b-9e20-50a2133d3bb0"
],
"description": "List of external user IDs for the resource extracted from the integration."
},
"internal_usage": {
"type": "integer",
"example": 3,
"description": "The internal usage count for the resource."
},
"internal_users": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"04654d61-4f64-4f08-b697-3915b5137c49"
],
"description": "List of internal user IDs for the resource."
},
"search_metadata": {
"type": "object",
"example": {
"type": "table",
"schema": "secoda-glue",
"cluster": "glue",
"database": "awsdatacatalog"
},
"description": "Metadata related to indexing the resource for optimizing search."
},
"definition_version": {
"type": "integer",
"example": 1,
"description": "The version of the resource's documentation."
},
"external_updated_at": {
"type": "string",
"format": "date-time",
"example": "2023-08-16T23:12:53.245507Z",
"description": "The timestamp of the last update for the resource in the source."
},
"current_user_permissions": {
"type": "object",
"properties": {
"read": {
"type": "boolean",
"example": true
},
"write": {
"type": "boolean",
"example": true
},
"execute": {
"type": "boolean",
"example": false
}
},
"description": "Permissions of the current user for this resource."
},
"multiplayer_last_modified": {
"type": "string",
"format": "date-time",
"example": "2023-08-16T23:12:53.245507Z",
"description": "The timestamp when the multiplayer was last modified in UTC format."
},
"multiplayer_last_modified_by": {
"type": "string",
"example": "429693a2-a5e7-4525-b413-ece5e96bc5b3",
"description": "The last member who modified this resource."
}
}
}
ChartResponse
{
"allOf": [
{
"$ref": "#/components/schemas/BaseResponse"
},
{
"type": "object",
"properties": {
"product": {
"type": "string",
"example": "tableau",
"description": "Indicates the name of the integration."
}
}
}
]
}
ChartsListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChartResponse"
}
}
}
}
]
}
CollectionResponse
{
"allOf": [
{
"$ref": "#/components/schemas/BaseResponse"
},
{
"type": "object",
"properties": {
"pinned": {
"type": "boolean",
"example": false,
"description": "Refers to whether the resource has been pinned by user."
},
"resource_count": {
"type": "integer",
"example": 0,
"description": "Indicates how many resources are part of the collection."
}
}
}
]
}
CollectionsListCollectionsByTitleResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/CollectionResponse"
}
}
}
}
]
}
ColumnResponse
{
"allOf": [
{
"$ref": "#/components/schemas/BaseResponse"
},
{
"type": "object",
"properties": {
"is_pk": {
"type": "boolean",
"example": true,
"description": "Whether the column is a primary key."
},
"hidden": {
"type": "boolean",
"description": "This is a deprecated field."
},
"data_type": {
"type": "string",
"example": "integer",
"description": "Indicates the data type of the column."
},
"sort_order": {
"type": "integer",
"example": 3,
"description": "Indicates the order the column should be in amongst the other columns"
},
"table_title": {
"type": "string",
"example": "customers",
"description": "Indicates the name of the table that the column belongs to."
},
"table_schema": {
"type": "string",
"example": "secoda-glue",
"description": "Indicates the name of the schema that the column belongs to."
},
"table_cluster": {
"type": "string",
"description": "This is a deprecated field."
},
"table_database": {
"type": "string",
"example": "aws-datacatalog",
"description": "Indicates the name of the database that the column belongs to."
}
}
}
]
}
ColumnsGetListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ColumnResponse"
}
}
}
}
]
}
CustomProperties
{
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "Custom Property",
"description": "The name of the custom property."
},
"type": {
"enum": [
"string",
"number",
"multiselect",
"checkbox",
"user",
"resource",
"date"
],
"type": "string",
"example": "string",
"description": "The type of the custom property."
},
"order": {
"type": "integer",
"example": 1,
"description": "The order of the custom property."
},
"value": {
"type": "string",
"example": "TestValue",
"description": "The value of the custom property."
}
}
}
DashboardGroupResponse
{
"allOf": [
{
"$ref": "#/components/schemas/BaseResponse"
},
{
"type": "object",
"properties": {
"visible": {
"type": "boolean",
"description": "This is a deprecated field."
}
}
}
]
}
DashboardGroupsListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DashboardGroupResponse"
}
}
}
}
]
}
DashboardResponse
{
"allOf": [
{
"$ref": "#/components/schemas/BaseResponse"
},
{
"type": "object",
"properties": {
"group": {
"type": "string",
"example": "Samples",
"description": "Indicates the name of the group."
},
"product": {
"type": "string",
"example": "tableau",
"description": "Indicates the name of the integration."
}
}
}
]
}
DashboardsListWithFilterResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DashboardResponse"
}
}
}
}
]
}
DatabasesListAllActiveResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseResponse"
}
}
}
}
]
}
DocumentResponse
{
"allOf": [
{
"$ref": "#/components/schemas/BaseResponse"
},
{
"type": "object",
"properties": {
"parent_id": {
"type": "string",
"example": "1f5c76c3-e7a3-406f-b51e-7ba220244f1b",
"description": "Indicates the UUID of the parent of the document, which is always another document."
},
"base_entity_id": {
"type": "string",
"example": "1f5c76c3-e7a3-406f-b51e-7ba220244f1b",
"description": "Indicates the UUID of the highest level ancestor of the document."
}
}
}
]
}
DocumentsListDocumentsByTitleResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DocumentResponse"
}
}
}
}
]
}
EventCategoriesCreateNewCategoryRequest
{
"type": "object",
"properties": {
"teams": {
"type": "array",
"items": {
"description": "WARNING: Missing items property in array schema. Missing items property has been filled with this AnyType schema."
},
"example": [
"e8ac09ede51e4e618eaf59942c98c260"
],
"description": "The teams the category belongs to."
},
"title": {
"type": "string",
"example": "Landing Page",
"description": "The name of the category."
},
"integration": {
"type": "string",
"description": "The UUID of the associated integration."
}
}
}
EventCategoriesListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseResponse"
}
}
}
}
]
}
EventPropertiesListEventPropertiesResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/EventPropertyResponse"
}
}
}
}
]
}
EventPropertyResponse
{
"allOf": [
{
"$ref": "#/components/schemas/BaseResponse"
},
{
"type": "object",
"properties": {
"enum": {
"type": "string",
"example": "red, green, yellow",
"description": "If the property type is enum, this field indicates the various enum values."
},
"type": {
"type": "string",
"example": "enum",
"description": "The type of property associated with the event. Examples include string, enum, integer, etc."
},
"is_required": {
"type": "boolean",
"description": "Set this to true if the property is required."
}
}
}
]
}
EventsListEventsByFilteringResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BaseResponse"
}
}
}
}
]
}
IncidentResponse
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "6ac1bff0-b85f-47e8-84fb-8dca29614785",
"description": "The UUID of the incident."
},
"name": {
"type": "string",
"example": "Unique percentage incident",
"description": "The name of the incident, which indicates the type of metric set for the monitor."
},
"value": {
"type": "number",
"example": 86.4081806,
"description": "The value of the measurement at the time of incident creation."
},
"status": {
"enum": [
"acknowledged",
"expired",
"resolved",
"active"
],
"type": "string",
"example": "active",
"description": "The status of the incident."
},
"target": {
"type": "string",
"example": "c332407c-cfa4-47c9-8d83-31df72b30c20",
"description": "The UUID of the target resource being monitored for anomolies."
},
"actions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"enum": [
"notification_initial",
"notification_reminder",
"notification_resolved",
"acknowledged",
"resolved"
],
"type": "string"
},
"user_id": {
"type": "string"
},
"user_name": {
"type": "string"
}
}
},
"example": [
{
"type": "notification_initial",
"user_id": "e1250ab7-c4dc-4b9c-8963-105fa73d4ba5",
"user_name": "John Doe"
}
],
"description": "A list of actions associated with the incident."
},
"monitor": {
"type": "string",
"example": "b45bc798-763d-4ca5-863a-c12a882967c9",
"description": "The UUID of the associated monitor."
},
"summary": {
"type": "string",
"example": "Unique percentage incident",
"description": "An automatically generated short summary of the incident."
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2023-10-10T19:20:44.975657Z",
"description": "When the incident was created."
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2023-10-10T19:20:45.047238Z",
"description": "The last updated time for the incident."
},
"resolved_at": {
"type": "string",
"format": "date-time",
"description": "The time that the incident was resolved. Will be null if the incident has not yet been resolved."
},
"last_seen_at": {
"type": "string",
"format": "date-time",
"example": "2023-10-10T19:20:45.047056Z",
"description": "The most recent occurence about this incident."
},
"first_seen_at": {
"type": "string",
"format": "date-time",
"example": "2023-10-10T19:20:44.973632Z",
"description": "The first time this incident was observed."
},
"acknowledged_at": {
"type": "string",
"format": "date-time",
"example": "2023-11-10T19:20:44.975657Z",
"description": "The time that the incident was acknowledged at. This will be null if an incident hasn't been acknowledged yet."
},
"display_metadata": {
"type": "object",
"properties": {
"target": {
"type": "object",
"properties": {
"icon": {
"type": "string"
},
"label": {
"type": "string"
},
"entity_type": {
"type": "string",
"example": "column",
"description": "The type of resource the incident is associated with."
},
"integration": {
"type": "string",
"example": "0c6f8b1a-0c8f-4fdf-b95d-57da8f80ef82",
"description": "The UUID of the integration associated with the resource."
},
"integration_type": {
"type": "string",
"example": "snowflake",
"description": "The type of the integration that the resource is extracted from."
}
}
},
"monitor": {
"type": "object",
"properties": {
"label": {
"type": "string",
"example": "Unique percentage on extraction_completed_at"
}
}
}
},
"description": "This is an internally used object that provides additional information about the incident. This can be ignored by customers."
},
"last_notified_at": {
"type": "string",
"format": "date-time",
"example": "2023-10-10T19:20:45.047056Z",
"description": "The time of the last notification sent about this incident."
}
}
}
IntegrationResponse
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "740904fe-e87d-44f8-8a91-b13631ff2812",
"description": "The ID of the created integration."
},
"name": {
"type": "string",
"example": "Tableau",
"description": "The name of the integration."
},
"type": {
"type": "string",
"example": "tableau",
"description": "The type of integration."
},
"teams": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"e8ac09ed-e51e-4e61-8eaf-59942c98c260"
],
"description": "List of team IDs associated with the integration."
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2023-09-22T15:30:00Z",
"description": "The timestamp when the integration was created in Secoda in UTC format."
},
"properties": {
"type": "object",
"description": "Additional properties associated with the integration."
},
"ssh_tunnel": {
"type": "string",
"example": "None",
"description": "Information about SSH tunnel if one is set update."
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2023-09-22T15:30:00Z",
"description": "The timestamp when the integration was last updated in Secoda UTC format."
},
"credentials": {
"type": "object",
"example": {},
"description": "The actual credentials of the integration will NOT be returned. Can you find the easter egg in this response parameter for native integrations?"
},
"workspace_id": {
"type": "string",
"example": "f71585fa-251c-4102-8d81-c97c57c8d435",
"description": "The ID of the associated workspace."
},
"execute_access": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"f71585fa-251c-4102-8d81-c97c57c8d435"
],
"description": "List of IDs that have the permission to trigger the extracton."
},
"preview_access_roles": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"Admin",
"Editor"
],
"description": "List of roles that are allowed to preview the data in the integration. <ul><li> Admin <li> Editor <li> Viewer </ul>"
},
"preview_access_users": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"f71585fa-251c-4102-8d81-c97c57c8d435"
],
"description": "List of users IDs with access to preview the data in the integration."
},
"preview_access_groups": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"f71585fa-251c-4102-8d81-c97c57c8d435"
],
"description": "List of users group IDs with access to preview the data in the integration."
},
"scheduled_extractions_hour": {
"type": "integer",
"example": 3,
"description": "Hour for scheduled extractions. Will be null for custom extractions."
},
"scheduled_extractions_last_run": {
"type": "string",
"example": "2023-10-15T09:45:00Z",
"description": "Last scheduled extraction run time (null in this response)."
},
"scheduled_extractions_next_run": {
"type": "string",
"format": "date-time",
"example": "2023-10-15T09:45:00Z",
"description": "Next scheduled extraction run time. Will be null for custom extractions."
},
"scheduled_extractions_frequency": {
"type": "integer",
"example": 7,
"description": "Frequency in days of scheduled extractions. Will be null for custom extractions."
}
}
}
IntegrationsCreateNewIntegrationRequest
{
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "Sample Integration",
"description": "Represents the name of the integration data source or tool."
},
"type": {
"type": "string",
"example": "custom",
"description": "This indicates the type of integration (e.g., \"custom\")."
},
"teams": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"4c0e07c0-306a-4f4e-8b2b-6a8d7a33d251",
"a5423e2e-93b8-4b2c-af3c-7b7f0eefea14"
],
"description": "Indicates the teams associated with this integration. The access can be edited in the UI."
},
"credentials": {
"type": "object",
"example": {},
"description": "If you are adding a custom integration, the value of this parameter should always be empty {}."
}
}
}
IntegrationsListActiveResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IntegrationResponse"
}
}
}
}
]
}
IntegrationsUploadJsonlMetadataRequest
{
"type": "object",
"required": [
"resources_file"
],
"properties": {
"lineages_file": {
"type": "string",
"format": "binary",
"example": "path/to/your/lineages_file.jsonl",
"description": "The path to the your lineages file. The expected formatting of this file can be found [here](https://docs.secoda.co/integrations/custom-integration/import-your-resources/create-your-jsonl-file)."
},
"resources_file": {
"type": "string",
"format": "binary",
"example": "path/to/your/resources_file.jsonl",
"description": "The path to the your resources file. The expected formatting of this file can be found [here](https://docs.secoda.co/integrations/custom-integration/import-your-resources/create-your-jsonl-file)."
}
}
}
IntegrationsUploadMetadataCsvRequest
{
"type": "object",
"properties": {
"file": {
"type": "string",
"format": "binary",
"example": "path/to/your/file.csv",
"description": "The path to the CSV file containing your metadata and resources. The format of the CSV file can be found [here](https://docs.secoda.co/integrations/custom-integration/import-your-resources/create-your-csv)."
}
}
}
LineageCreateNewLineageManuallyRequest
{
"type": "object",
"properties": {
"direction": {
"type": "string",
"example": "DOWNSTREAM",
"description": "Represents the flow of the resource data. Values can be - <ul> <li> Upstream <li> Downstream</ul>"
},
"to_entity": {
"type": "string",
"example": "b500ef23-c9b4-4259-a87d-d77b8b588f06",
"description": "Points to the final destination of the resouce data through various transformations and entities."
},
"from_entity": {
"type": "string",
"example": "7879886b-9e0e-4d02-8b37-c7d3c496a587",
"description": "Indicates the source of the resource data."
}
}
}
LineageListObjectsWithFilteringResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LineageResponse"
}
}
}
}
]
}
LineageResponse
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "d935a76c-2125-4c30-9389-ef42fa7e23bb",
"description": "The unique identifier of the resource."
},
"direction": {
"enum": [
"UPSTREAM",
"DOWNSTREAM"
],
"type": "string",
"example": "DOWNSTREAM",
"description": "Represents the flow of data between the source and destination. Values can be - <ul> <li> Upstream <li> Downstream</ul>"
},
"is_manual": {
"type": "boolean",
"example": true,
"description": "Represents if data lineage is manually created or not. Values can be - <ul><li> True <li> False </ul>"
},
"to_entity": {
"type": "string",
"example": "b500ef23-c9b4-4259-a87d-d77b8b588f06",
"description": "Indicates the destination resource of the lineage."
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2023-08-16T23:12:53.245493Z",
"description": "The timestamp when the resource was created in Secoda in UTC format."
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2023-08-16T23:12:53.245507Z",
"description": "The timestamp when the resource was last updated in Secoda in UTC format."
},
"from_entity": {
"type": "string",
"example": "7879886b-9e0e-4d02-8b37-c7d3c496a587",
"description": "Indicates the source resource of the lineage."
}
}
}
ListResponse
{
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"page": {
"type": "integer",
"example": 1,
"description": "The current page number."
},
"next_page": {
"type": "integer",
"example": 2,
"description": "The next page number (null if on the last page)."
},
"previous_page": {
"type": "integer",
"example": null,
"description": "The previous page number (null if on the first page)."
}
},
"description": "Reprents the meta data of the response."
},
"count": {
"type": "integer",
"example": 315,
"description": "The total count of items returned."
},
"links": {
"type": "object",
"properties": {
"next": {
"type": "string",
"example": "https://api.secoda.co/resource/all/?page=2",
"description": "The link to the next page (null if there are no more pages)."
},
"previous": {
"type": "string",
"example": "None",
"description": "The link to the previous page (null if on the first page)."
}
},
"description": "Indicates Links to associated pages."
},
"total_pages": {
"type": "integer",
"example": 7,
"description": "The total number of pages."
}
}
}
MeasurementResponse
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "6ac1bff0-b85f-47e8-84fb-8dca29614785",
"description": "The UUID of the measurement."
},
"value": {
"type": "number",
"example": 90.81823317519981,
"description": "The exact value at the time of measurement."
},
"monitor": {
"type": "string",
"example": "102ac399-6e3a-42dd-a710-dbbb6b2addbe",
"description": "The UUID of the associated monitor."
},
"incident": {
"type": "string",
"example": "102ac399-6e3a-42dd-a710-dbbb6b2addbe",
"nullable": true,
"description": "The UUID of the associated incident, if it exists. Otherwise, this is set to null."
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2023-10-03T04:46:24.290765Z",
"description": "Timestamp of when the measurement was created."
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2023-10-03T04:46:24.290765Z",
"description": "Timestamp of the when the measurement was updated."
},
"lower_threshold": {
"type": "number",
"example": 87.83219024929676,
"description": "The lower threshold of the measurement. A value crossing this threshold will trigger an incident. The threshold will be set to null when one is not configured, or the monitor is still learning the thresholds.\n"
},
"upper_threshold": {
"type": "number",
"example": 90.64496791804484,
"description": "The upper threshold of the measurement. A value crossing this threshold will trigger an incident. The threshold will be set to null when one is not configured, or the monitor is still learning the thresholds.\n"
},
"incident_metadata": {
"type": "string",
"description": "Additional information about the incident."
}
}
}
MetricResponse
{
"allOf": [
{
"$ref": "#/components/schemas/BaseResponse"
},
{
"type": "object",
"properties": {
"sql": {
"type": "string",
"example": "select * from snowflake_sample_data.temp.store;",
"description": "The sql statement underlying the metric."
},
"time": {
"type": "string",
"example": "store_open_date",
"description": "The name of the column that should populate the X axis. The data type of the column should be datetime."
},
"primary": {
"type": "string",
"example": "store_orders",
"description": "The name of the column that should populate the Y axis. The data type of the column should be a number or integer."
},
"last_run": {
"type": "string",
"format": "datetime",
"example": "2024-03-18T21:02:30.294932Z",
"description": "The last time the metric was run."
},
"dimension": {
"type": "string",
"example": "store_region",
"description": "The name of the column by which results should be grouped by. Can be None if no dimensions are desired."
},
"last_error": {
"type": "string",
"example": "None",
"description": "If the last run failed, the error message will show up here."
},
"last_status": {
"type": "string",
"example": "completed",
"description": "Whether the last run was successful. The status can also be pending if a run hasn't occured yet."
},
"metric_type": {
"type": "string",
"example": "line",
"description": "The type of graph created from the metric. Currently, only a line graph is supported."
}
}
}
]
}
MetricsCreateNewMetricRequest
{
"type": "object",
"required": [
"title",
"sql",
"integration"
],
"properties": {
"sql": {
"type": "string",
"example": "select * from snowflake_sample_data.temp.store;",
"description": "The sql statement underlying the metric."
},
"time": {
"type": "string",
"example": "store_open_date",
"description": "The name of the column that should populate the X axis. The data type of the column should be datetime."
},
"title": {
"type": "string",
"example": "AOV",
"description": "The name given to your metric."
},
"primary": {
"type": "string",
"example": "store_orders",
"description": "The name of the column that should populate the Y axis. The data type of the column should be a number or integer."
},
"dimension": {
"type": "string",
"example": "store_region",
"description": "The name of the column by which results should be grouped by. Can be None if no dimensions are desired."
},
"description": {
"type": "string",
"example": "Average order value over time.",
"description": "A description for your metric."
},
"integration": {
"type": "string",
"example": "90ca77b2-65af-4042-8aee-dc9b203568f0",
"description": "The UUID of the integration that the metric is run on."
},
"scheduled_delta": {
"type": "integer",
"example": 1,
"description": "The frequency with which the metric should run, in hours. The first run can be triggered through the UI or by using the /execute endpoint."
}
}
}
MetricsListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MetricResponse"
}
}
}
}
]
}
MetricsRunMetricExecutionRequest
{
"type": "object",
"description": "An empty payload is required to execute the metric."
}
MetricsRunMetricExecutionResponse
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "5e8baa7c-8221-42b8-9d39-5718d4bc063e",
"description": "ID of the metric."
},
"logs": {
"type": "string"
},
"user": {
"type": "string",
"example": "33733f42-8ff7-460b-9e20-50a2133d3bb0",
"description": "The ID of the user that has run the metric."
},
"created_at": {
"type": "string",
"format": "date-time",
"example": "2024-04-09T21:10:40.532Z"
},
"updated_at": {
"type": "string",
"format": "date-time",
"example": "2024-04-09T21:10:40.532Z"
}
}
}
MetricsUpdateMetricByIdRequest
{
"type": "object",
"properties": {
"sql": {
"type": "string",
"example": "select * from snowflake_sample_data.temp.store;",
"description": "The sql statement underlying the metric."
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"scheduled_delta": {
"type": "string"
}
}
}
MonitorResponse
{
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "886337a0-f298-4259-84dc-710879c826de",
"description": "The unique identifier of the monitor."
},
"name": {
"type": "string",
"example": "Null percentage in amount",
"description": "The full name of the monitor, includes the metric type and target resource."
},
"status": {
"enum": [
"normal",
"incident",
"error",
"learning",
"inactive"
],
"type": "string",
"example": "incident",
"description": "The status of the monitor."
},
"target": {
"type": "string",
"example": "11db7782-4030-4acf-93e4-85aff3b860a1",
"description": "The identifier of the resource that the monitor is watching."
},
"frequency": {
"type": "integer",
"example": 24,
"description": "The frequency with which this monitor is run."
},
"workspace": {
"type": "string",
"example": "e051db43-cda6-42dc-8a69-12d1aefc3a91",
"description": "The identifier of the workspace."
},
"created_at": {
"type": "string",
"example": "2023-10-12T14:59:58.781935Z",
"description": "The timestamp when the monitor was created."
},
"is_enabled": {
"type": "boolean",
"example": true,
"description": "Whether the monitor is enabled."
},
"updated_at": {
"type": "string",
"example": "2023-10-12T15:06:19.251573Z",
"description": "The timestamp when the data was last updated."
},
"integration": {
"type": "string",
"example": "337c5803-b484-4128-a24d-dcc55dee2ea2",
"description": "The identifier of the integration associated with the resource."
},
"metric_type": {
"enum": [
"row_count",
"cardinality",
"mean",
"max",
"min",
"unique_percentage",
"null_percentage",
"freshness",
"custom_sql"
],
"type": "string",
"example": "null_percentage",
"description": "The type of metric."
},
"next_run_at": {
"type": "string",
"example": "2023-10-13T15:03:40.693728Z",
"description": "The timestamp for the next run. Note, the run may occur shortly after the time set, but never before."
},
"last_error_at": {
"type": "string",
"example": null,
"description": "The timestamp of the last error, if any."
},
"last_incident": {
"type": "string",
"example": "102ac399-6e3a-42dd-a710-dbbb6b2addbe",
"description": "The UUID of the last active incident. If there are no active incidents (if the last incident has been closed), the field is set to null."
},
"metric_config": {
"type": "string",
"description": "Configuration for the metric."
},
"last_success_at": {
"type": "string",
"format": "date-time",
"example": "2023-09-29T17:46:22.552345Z",
"description": "The timestamp of the last check on Secoda's access and ability to read the data source on which this monitor is set. This is connctivity check - not a data quality check."
},
"display_metadata": {
"type": "object",
"properties": {
"target": {
"type": "object",
"properties": {
"icon": {
"type": "string",
"example": null,
"description": "Icon associated with the target resource, if one exists."
},
"label": {
"type": "string",
"example": "amount",
"description": "Title of the target resource."
},
"entity_type": {
"type": "string",
"example": "column",
"description": "The type of the target resource (e.g., column)."
},
"integration": {
"type": "string",
"example": "337c5803-b484-4128-a24d-dcc55dee2ea2",
"description": "The UUID of the integration from which the target resource is extracted."
},
"integration_type": {
"type": "string",
"example": "redshift",
"description": "The type of integration."
}
}
}
},
"description": "This is an internally used object that provides additional information about the incident. This can be ignored by customers."
},
"last_measurement": {
"type": "string",
"example": "5d6ad413-5f74-41d6-b2f5-870b6f04de5c",
"description": "The identifier of the last measurement."
},
"last_attempted_at": {
"type": "string",
"example": "2023-10-12T15:03:40.693728Z",
"description": "The timestamp of the last attempted monitor."
},
"last_error_message": {
"type": "string",
"example": "",
"description": "The message associated with the last error, if any."
},
"condition_manual_max": {
"type": "integer",
"example": null,
"description": "The manual maximum condition if set by the user."
},
"condition_manual_min": {
"type": "integer",
"example": null,
"description": "The manual minimum condition if set by the user."
},
"last_measurement_value": {
"type": "number",
"example": 1234.56,
"description": "The last measured value if one is available."
},
"condition_auto_sensitivity": {
"type": "integer",
"example": 5,
"description": "The automatic sensitivity condition."
}
}
}
MonitorsListIncidentsResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/IncidentResponse"
}
}
}
}
]
}
MonitorsListMeasurementsResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MeasurementResponse"
}
}
}
}
]
}
MonitorsListMonitorsResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MonitorResponse"
}
}
}
}
]
}
QueriesGetListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/QueryResponse"
}
}
}
}
]
}
QueryResponse
{
"allOf": [
{
"$ref": "#/components/schemas/BaseResponse"
},
{
"type": "object",
"properties": {
"freq": {
"type": "integer",
"example": 0,
"description": "Represents the frequency with which the query is running. Currently this will be returned as 0."
},
"type": {
"type": "string",
"example": "None",
"description": "Indicates the type of query. Currently this is returned as None."
}
}
}
]
}
QuestionResponse
{
"allOf": [
{
"$ref": "#/components/schemas/BaseResponse"
},
{
"type": "object",
"properties": {
"answer": {
"type": "string",
"example": "This is the answer to the question.",
"description": "Represents the verified answer of the question."
},
"status": {
"type": "string",
"example": "UNANSWERED",
"description": "Indicates the status of the question. Values can be - <ul><li> Answered <li> Unanswered </ul>"
},
"priority": {
"type": "string",
"example": "High",
"description": "Indicates the priority of the question or request."
},
"reactions": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"👍"
],
"description": "Represents the emoji reactions to a question."
},
"votes_sum": {
"type": "integer",
"example": 5,
"description": "Indicates the amount of votes for the quesion."
},
"assigned_to": {
"type": "string",
"example": "33733f42-8ff7-460b-9e20-50a2133d3bb0",
"description": "Represents the user whom the question is assigned to."
},
"current_user_vote": {
"type": "integer",
"example": 4,
"description": "Represents the vote number of the current user."
}
}
}
]
}
QuestionsCreateNewReplyRequest
{
"type": "object",
"properties": {
"owners": {
"type": "array",
"items": {
"type": "string",
"example": "33733f42-8ff7-460b-9e20-50a2133d3bb0",
"description": "Defines the UUIDs that are the owners of the replies."
}
},
"parent": {
"type": "string",
"example": "7795133a-6e36-4ef2-b95a-664babb99b71",
"description": "The unique identifier of the parent question"
},
"definition": {
"type": "string",
"example": "Replying to the question",
"description": "The answer of the reply"
},
"accepted_answer": {
"type": "boolean",
"example": false,
"description": "Indicates if the answer is accepted or not. Values can be - <ul> <li> True <li> False</ul>"
}
}
}
QuestionsEditReplyByIdRequest
{
"type": "object",
"properties": {
"definition": {
"type": "string",
"example": "Changing the answer.",
"description": "The updated definition for the reply"
},
"accepted_answer": {
"type": "boolean",
"example": false,
"description": "Indicates if the answer is accepted or not. Values can be - <ul> <li> True <li> False</ul>"
}
}
}
QuestionsGetListResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/QuestionResponse"
}
}
}
}
]
}
QuestionsListRepliesResponse
{
"allOf": [
{
"$ref": "#/components/schemas/ListResponse"
},
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReplyResponse"
}
}
}
}
]
}