Skip to main content
Lists are the spreadsheet-like surface for working with resources in bulk. Use them to assemble a screening universe, track a themed set of targets, or enrich and analyze many records at once.

Create a list

The response returns the new list under data, including its id. Use that id to add and read entries.

Add entries

Entries are the resources a list contains. Add companies, deals, or people by referencing their id.

Read entries

Fetch the entries in a list to read their current values, including any enriched columns. Entries are paginated like other collections.
Lists can hold many entries. Page through them with limit and lt as described in pagination.

Add or remove tags in bulk

POST /v1/lists/{id}/entries/bulk-tags adds or removes tags across selected entries. Metal applies the change to every tags column on the list. On lists with write-back enabled, Metal also writes the tags to the underlying records when the list’s record type supports tag write-back. Today that means funds, limited partners, and fundraising processes; on company, deal, and person lists, a write-back-enabled list reports error for every record-linked entry and writes no tag to the record; entries without a usable reference stay list-only. Send the entry IDs, the tag IDs, and an operation of add or remove. entryIds accepts 1 to 1,000 IDs and tagIds accepts 1 to 100 IDs. Metal removes duplicate IDs.
Metal applies the change per entry, not all-or-nothing. Valid entries update even when others fail. The response reports a status for each entry. This sample comes from a fund list; affectedResources is recorded for every write-back record type:
  • updated: at least one tags column changed.
  • noOp: the entry already had (for add) or already lacked (for remove) every tag.
  • notFound: the entry ID isn’t in this list.
  • error: the entry could not be changed, for example because you can’t edit the underlying record or the list’s record type doesn’t support tag write-back. Metal continues with the rest of the batch.
affectedResources lists the underlying records Metal updated through write-back. It’s omitted when write-back is off or nothing changed. Metal returns 400 when a request exceeds the limits, uses an unknown tag ID or a tag of the wrong type, or targets a list with no tags column. It returns 403 when you don’t have access to the list.

Find lists

GET /v1/lists returns the lists you can access. Narrow the results with these query parameters:
  • filter: my-lists (lists you own), shared-with-me (lists shared directly with you), or firmwide (lists that are not private). Any other non-empty value returns 400.
  • q: a case-insensitive substring match on the list name. It combines with filter.
The response does not include a total count. Instead, metadata.hasMore is true when another page exists. Keep requesting the next page until hasMore is false. page is capped at 100. To iterate past the first 100 pages, use the lt cursor instead. See pagination.

Manage the list

A common workflow

1

Assemble the universe

Search for relevant companies and add the matches as entries.
2

Enrich in bulk

Enrich at the list level so every entry gets firmographics and financials. See enrich companies.
3

Screen and export

Read entries as JSON to rank, filter, or load results into your own system. Paginate with limit and lt. Metal does not offer a native warehouse connector or Parquet dump — see portability.
Lists pair naturally with workflows: run a workflow over a list to screen an entire set of targets in one pass.