# Unfavorite a Contributor Network item

```http
DELETE /api/public/v1/contributor-network/items/{itemId}/favorite
```

**Scope**: `contributor-network.write`.

Clears the API key owner's favorite state for an opaque Contributor Network item ID. This is a kind-neutral community action, so clients do not send Competition or kind assertions.

Competition enrollment is not required, but the account must have completed account setup.

## Path parameter

| Parameter | Requirement |
| :--- | :--- |
| `itemId` | **Required string.** Opaque Contributor Network item ID. |

## Request

The request has no body or query parameters. Do not send an `idempotencyKey`; the state transition is naturally idempotent.

```bash
export SAIR_API_BASE="https://api.sair.foundation/api/public/v1"

curl -X DELETE \
  "$SAIR_API_BASE/contributor-network/items/$ITEM_ID/favorite" \
  -H "Authorization: Bearer $SAIR_API_KEY"
```

## Behavior

- The operation removes the caller's favorite relationship if one exists; it never toggles an unfavorited item on.
- An already-absent relationship still returns `204 No Content`.
- A missing, withdrawn, hidden, deleted, or otherwise unavailable item also returns `204` after clearing any surviving relationship for this caller. Success does not confirm that the item exists or is visible.
- If the same caller sends favorite and unfavorite operations concurrently for one item, the last operation applied by the API determines whether the item is favorited.

## Response

Returns:

```http
HTTP/1.1 204 No Content
Cache-Control: private, no-store
```

The response has no body and no `Content-Type` header. It does not return a favorite count; a later active-item read supplies the latest visible count.

## Errors

| HTTP | Code | When |
| :---: | :--- | :--- |
| `400` | `MALFORMED_BODY` | The request contains a body, a query parameter, or another unsupported top-level request field. |
| `403` | `ACCOUNT_INITIALIZATION_REQUIRED` | The API key owner has not completed account setup. |

See [Errors](../../errors.md) for shared errors.
