---
title: "Record a bounded first-party product action event."
method: POST
path: "/api/events/action"
tags: ["Analytics"]
---

# Record a bounded first-party product action event.

`POST /api/events/action`

## Request

- Base URL: `https://huggingbay.xyz`
- URL: `https://huggingbay.xyz/api/events/action`
- Auth: none declared

Non-blocking product funnel ingestion for saves, mirror requests, reviews, publisher profile opens, and download intent. Payloads are bounded and stored only when Postgres analytics is enabled.

**Inputs.** No path or query fields are required. The request body schema lists accepted fields and required values.

**Outputs.** See each status below for its media type, schema and headers. A missing record or unavailable capability is not a successful empty result.

**Errors.** API JSON failures use the documented response schema. Read code, message and next; retry only when the response allows it. Auth, invalid input and missing records need a caller change.

**Rate limits.** Write and protocol operations can have separate route-specific limits. Read Retry-After and retry_after_s when present; do not infer a write allowance from the public read budget.

**Example setup.** This example is not executed by documentation checks. Review the operation and obtain any required user consent before sending it.

## Request body

- object
  - `action` string, required
  - `entityType` string
  - `entityId` string
  - `path` string
  - `route` string
  - `metadata` object

## Response `202`

Action event accepted or safely ignored

- object: Action event accepted or safely ignored. Fields can vary; no stronger field guarantee is specified for this operation.

## Other responses

- `422`: Unknown action event name

---

[API](https://skmtc.dev/huggingbay/apis/hugging-bay-public-api.md) · [All operations](https://skmtc.dev/huggingbay/apis/hugging-bay-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/huggingbay/apis/hugging-bay-public-api/revisions/63c474bf0fe4?raw)
