Query records processed by phase

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:

DataWhere to get itExample
dag_idList DAGs endpoint589b6c65-1ce9-4a46-9c11-ad380d9bf27a
dateDate of the run you want to check2026-06-05
run_idRun identifier (found in the run history)manual_20260605T140709_c003
phaseThe phase you want to check: extract, transform, or loadload

Important: If the run_id contains the characters : or +, you must URL-encode them before sending (replace : with %3A and + with %2B).


Optional filters

ParameterFunctionDefault
attemptSelects which attempt to view (1 = most recent)1
pageResult pagination0
limitRecords per page50
keywordText 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
}
FieldDescription
rowsThe records on the current page. Column names depend on each integration.
totalTotal records matching your search.
pagePage number you're viewing (starts at 0).
limitHow many records are shown per page.
has_moretrue if more pages are available, false if you've reached the end.
not_foundtrue if the phase didn't generate any data (for example, if the phase failed before producing results).
messageAdditional 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–150

Keep increasing page until has_more is false or rows comes back empty.


Possible issues

The token is invalid or expired (401)

Get a new token before trying again. See Authentication.

Some parameter has an invalid value (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:

FieldCommon issue
dag_idWrong format (must be in 8-4-4-4-12 format)
dateFormat other than YYYY-MM-DD (e.g. 05-06-2026 is not valid)
phaseUnrecognized value — only extract, transform, or load are accepted
run_idContains unencoded : or +

The phase has no data (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 extract failed, transform has no data).
  • The run was canceled before the phase finished.
  • The requested attempt number 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
  }
}
Response
200
Language
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here!