# 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.28"},"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.28"},"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.28"},"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.28"},"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.28"},"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.28"},"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.28"},"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.28"},"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"}}}}
```
