---
title: "Paginated video feed"
method: POST
path: "/videos/feed"
tags: ["videos"]
---

# Paginated video feed

`POST /videos/feed`

## Request

- Base URL: `https://desaira.com/api/v1`
- URL: `https://desaira.com/api/v1/videos/feed`
- Auth: none declared

Personalized For You or Following feed. Uses a seeded shuffle for consistent pagination.

## Request body

- object
  - `page` integer
  - `per_page` integer
  - `seed` integer: Shuffle seed; reset on logout or pull-to-refresh
  - `tab` 'foryou' | 'following'

## Response `200`

Feed page

- object
  - `data` object
    - `has_more` boolean
    - `page` integer
    - `total` integer
    - `videos` Video[]
      - `avatar_url` string, uri: Creator avatar
      - `comments` integer
      - `content_rating` 'adult' | 'general': Site-level maturity rating ('adult' or 'general')
      - `cover_url` string, uri: Cover image JPG
      - `created_at` string, date-time
      - `description` string: Video caption including hashtags
      - `duration` number: Duration in seconds
      - `hash` string: Unique video identifier (hex)
      - `is_ai` boolean: AI-generated content flag
      - `likes` integer
      - `preview_url` string, uri: Thumbnail/preview JPG
      - `saves` integer
      - `shares` integer
      - `slug_url` string: SEO-friendly site URL path
      - `tags` string[]: Hashtag names
      - `username` string: Creator username
      - `video_url` string, uri: Direct MP4 URL
      - `views` integer

---

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