---
title: "Get Content By Cast Hash"
method: GET
path: "/v2/public/contents/by-cast-hash/{cast_hash}"
tags: ["v2 - SDK"]
---

# Get Content By Cast Hash

`GET /v2/public/contents/by-cast-hash/{cast_hash}`

## Request

- Base URL: `https://api.jubjubapp.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.jubjubapp.com/v2/public/contents/by-cast-hash/{cast_hash}`
- Auth: HTTP bearer

Resolve a Farcaster cast hash to a JubJub content item for the
Mini App paywall. Public endpoint — no auth required.

URL priority (3-step):
  1. source_video_url  — direct playable embed URL (mp4 / CDN /
     Mux stream) written by the auto-tokenise service. This is
     the canonical playable URL for the Mini App <video> tag.
  2. platform_video_url — legacy fallback for pre-fix docs
     (currently same as farcaster_cast_url for Farcaster-native
     content but may carry a real video URL for SDK-registered
     content).
  3. farcaster_cast_url — last resort (cast permalink page,
     usually not directly playable). Here as a defensive
     fallback for pre-fix auto-tokenise docs with no
     source_video_url.
  4. None of the above → 404 with retry hint.

The launches_v2 fallback from FarcasterAdapter._resolve_video_url
is deliberately skipped here — the Mini App viewer paywall is
Farcaster-native content only.

Tier-2 gating: if the content is marked gated_playback=true, the durable
URL is paywalled and is NEVER emitted here (video_url is null). The Mini
App falls through to the normal gated flow — GET playback-info (sees
gated=true) → pay → resolve a short-lived signed URL via the AUTHED
POST /v2/streaming/sessions/{id}/playback-url endpoint — exactly like any
other Tier-2 piece.

Note: this endpoint intentionally treats video_url as an opaque
string — see content_routes.py for the legacy Mux-specific path
that will be replaced in the /watch/[contentId] migration
(TODO.md:59-66).

## Path parameters

- `cast_hash` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/jubjubapp/apis/jubjub-api.md) - [All operations](https://skmtc.dev/jubjubapp/apis/jubjub-api/llms.txt) - [OpenAPI document](https://skmtc.dev/jubjubapp/apis/jubjub-api/revisions/353157b296f2?raw)
