---
title: "Save a project (kind=project, ref=project id) or a company (kind=company, ref=company_key). Idempotent per workspace: 201 when saved, 200 when it was already saved. Free."
method: POST
path: "/v1/saved"
---

# Save a project (kind=project, ref=project id) or a company (kind=company, ref=company_key). Idempotent per workspace: 201 when saved, 200 when it was already saved. Free.

`POST /v1/saved`

## Request

- Base URL: `https://api.americantradesindex.com`
- URL: `https://api.americantradesindex.com/v1/saved`
- Auth: HTTP bearer

## Request body

- object
  - `kind` 'project' | 'company', required
  - `ref` string, required
  - `note` string

## Response `200`

saved item (already saved)

## Other responses

- `201`: saved item (newly saved)
- `400`: invalid_request: detail names the field
- `401`: unauthorized: missing, invalid or revoked key
- `402`: upgrade_required (no active plan), credits_exhausted (period pool used up) or payment_required (last charge failed); body carries an `upgrade` URL
- `404`: not_found: no project with that id, or no company with that key
- `429`: rate_limited (120/min per workspace). Every response carries RateLimit-Limit/Remaining/Reset/Policy; a 429 adds Retry-After

---

[API](https://skmtc.dev/americantradesindex/apis/american-trades-index-api.md) · [All operations](https://skmtc.dev/americantradesindex/apis/american-trades-index-api/llms.txt) · [OpenAPI document](https://skmtc.dev/americantradesindex/apis/american-trades-index-api/revisions/5a9de4d8c76b?raw)
