---
title: "List the columns a search would create"
method: GET
path: "/find-leads/columns/"
tags: ["find-leads"]
---

# List the columns a search would create

`GET /find-leads/columns/`

## 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/columns/`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

The columns a table built from this search type can show, in order, and which of them a preview reveals. Free to call and never fetches a row, so a builder can draw the table header before any preview is bought. A column that no added lead fills is left out when the table is created; a preview, which has leads in hand, lists only the columns they fill. Buying-signal searches take the chosen signal as `signal_type`, which adds the columns that signal's own details earn. Also answers what one row of this search type costs and whether it can be previewed at all, so the price and the preview button are decided by the same free call that draws the header.

## Query parameters

- `record_type` 'people' | 'companies' | 'signal_companies' | 'signal_people' | 'lookalikes' | 'local_businesses' | 'hiring_companies' | 'backlinks' | 'search_results' | 'post_authors', required: Which dataset a search runs against, and so which provider serves it. Values are persisted in String(16) columns, so every member must stay within 16 characters.
- `signal_type` string, nullable: For a buying-signal search, the one signal it looks for. Ignored for every other search.

## Response `200`

Successful Response

- LeadColumnPlanResponseSchema: The columns a search would create, so a header can be drawn before any rows are bought.
  - `columns` LeadColumnSchema[], required: Every column a table built from this search type can show, in order. A column that no added lead fills is left out when the table is created; a preview, which has leads in hand, lists only the columns they fill.
    - `kind` 'text' | 'number' | 'url' | 'date' | 'boolean' | 'list', required: How a column's values are shown: a "url" as a link, a "date" as a date, a "list" as its items. A display hint, not the type the column stores.
    - `label` string, required: The column's name, as the created table will call it.
    - `revealed` boolean, required: Whether a preview carries this column's values. A column that is not revealed has no value in a preview row at all, rather than a hidden one, so there is nothing to blur on the page.
  - `credits_per_request` number
  - `credits_per_row` number, required: What one row of this search type costs, in credits, before any enrichment is chosen. Zero for the search types whose rows are free. Charged on the rows a run adds, so a run that adds nothing costs nothing. Quoted here because this is the one free call a builder makes before anything is spent: asking the price must never itself cost a row.
  - `preview_supported` boolean, required: Whether this search type can be sampled before it is added. The backend lists which datasets offer an explicit sample. This is independent of row pricing; automatic counts are only available when the data source counts for free.
  - `rows_per_request` integer

## 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/4a6bd71e3f02?raw)
