---
title: "List a table's search runs"
method: GET
path: "/find-leads/tables/{table_id}/search/runs/"
tags: ["find-leads"]
---

# List a table's search runs

`GET /find-leads/tables/{table_id}/search/runs/`

## Request

- Base URL: `https://api.getoneprofile.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getoneprofile.ai/find-leads/tables/{table_id}/search/runs/`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Every recorded execution of the table's search, newest first, including failed ones, with the reason.

## Path parameters

- `table_id` string, uuid, required

## Response `200`

Successful Response

- LeadSearchRunLogListResponseSchema: A table's recorded search runs, newest first.
  - `runs` LeadSearchRunLogSchema[], required: Every recorded run of the table's search, newest first. Empty when the table has no search.
    - `created_at` string, date-time, required
    - `error` string, nullable, required
    - `id` string, uuid, required
    - `provider_notices` string[]: What the data source said about the rows this run added, in the words to show beside them, gathered from every batch and each said once. A buying-signal search narrowed to its last 14 days says so here, and so does a hiring search that stopped at its limit of job postings. Empty for a run nothing qualified.
    - `rows_created` integer, required: Rows this run has added to the table so far.
    - `rows_fetched` integer: Rows the data source has handed over so far, whether new to the table or already in it. Reaches `rows_wanted` when the run is done.
    - `rows_not_added` RowsNotAddedSchema: People a search found that did not become rows, and why.
      - `count` integer, required: How many people were found and not added.
      - `reason` 'found_twice' | 'already_in_table', required: Why people an import found are not all rows in the table. ``found_twice``: a new table, where the index held the same person under two records (one profile, two ids), so the second copy found the first. ``already_in_table``: an import into a table that already had rows, where a person found was already one of them (and so was refreshed, not added).
    - `rows_wanted` integer: Rows the run set out to add in all; the denominator for a progress bar.
    - `status` 'running' | 'success' | 'failed', required: Where one run of a table's search stands. ``running`` while rows are still being added, then ``success`` or ``failed``.
    - `total_matched` integer, required
    - `trigger` 'create' | 'attach' | 'manual' | 'schedule', required: What started a run of a table's search.
    - `updated_at` string, date-time, required: When the run last made progress.

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `422`: Invalid request made to the API.
- `500`: Internal server error.
- `502`: Bad gateway error.
- `503`: Service unavailable.

---

[API](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile.md) · [All operations](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/llms.txt) · [OpenAPI document](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/revisions/dc5ac3c84444?raw)
