This endpoint lets you see, row by row, which records a specific phase processed during a run. You can also search for specific records using keywords.
Every time an ETL integration runs, it goes through three phases:
- Extract — pulls the data from the source (for example, your ERP or database).
- Transform — cleans and adapts the data so it's in the correct format.
- Load — loads the already-processed data into the final destination (for example, Fracttal).
What do you need to use it?
Before making the query, you need to have on hand:
| Data | Where to get it | Example |
|---|---|---|
dag_id | List DAGs endpoint | 589b6c65-1ce9-4a46-9c11-ad380d9bf27a |
date | Date of the run you want to check | 2026-06-05 |
run_id | Run identifier (found in the run history) | manual_20260605T140709_c003 |
phase | The phase you want to check: extract, transform, or load | load |
Important: If the
run_idcontains the characters:or+, you must URL-encode them before sending (replace:with%3Aand+with%2B).
Optional filters
| Parameter | Function | Default |
|---|---|---|
attempt | Selects which attempt to view (1 = most recent) | 1 |
page | Result pagination | 0 |
limit | Records per page | 50 |
keyword | Text search within records | — |
Authentication
You need an OAuth2 access token. See Authentication.
Authorization: Bearer <your_token>Query example
Search for records from the load phase on June 5th that contain the word "error":
GET /hub/api/v1/dags/589b6c65-1ce9-4a46-9c11-ad380d9bf27a/runs/2026-06-05/manual_20260605T140709_c003/phases/load/data?page=0&limit=50&keyword=error
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...What does it return?
{
"rows": [
{ "campo_1": "valor_a", "campo_2": 9486 },
{ "campo_1": "valor_b", "campo_2": 3314.15 }
],
"total": 4668,
"page": 0,
"limit": 50,
"has_more": true,
"not_found": false,
"message": null
}| Field | Description |
|---|---|
rows | The records on the current page. Column names depend on each integration. |
total | Total records matching your search. |
page | Page number you're viewing (starts at 0). |
limit | How many records are shown per page. |
has_more | true if more pages are available, false if you've reached the end. |
not_found | true if the phase didn't generate any data (for example, if the phase failed before producing results). |
message | Additional system message, if applicable. |
How to page through results
Results are delivered in blocks. If has_more is true, there are more records on the next page:
page=0 → records 1–50
page=1 → records 51–100
page=2 → records 101–150Keep increasing page until has_more is false or rows comes back empty.
Possible issues
The token is invalid or expired (401)
401)Get a new token before trying again. See Authentication.
Some parameter has an invalid value (422)
422)The response includes a details[] array that indicates exactly which field has the problem:
{
"error_code": "VALIDATION_ERROR",
"message": "Invalid request parameters",
"status_code": 422,
"details": [
{ "field": "phase", "message": "phase must be one of: extract, transform, load" }
]
}Common causes:
| Field | Common issue |
|---|---|
dag_id | Wrong format (must be in 8-4-4-4-12 format) |
date | Format other than YYYY-MM-DD (e.g. 05-06-2026 is not valid) |
phase | Unrecognized value — only extract, transform, or load are accepted |
run_id | Contains unencoded : or + |
The phase has no data (not_found: true)
not_found: true)This isn't an error — it's a normal response indicating the phase produced no records. It happens when:
- The previous phase failed and this one never ran (e.g. if
extractfailed,transformhas no data). - The run was canceled before the phase finished.
- The requested
attemptnumber doesn't exist for that run.
OpenAPI definition
{
"openapi": "3.0.0",
"info": {
"version": "1.0.0",
"title": "Query records by phase for a run"
},
"servers": [
{
"url": " https://one.fracttal.com/hub/api/v1/dags/{dag_id}/runs/{date}/{run_id}/phases/{phase}/data"
}
],
"paths": {
"/new-endpoint-1": {
"get": {
"operationId": "",
"responses": {
"200": {
"description": ""
}
},
"parameters": [],
"description": "This endpoint lets you see, row by row, which records a specific phase processed during a run. You can also search for specific records using keywords.",
"summary": "Query records processed by phase"
}
}
},
"x-readme": {
"explorer-enabled": true,
"proxy-enabled": true
}
} 200