Skip to content
Streamkap
Esc
navigateopen⌘Jpreview

Batch fetch topics for multiple entities

Returns enriched topics grouped by entity ID. Use for polling refresh or expand-all when groups are already loaded. Accepts 1-100 entity IDs.

POST/dashboard/lineage/topics/batch
Authorization
AuthorizationBearer token · headerrequired
Request body
requiredapplication/json
group_bystringrequired

Grouping dimension

Allowed:sourcedestinationtransformsource_audit
entity_idsstring[]required

Entity IDs to fetch topics for

min items 1 · max items 100
page_sizeinteger

Max topics per entity

min 1 · max 100 · default: 20
sortstring

Sort field for topics

default: "byteTotal"
Allowed:byteTotallatencyspeedlagname
sort_dirstring

Sort direction

default: "desc"
Allowed:ascdesc
topic_namestring | any

Topic name substring filter

Show properties
Any of:
string
string
any
any
filterstring | any

Comma-separated quick filters

Show properties
Any of:
string
string
any
any
include_metricsboolean

When false, return metrics as null

default: true
diff_bandsstring[] | string | any

Diff% multi-band filter for source_audit. Either a JSON array (["0-0.05", "0.05-2"]) or a comma-separated string ('0-0.05,0.05-2'). Each band is an inclusive 'min-max' pair. Topic passes if its rounded-to-2-decimals max destination diff% falls in ANY band.

Show properties
Any of:
string[]
Array of string
string
string
string
any
any
Responses
200

Successful Response

groupsobject

Topics grouped by entity ID

422

Validation Error

detailValidationError[]
Show properties
Array of ValidationError
locstring | integer[]required
Show properties
Array of string | integer
Any of:
string
string
integer
integer
msgstringrequired
typestringrequired
inputany
ctxobject
Request
curl -X POST "https://api.streamkap.com/dashboard/lineage/topics/batch" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "group_by": "source",
  "entity_ids": [
    "string"
  ],
  "page_size": 20,
  "sort": "byteTotal",
  "sort_dir": "asc",
  "topic_name": "string",
  "filter": "string",
  "include_metrics": true,
  "diff_bands": [
    "string"
  ]
}'
Response
{
  "groups": {
    "property1": {
      "result": [
        {
          "id": "string",
          "name": "string",
          "source": {
            "id": "string",
            "name": "string",
            "connector": "",
            "snapshot_progress": {
              "state": "string",
              "snapshot_type": "incremental",
              "total_topic_count": 0,
              "remaining_topic_count": 0,
              "done_topic_count": 0,
              "cancelled_topic_count": 0,
              "failed_topic_count": 0,
              "total_table_count": 0,
              "remaining_table_count": 0,
              "rows_total": 0,
              "rows_scanned": 0,
              "progress_type": "rows",
              "percent_complete": 0,
              "eta_ms": 0,
              "start_timestamp": "string",
              "end_timestamp": "string"
            }
          },
          "metrics": {
            "StreamingMilliSecondsBehindSource": 0,
            "SnapshotPercentageComplete": 0,
            "recordSendTotal": 0,
            "sourceRecordWriteTotal": 0,
            "snapshotPercentageComplete": 0,
            "recordsLag": 0,
            "byteTotal": 0,
            "sourceRecordPollRate": 0,
            "sourceQaCount": 0
          },
          "snapshot_status": "string",
          "snapshot_details": [
            {
              "status": "string",
              "start_timestamp": "string",
              "end_timestamp": "string",
              "duration_ms": 0,
              "rows_scanned": 0,
              "rows_total": 0,
              "trace": "string",
              "eta_ms": 0
            }
          ],
          "transforms": [
            {
              "id": "string",
              "name": "string",
              "status": "",
              "metrics": {
                "latency": 0
              },
              "output_topics": [
                "string"
              ],
              "transform_type": "fan_out",
              "destinations": [
                {
                  "id": "string",
                  "name": "string",
                  "connector": "",
                  "pipeline_id": "",
                  "pipeline_status": "",
                  "lag": 0,
                  "latency_ms": 0,
                  "qaCount": 0,
                  "e2e_eta_ms": 0
                }
              ]
            }
          ],
          "destinations": [
            {
              "id": "string",
              "name": "string",
              "connector": "",
              "pipeline_id": "",
              "pipeline_status": "",
              "lag": 0,
              "latency_ms": 0,
              "qaCount": 0,
              "e2e_eta_ms": 0
            }
          ]
        }
      ],
      "total": 0,
      "page": 1,
      "has_next": false
    },
    "property2": {
      "result": [
        {
          "id": "string",
          "name": "string",
          "source": {
            "id": "string",
            "name": "string",
            "connector": "",
            "snapshot_progress": {
              "state": "string",
              "snapshot_type": "incremental",
              "total_topic_count": 0,
              "remaining_topic_count": 0,
              "done_topic_count": 0,
              "cancelled_topic_count": 0,
              "failed_topic_count": 0,
              "total_table_count": 0,
              "remaining_table_count": 0,
              "rows_total": 0,
              "rows_scanned": 0,
              "progress_type": "rows",
              "percent_complete": 0,
              "eta_ms": 0,
              "start_timestamp": "string",
              "end_timestamp": "string"
            }
          },
          "metrics": {
            "StreamingMilliSecondsBehindSource": 0,
            "SnapshotPercentageComplete": 0,
            "recordSendTotal": 0,
            "sourceRecordWriteTotal": 0,
            "snapshotPercentageComplete": 0,
            "recordsLag": 0,
            "byteTotal": 0,
            "sourceRecordPollRate": 0,
            "sourceQaCount": 0
          },
          "snapshot_status": "string",
          "snapshot_details": [
            {
              "status": "string",
              "start_timestamp": "string",
              "end_timestamp": "string",
              "duration_ms": 0,
              "rows_scanned": 0,
              "rows_total": 0,
              "trace": "string",
              "eta_ms": 0
            }
          ],
          "transforms": [
            {
              "id": "string",
              "name": "string",
              "status": "",
              "metrics": {
                "latency": 0
              },
              "output_topics": [
                "string"
              ],
              "transform_type": "fan_out",
              "destinations": [
                {
                  "id": "string",
                  "name": "string",
                  "connector": "",
                  "pipeline_id": "",
                  "pipeline_status": "",
                  "lag": 0,
                  "latency_ms": 0,
                  "qaCount": 0,
                  "e2e_eta_ms": 0
                }
              ]
            }
          ],
          "destinations": [
            {
              "id": "string",
              "name": "string",
              "connector": "",
              "pipeline_id": "",
              "pipeline_status": "",
              "lag": 0,
              "latency_ms": 0,
              "qaCount": 0,
              "e2e_eta_ms": 0
            }
          ]
        }
      ],
      "total": 0,
      "page": 1,
      "has_next": false
    }
  }
}