---
title: "Record that the owner downloaded this video, for the chargeback trail."
method: POST
path: "/api/v1/videos/{video_id}/downloaded"
tags: ["Videos"]
---

# Record that the owner downloaded this video, for the chargeback trail.

`POST /api/v1/videos/{video_id}/downloaded`

## Request

- Base URL: `https://api.avatarfactory.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.avatarfactory.io/api/v1/videos/{video_id}/downloaded`
- Auth: one of:
  - API key in cookie `session`
  - HTTP bearer

<br/>The file itself is fetched straight from the CDN by the browser, so the<br/>server never sees the transfer: this beacon is the only seam where "the<br/>customer took the finished video away" becomes a fact we can cite in a<br/>dispute. Ownership is enforced like every other video route, so nobody can<br/>stamp a download onto somebody else's trail.<br/><br/>It is also where ``video_downloaded`` fires, attributed to the CALLER (an<br/>admin reaching another tenant's video is who downloaded it). Full rationale:<br/>``docs/ANALYTICS_EVENTS.md``.

## Path parameters

- `video_id` integer, required

## Response `204`

No Content

## Other responses

- `422`: Unprocessable Entity

---

[API](https://skmtc.dev/avatarfactory/apis/avatarfactory-api.md) · [All operations](https://skmtc.dev/avatarfactory/apis/avatarfactory-api/llms.txt) · [OpenAPI document](https://skmtc.dev/avatarfactory/apis/avatarfactory-api/revisions/66fc7aa3f296?raw)
