---
title: "Save a profile's creators to a Vault list"
method: POST
path: "/discovery/profiles/{profile_id}/save-to-list"
tags: ["Discovery Agent"]
---

# Save a profile's creators to a Vault list

`POST /discovery/profiles/{profile_id}/save-to-list`

## Request

- Base URL: `https://api.reacherapp.com/public/v1`
- URL: `https://api.reacherapp.com/public/v1/discovery/profiles/{profile_id}/save-to-list`
- Auth: API key in header `x-api-key` and API key in header `x-shop-id`

Resolve one brief and materialize its entire match set into a named Vault list — the bridge from 'who should I recruit?' to an automation you can actually run, since automations target Vault lists rather than briefs.

This is a snapshot: the list holds the creators matching at save time and does not track the brief afterwards. Re-save to refresh. Pass `include_emails: true` to store the email list alongside the handles, which an email automation needs. Optional `filters` narrow what gets saved without editing the brief.

Every matching creator is saved, not just the first page, so this can take a while on a broad brief. The response reports `creators_saved`.

Requires `read_write` scope and an `Idempotency-Key` header. Returns 404 if the profile does not exist or belongs to another shop. Single-shop only.

## Path parameters

- `profile_id` integer, required: Discovery Agent profile ID.

## Headers

- `Idempotency-Key` string, nullable

## Request body

- DiscoverySaveToListBody: Materialize a profile's match set into a Vault list.
  - `list_name` string, required: Name for the Vault list.
  - `description` string, nullable: Optional list description.
  - `include_emails` boolean: Also save the creators' email list alongside the handle list. Required if you intend to drive an email automation from it.
  - `filters` object, nullable: Extra filters narrowing the saved set, same shape as the AI-search filter payload. The profile itself is not modified.

## Response `201`

Successful Response

- SaveListResponse: Response model for saving a creator list
  - `success` boolean, required
  - `message` string, required
  - `list_name` string, required
  - `creators_saved` integer, required
  - `email_list_saved` boolean, required

## Other responses

- `400`: Validation error, or a missing/oversized Idempotency-Key.
- `403`: API key lacks `read_write` scope (`WRITE_NOT_PERMITTED`).
- `404`: Resource does not exist, or belongs to another shop.
- `409`: Idempotency conflict, or the resource already exists.
- `422`: Validation Error
- `429`: Write-tier rate limit (10/min, 50/hour, 100/day) exceeded.

---

[API](https://skmtc.dev/reacherapp/apis/reacher-data-api.md) - [All operations](https://skmtc.dev/reacherapp/apis/reacher-data-api/llms.txt) - [OpenAPI document](https://skmtc.dev/reacherapp/apis/reacher-data-api/revisions/63ce74b30b5a?raw)
