# Lineage

The dependencies between resources. Learn more about lineage [here](https://docs.secoda.com/features/data-lineage).

## List Lineage

> Get lineage objects with optional filtering by source and destination entity.

```json
{"openapi":"3.0.0","info":{"title":"Secoda API","version":"8.22.39"},"tags":[{"name":"Lineage","description":"The dependencies between resources. Learn more about lineage [here](https://docs.secoda.com/features/data-lineage).\n"}],"servers":[{"url":"https://api.secoda.co","description":"Base URL for all US cloud based workspaces"},{"url":"https://eapi.secoda.co","description":"Base URL for all EU cloud based workspaces"},{"url":"https://aapi.secoda.co","description":"Base URL for all APAC cloud based workspaces"},{"url":"https://{customer_domain}.secoda.co","description":"Base URL for On Premise Secoda workspaces","variables":{"customer_domain":{"default":"customer_domain","description":"The specific domain set up for your On Premise Secoda workspace."}}}],"security":[{"ApiKeyAuth":[]}],"paths":{"/api/v1/lineage/manual/":{"get":{"operationId":"api_list_manual_lineages","summary":"List Lineage","parameters":[{"in":"query","name":"from_entity","schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Entity"},"required":false},{"in":"query","name":"from_entity_id","schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Entity Id"},"required":false},{"in":"query","name":"from_entity__in","schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Entity  In"},"required":false},{"in":"query","name":"to_entity","schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Entity"},"required":false},{"in":"query","name":"to_entity_id","schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Entity Id"},"required":false},{"in":"query","name":"to_entity__in","schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Entity  In"},"required":false},{"in":"query","name":"integration_type","schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Type"},"required":false},{"in":"query","name":"integration__type","schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration  Type"},"required":false},{"in":"query","name":"page","schema":{"default":1,"title":"Page","type":"integer"},"required":false}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v1_PagedLineageOut"}}}}},"description":"Get lineage objects with optional filtering by source and destination entity.","tags":["Lineage"]}}},"components":{"schemas":{"v1_PagedLineageOut":{"properties":{"links":{"$ref":"#/components/schemas/v1_PaginationLinks"},"meta":{"$ref":"#/components/schemas/v1_PaginationMeta"},"count":{"title":"Count","type":"integer"},"total_pages":{"title":"Total Pages","type":"integer"},"results":{"items":{"$ref":"#/components/schemas/v1_LineageOut"},"title":"Results","type":"array"}},"required":["links","meta","count","total_pages","results"],"title":"PagedLineageOut","type":"object"},"v1_PaginationLinks":{"properties":{"next":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next"},"previous":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous"}},"title":"PaginationLinks","type":"object"},"v1_PaginationMeta":{"properties":{"page":{"title":"Page","type":"integer"},"previous_page":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Previous Page"},"next_page":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Next Page"},"count":{"title":"Count","type":"integer"},"total_pages":{"title":"Total Pages","type":"integer"}},"required":["page","count","total_pages"],"title":"PaginationMeta","type":"object"},"v1_LineageOut":{"properties":{"id":{"format":"uuid","title":"Id","type":"string"},"created_at":{"format":"date-time","title":"Created At","type":"string"},"updated_at":{"format":"date-time","title":"Updated At","type":"string"},"from_entity_id":{"format":"uuid","title":"From Entity","type":"string"},"to_entity_id":{"format":"uuid","title":"To Entity","type":"string"},"direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"},"workspace_id":{"format":"uuid","title":"Workspace","type":"string"},"is_manual":{"default":false,"title":"Is Manual","type":"boolean"}},"required":["created_at","updated_at","from_entity_id","to_entity_id","workspace_id"],"title":"LineageOut","type":"object"}}}}
```

## Create new Lineage

> Create a new lineage object manually. Only one direction of the relationship needs to be created. The opposite direction of the lineage is automatically generated.

```json
{"openapi":"3.0.0","info":{"title":"Secoda API","version":"8.22.39"},"tags":[{"name":"Lineage","description":"The dependencies between resources. Learn more about lineage [here](https://docs.secoda.com/features/data-lineage).\n"}],"servers":[{"url":"https://api.secoda.co","description":"Base URL for all US cloud based workspaces"},{"url":"https://eapi.secoda.co","description":"Base URL for all EU cloud based workspaces"},{"url":"https://aapi.secoda.co","description":"Base URL for all APAC cloud based workspaces"},{"url":"https://{customer_domain}.secoda.co","description":"Base URL for On Premise Secoda workspaces","variables":{"customer_domain":{"default":"customer_domain","description":"The specific domain set up for your On Premise Secoda workspace."}}}],"security":[{"ApiKeyAuth":[]}],"paths":{"/api/v1/lineage/manual/":{"post":{"operationId":"api_create_manual_lineage","summary":"Create new Lineage","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v1_LineageOut"}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v1_LineageOut"}}}}},"description":"Create a new lineage object manually. Only one direction of the relationship needs to be created. The opposite direction of the lineage is automatically generated.","tags":["Lineage"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/v1_LineageIn"}}},"required":true}}}},"components":{"schemas":{"v1_LineageOut":{"properties":{"id":{"format":"uuid","title":"Id","type":"string"},"created_at":{"format":"date-time","title":"Created At","type":"string"},"updated_at":{"format":"date-time","title":"Updated At","type":"string"},"from_entity_id":{"format":"uuid","title":"From Entity","type":"string"},"to_entity_id":{"format":"uuid","title":"To Entity","type":"string"},"direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"},"workspace_id":{"format":"uuid","title":"Workspace","type":"string"},"is_manual":{"default":false,"title":"Is Manual","type":"boolean"}},"required":["created_at","updated_at","from_entity_id","to_entity_id","workspace_id"],"title":"LineageOut","type":"object"},"v1_LineageIn":{"properties":{"from_entity":{"title":"From Entity","type":"string"},"to_entity":{"title":"To Entity","type":"string"},"direction":{"allOf":[{"$ref":"#/components/schemas/v1_LineageDirection"}],"default":"DOWNSTREAM"}},"required":["from_entity","to_entity"],"title":"LineageIn","type":"object"},"v1_LineageDirection":{"enum":["UPSTREAM","DOWNSTREAM"],"title":"LineageDirection","type":"string"}}}}
```

## Get Lineage

> Get a lineage object by its ID.

```json
{"openapi":"3.0.0","info":{"title":"Secoda API","version":"8.22.39"},"tags":[{"name":"Lineage","description":"The dependencies between resources. Learn more about lineage [here](https://docs.secoda.com/features/data-lineage).\n"}],"servers":[{"url":"https://api.secoda.co","description":"Base URL for all US cloud based workspaces"},{"url":"https://eapi.secoda.co","description":"Base URL for all EU cloud based workspaces"},{"url":"https://aapi.secoda.co","description":"Base URL for all APAC cloud based workspaces"},{"url":"https://{customer_domain}.secoda.co","description":"Base URL for On Premise Secoda workspaces","variables":{"customer_domain":{"default":"customer_domain","description":"The specific domain set up for your On Premise Secoda workspace."}}}],"security":[{"ApiKeyAuth":[]}],"paths":{"/api/v1/lineage/manual/{lineage_id}/":{"get":{"operationId":"api_retrieve_manual_lineage","summary":"Get Lineage","parameters":[{"in":"path","name":"lineage_id","schema":{"title":"Lineage Id","type":"string"},"required":true}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v1_LineageOut"}}}}},"description":"Get a lineage object by its ID.","tags":["Lineage"]}}},"components":{"schemas":{"v1_LineageOut":{"properties":{"id":{"format":"uuid","title":"Id","type":"string"},"created_at":{"format":"date-time","title":"Created At","type":"string"},"updated_at":{"format":"date-time","title":"Updated At","type":"string"},"from_entity_id":{"format":"uuid","title":"From Entity","type":"string"},"to_entity_id":{"format":"uuid","title":"To Entity","type":"string"},"direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"},"workspace_id":{"format":"uuid","title":"Workspace","type":"string"},"is_manual":{"default":false,"title":"Is Manual","type":"boolean"}},"required":["created_at","updated_at","from_entity_id","to_entity_id","workspace_id"],"title":"LineageOut","type":"object"}}}}
```

## Delete Lineage

> Delete a lineage object by its ID.

```json
{"openapi":"3.0.0","info":{"title":"Secoda API","version":"8.22.39"},"tags":[{"name":"Lineage","description":"The dependencies between resources. Learn more about lineage [here](https://docs.secoda.com/features/data-lineage).\n"}],"servers":[{"url":"https://api.secoda.co","description":"Base URL for all US cloud based workspaces"},{"url":"https://eapi.secoda.co","description":"Base URL for all EU cloud based workspaces"},{"url":"https://aapi.secoda.co","description":"Base URL for all APAC cloud based workspaces"},{"url":"https://{customer_domain}.secoda.co","description":"Base URL for On Premise Secoda workspaces","variables":{"customer_domain":{"default":"customer_domain","description":"The specific domain set up for your On Premise Secoda workspace."}}}],"security":[{"ApiKeyAuth":[]}],"paths":{"/api/v1/lineage/manual/{lineage_id}/":{"delete":{"operationId":"api_delete_manual_lineage","summary":"Delete Lineage","parameters":[{"in":"path","name":"lineage_id","schema":{"title":"Lineage Id","type":"string"},"required":true}],"responses":{"204":{"description":"No Content"}},"description":"Delete a lineage object by its ID.","tags":["Lineage"]}}}}
```

## Preview Lineage from Query

> Preview Lineage from a Query.

```json
{"openapi":"3.0.0","info":{"title":"Secoda API","version":"8.22.39"},"tags":[{"name":"Lineage","description":"The dependencies between resources. Learn more about lineage [here](https://docs.secoda.com/features/data-lineage).\n"}],"servers":[{"url":"https://api.secoda.co","description":"Base URL for all US cloud based workspaces"},{"url":"https://eapi.secoda.co","description":"Base URL for all EU cloud based workspaces"},{"url":"https://aapi.secoda.co","description":"Base URL for all APAC cloud based workspaces"},{"url":"https://{customer_domain}.secoda.co","description":"Base URL for On Premise Secoda workspaces","variables":{"customer_domain":{"default":"customer_domain","description":"The specific domain set up for your On Premise Secoda workspace."}}}],"security":[{"ApiKeyAuth":[]}],"paths":{"/api/v1/lineage/lineage_from_query/":{"get":{"operationId":"api_get_lineage_from_query","summary":"Preview Lineage from Query","parameters":[{"name":"sql","in":"query","required":true,"schema":{"type":"string","description":"The SQL query to analyze for lineage relationships"}},{"name":"dialect","in":"query","required":true,"schema":{"type":"string","description":"SQL dialect of the query (e.g. postgresql, bigquery)"}},{"name":"table_id","in":"query","schema":{"type":"string","description":"ID of target table (optional)"}},{"name":"default_database","in":"query","schema":{"type":"string","description":"Default database name for resolving table references (optional)"}},{"name":"default_schema","in":"query","schema":{"type":"string","description":"Default schema name for resolving table references (optional)"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v1_LineageFromQueryOut"}}}}},"description":"Preview Lineage from a Query.","tags":["Lineage"]}}},"components":{"schemas":{"v1_LineageFromQueryOut":{"properties":{"sql":{"title":"Sql","type":"string"},"source_tables":{"items":{"$ref":"#/components/schemas/v1_LineageFromQueryTable"},"title":"Source Tables","type":"array"},"column_lineages":{"items":{"$ref":"#/components/schemas/v1_LineageFromQueryColumnLineage"},"title":"Column Lineages","type":"array"},"target_table":{"anyOf":[{"$ref":"#/components/schemas/v1_LineageFromQueryTable"},{"type":"null"}]}},"required":["sql","source_tables","column_lineages"],"title":"LineageFromQueryOut","type":"object"},"v1_LineageFromQueryTable":{"properties":{"id":{"title":"Id","type":"string"},"created_at":{"format":"date-time","title":"Created At","type":"string"},"updated_at":{"format":"date-time","title":"Updated At","type":"string"},"title":{"title":"Title","type":"string"},"schema_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Name"},"database_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Database Name"},"native_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Native Type"},"integration_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Id"},"integration_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Title"},"integration_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Type"}},"required":["id","created_at","updated_at","title"],"title":"LineageFromQueryTable","type":"object"},"v1_LineageFromQueryColumnLineage":{"properties":{"from_column":{"$ref":"#/components/schemas/v1_LineageFromQueryColumn"},"to_column":{"$ref":"#/components/schemas/v1_LineageFromQueryColumn"}},"required":["from_column","to_column"],"title":"LineageFromQueryColumnLineage","type":"object"},"v1_LineageFromQueryColumn":{"properties":{"id":{"title":"Id","type":"string"},"created_at":{"format":"date-time","title":"Created At","type":"string"},"updated_at":{"format":"date-time","title":"Updated At","type":"string"},"title":{"title":"Title","type":"string"},"entity_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entity Type"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"schema_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Schema Name"},"database_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Database Name"},"native_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Native Type"},"integration_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Id"},"integration_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Title"},"integration_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Integration Type"}},"required":["id","created_at","updated_at","title"],"title":"LineageFromQueryColumn","type":"object"}}}}
```

## Create Lineage from Query

> Create Lineage from a Query.

```json
{"openapi":"3.0.0","info":{"title":"Secoda API","version":"8.22.39"},"tags":[{"name":"Lineage","description":"The dependencies between resources. Learn more about lineage [here](https://docs.secoda.com/features/data-lineage).\n"}],"servers":[{"url":"https://api.secoda.co","description":"Base URL for all US cloud based workspaces"},{"url":"https://eapi.secoda.co","description":"Base URL for all EU cloud based workspaces"},{"url":"https://aapi.secoda.co","description":"Base URL for all APAC cloud based workspaces"},{"url":"https://{customer_domain}.secoda.co","description":"Base URL for On Premise Secoda workspaces","variables":{"customer_domain":{"default":"customer_domain","description":"The specific domain set up for your On Premise Secoda workspace."}}}],"security":[{"ApiKeyAuth":[]}],"paths":{"/api/v1/lineage/lineage_from_query/":{"post":{"operationId":"api_post_lineage_from_query","summary":"Create Lineage from Query","parameters":[],"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request"},"404":{"description":"Provided table ID does not exist"},"500":{"description":"Internal Server Error"}},"description":"Create Lineage from a Query.","tags":["Lineage"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/v1_LineageFromQueryIn"}}},"required":true}}}},"components":{"schemas":{"v1_LineageFromQueryIn":{"properties":{"sql":{"title":"Sql","type":"string"},"dialect":{"title":"Dialect","type":"string"},"table_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Table Id"},"default_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Database"},"default_schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Schema"}},"required":["sql","dialect"],"title":"LineageFromQueryIn","type":"object"}}}}
```

## Create Lineage from Query and Removes Existing Upstream Non-Manual Lineage from Target Table

> Create Lineage from Query and Removes Existing Upstream Non-Manual Lineage from Target Table.

```json
{"openapi":"3.0.0","info":{"title":"Secoda API","version":"8.22.39"},"tags":[{"name":"Lineage","description":"The dependencies between resources. Learn more about lineage [here](https://docs.secoda.com/features/data-lineage).\n"}],"servers":[{"url":"https://api.secoda.co","description":"Base URL for all US cloud based workspaces"},{"url":"https://eapi.secoda.co","description":"Base URL for all EU cloud based workspaces"},{"url":"https://aapi.secoda.co","description":"Base URL for all APAC cloud based workspaces"},{"url":"https://{customer_domain}.secoda.co","description":"Base URL for On Premise Secoda workspaces","variables":{"customer_domain":{"default":"customer_domain","description":"The specific domain set up for your On Premise Secoda workspace."}}}],"security":[{"ApiKeyAuth":[]}],"paths":{"/api/v1/lineage/lineage_from_query/":{"patch":{"operationId":"api_patch_lineage_from_query","summary":"Create Lineage from Query and Removes Existing Upstream Non-Manual Lineage from Target Table","parameters":[],"responses":{"200":{"description":"OK"},"400":{"description":"Bad Request"},"404":{"description":"Provided table ID does not exist"},"500":{"description":"Internal Server Error"}},"description":"Create Lineage from Query and Removes Existing Upstream Non-Manual Lineage from Target Table.","tags":["Lineage"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/v1_LineageFromQueryIn"}}},"required":true}}}},"components":{"schemas":{"v1_LineageFromQueryIn":{"properties":{"sql":{"title":"Sql","type":"string"},"dialect":{"title":"Dialect","type":"string"},"table_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Table Id"},"default_database":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Database"},"default_schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Schema"}},"required":["sql","dialect"],"title":"LineageFromQueryIn","type":"object"}}}}
```

## Create new Lineage

> Create a new lineage object manually. Only one direction of the relationship needs to be created. The opposite direction of the lineage is automatically generated.

```json
{"openapi":"3.0.0","info":{"title":"Secoda API","version":"8.22.39"},"tags":[{"name":"Lineage","description":"The dependencies between resources. Learn more about lineage [here](https://docs.secoda.com/features/data-lineage).\n"}],"servers":[{"url":"https://api.secoda.co","description":"Base URL for all US cloud based workspaces"},{"url":"https://eapi.secoda.co","description":"Base URL for all EU cloud based workspaces"},{"url":"https://aapi.secoda.co","description":"Base URL for all APAC cloud based workspaces"},{"url":"https://{customer_domain}.secoda.co","description":"Base URL for On Premise Secoda workspaces","variables":{"customer_domain":{"default":"customer_domain","description":"The specific domain set up for your On Premise Secoda workspace."}}}],"security":[{"ApiKeyAuth":[]}],"paths":{"/api/v1/lineage/":{"post":{"operationId":"api_create_lineage","summary":"Create new Lineage","parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v1_LineageOut"}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/v1_LineageOut"}}}}},"description":"Create a new lineage object manually. Only one direction of the relationship needs to be created. The opposite direction of the lineage is automatically generated.","tags":["Lineage"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/v1_LineageIn"}}},"required":true}}}},"components":{"schemas":{"v1_LineageOut":{"properties":{"id":{"format":"uuid","title":"Id","type":"string"},"created_at":{"format":"date-time","title":"Created At","type":"string"},"updated_at":{"format":"date-time","title":"Updated At","type":"string"},"from_entity_id":{"format":"uuid","title":"From Entity","type":"string"},"to_entity_id":{"format":"uuid","title":"To Entity","type":"string"},"direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"},"workspace_id":{"format":"uuid","title":"Workspace","type":"string"},"is_manual":{"default":false,"title":"Is Manual","type":"boolean"}},"required":["created_at","updated_at","from_entity_id","to_entity_id","workspace_id"],"title":"LineageOut","type":"object"},"v1_LineageIn":{"properties":{"from_entity":{"title":"From Entity","type":"string"},"to_entity":{"title":"To Entity","type":"string"},"direction":{"allOf":[{"$ref":"#/components/schemas/v1_LineageDirection"}],"default":"DOWNSTREAM"}},"required":["from_entity","to_entity"],"title":"LineageIn","type":"object"},"v1_LineageDirection":{"enum":["UPSTREAM","DOWNSTREAM"],"title":"LineageDirection","type":"string"}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.secoda.co/api/reference/lineage.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
