> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wiseyield.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Add to shortlist

> Add an admin-catalog crop to the user's personal shortlist.

```
POST https://www.wiseyield.co/api/v1/crop-library/user-crops
```

### Authentication

Requires a key with the `library:write` scope.

### Request body

<ParamField body="adminCropId" type="string" required>UUID of the admin crop to add. Must reference a verified, active admin crop.</ParamField>
<ParamField body="farmId" type="string">Optional farm UUID — bind the shortlist entry to a specific farm.</ParamField>
<ParamField body="source" type="string" default="manual_search">One of `manual_search`, `ai_recommendation`.</ParamField>
<ParamField body="customizations" type="object">User overrides (free-form JSON; common keys: `customName`, `customNotes`, `customGrowthDuration`).</ParamField>

### Response

Returns the created shortlist entry wrapped under `data`. See [List shortlist](/api-reference/crop-library/list-user-crops) for the field reference.

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST 'https://www.wiseyield.co/api/v1/crop-library/user-crops' \
    -H "Authorization: Bearer $WISEYIELD_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "adminCropId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
      "source": "manual_search",
      "customizations": { "customNotes": "Considering for north field next season" }
    }'
  ```
</RequestExample>

## Errors

| Status                    | When                                            |
| ------------------------- | ----------------------------------------------- |
| `400 VALIDATION_ERROR`    | Body validation failed                          |
| `401`                     | Missing, malformed, expired, or revoked API key |
| `403 INSUFFICIENT_SCOPE`  | Key lacks `library:write` scope                 |
| `404 NOT_FOUND`           | Admin crop doesn't exist or is inactive         |
| `429 RATE_LIMIT_EXCEEDED` | Per-user rate limit reached                     |
| `5xx`                     | Server error                                    |
