Get Model Lineage
curl --request GET \
--url https://api.truthlocks.com/v1/models/{modelId}/lineage \
--header 'X-API-Key: <api-key>'const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.truthlocks.com/v1/models/{modelId}/lineage', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.truthlocks.com/v1/models/{modelId}/lineage"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.truthlocks.com/v1/models/{modelId}/lineage"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"model_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"training_runs": [
{}
],
"datasets": [
{
"dataset_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"receipt_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"hash": "<string>",
"format": "<string>",
"size_bytes": 123,
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z"
}
],
"parent_models": [
{
"model_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"receipt_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"hash": "<string>",
"framework": "<string>",
"version": "<string>",
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"training_dataset_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"created_at": "2023-11-07T05:31:56Z"
}
]
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}Datasets & Models
Get Model Lineage
Retrieve the full lineage graph for a model, including training datasets and parent models.
GET
/
v1
/
models
/
{modelId}
/
lineage
Get Model Lineage
curl --request GET \
--url https://api.truthlocks.com/v1/models/{modelId}/lineage \
--header 'X-API-Key: <api-key>'const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.truthlocks.com/v1/models/{modelId}/lineage', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.truthlocks.com/v1/models/{modelId}/lineage"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.truthlocks.com/v1/models/{modelId}/lineage"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"model_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"training_runs": [
{}
],
"datasets": [
{
"dataset_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"receipt_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"hash": "<string>",
"format": "<string>",
"size_bytes": 123,
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z"
}
],
"parent_models": [
{
"model_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"receipt_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"hash": "<string>",
"framework": "<string>",
"version": "<string>",
"agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"training_dataset_ids": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
],
"created_at": "2023-11-07T05:31:56Z"
}
]
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}Returns the complete lineage graph for a model attestation. The graph includes all training datasets, parent models (for fine-tuned or distilled models), and downstream deployments connected by typed relationships.
Model lineage enables compliance teams to trace exactly which data was used to train a model, verify that all upstream datasets are properly attested, and audit the full provenance chain from raw data to production deployment.
Response
string
The root model identifier for this lineage query.
array
Array of lineage nodes. Each node contains: -
id (string) — Resource
identifier - type (string) — Node type: dataset, model, or deploymentname(string) — Human-readable name -version(string) — Resource version -status(string) — Current attestation status -created_at(string) — ISO 8601 timestamp
array
Array of relationships connecting nodes. Each edge contains: -
source
(string) — Source node identifier - target (string) — Target node
identifier - relationship (string) — Relationship type (e.g. trained_on,
fine_tuned_from, distilled_from, deployed_as) - metadata (object) —
Optional edge metadataarray
Convenience field listing all dataset nodes in the lineage that have a direct
trained_on relationship with the queried model. Each entry contains id,
name, version, and status.
