Build with Micro.blog logo
Build with Micro.blog
API Documentation

Movies

View .md

Endpoints for recent movie and TV activity, TMDB search, and post text for watched movies, seasons, and episodes. Every endpoint needs an app token with the read scope and allows cross-origin requests. Requests without a token return 401 with the text Token required.

Note: post_text is ready to use as the text of a new post. It starts with the user’s “watched” prefix from their movie settings (Watched: when none is set), links the title to TMDB, and ends with the user’s movie or TV emoji (🍿 when none is set). The feed-level _microblog object repeats the prefix and emoji so you can build your own text.
BASE URL https://micro.blog
GET /movies/discover

Returns the movies and TV shows Micro.blog users posted about most recently, newest first, in JSON Feed format. Up to 100 recent posts are read and repeated titles are collapsed, so the feed usually holds fewer than 100 items.

Example Request

curl -X GET "https://micro.blog/movies/discover" \
  --header "Authorization: Bearer ABCDEF1234567890ABCD"

Header Parameters

Name Type Required Description
Authorization string Required Bearer token for authentication. Format: Bearer {token}.

Response

200 OK application/json

Returns a JSON Feed. url is the link from the post, falling back to Letterboxd and then TMDB. image is the poster through Micro.blog’s image proxy. _microblog keys with no value are left out, so letterboxd_url and link_url only appear when the post linked there.

Example Response

{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Micro.blog - Discover Movies",
  "home_page_url": "https://micro.blog",
  "feed_url": "https://micro.blog/movies/discover",
  "_microblog": {
    "about": "https://micro.blog/about/api"
  },
  "items": [
    {
      "id": "12345",
      "title": "Dune: Part Two",
      "content_text": "Paul Atreides unites with Chani and the Fremen.",
      "date_published": "2026-04-26T12:00:00+00:00",
      "url": "https://www.themoviedb.org/movie/693134",
      "image": "https://micro.blog/photos/100x/https%3A%2F%2Fimage.tmdb.org%2Ft%2Fp%2Fw154%2Fexample.jpg",
      "authors": [
        {
          "name": "Manton Reece",
          "avatar": "https://avatars.micro.blog/avatars/2026/22/3.jpg",
          "url": "https://manton.org",
          "_microblog": {
            "username": "manton",
            "user_id": 123
          }
        }
      ],
      "_microblog": {
        "tmdb_id": "693134",
        "tmdb_url": "https://www.themoviedb.org/movie/693134",
        "poster_url": "https://image.tmdb.org/t/p/w154/example.jpg",
        "username": "manton",
        "user_id": 123,
        "user_avatar_url": "https://avatars.micro.blog/avatars/2026/22/3.jpg",
        "date_timestamp": 1777204800
      }
    }
  ]
}
GET /movies/discover/{id}

Returns the seasons of a TV show, each with ready-made post text. The feed-level _microblog object describes the show and includes post text for the whole series.

Example Request

curl -X GET "https://micro.blog/movies/discover/95396" \
  --header "Authorization: Bearer ABCDEF1234567890ABCD"

Header Parameters

Name Type Required Description
Authorization string Required Bearer token for authentication. Format: Bearer {token}.

Path Parameters

Name Type Required Description
id string Required TMDB TV show ID, as returned in tmdb_id from GET /movies/search.
Example: 95396

Response

200 OK application/json

Returns a JSON Feed with one item per season. Specials (season 0) are left out. Item images go through Micro.blog’s image proxy. first_air_date and homepage only appear when TMDB has them. Returns 404 when TMDB has no TV show with that ID.

Example Response

{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Micro.blog - Discover Movies - Severance",
  "home_page_url": "https://micro.blog",
  "feed_url": "https://micro.blog/movies/discover/95396",
  "_microblog": {
    "about": "https://micro.blog/about/api",
    "tmdb_id": "95396",
    "tmdb_url": "https://www.themoviedb.org/tv/95396",
    "movies_prefix": "Watched:",
    "movies_emoji_movie": "🍿",
    "movies_emoji_tv": "🍿",
    "title": "Severance",
    "overview": "Mark leads a team of office workers whose memories have been surgically divided.",
    "poster_url": "https://image.tmdb.org/t/p/w154/example.jpg",
    "number_of_seasons": 2,
    "number_of_episodes": 19,
    "type": "tv",
    "first_air_date": "2022-02-17",
    "homepage": "https://example.com/severance",
    "post_text": "Watched: [Severance](https://www.themoviedb.org/tv/95396) 🍿"
  },
  "items": [
    {
      "id": "tv-95396-season-1",
      "title": "Season 1",
      "content_text": "The Macrodata Refinement team begins to question Lumon Industries.",
      "url": "https://www.themoviedb.org/tv/95396/season/1",
      "_microblog": {
        "tmdb_id": "95396",
        "season_number": 1,
        "tmdb_url": "https://www.themoviedb.org/tv/95396/season/1",
        "post_text": "Watched: [Severance Season 1](https://www.themoviedb.org/tv/95396/season/1) 🍿",
        "movies_prefix": "Watched:",
        "movies_emoji_tv": "🍿",
        "series_title": "Severance",
        "season_title": "Season 1",
        "overview": "The Macrodata Refinement team begins to question Lumon Industries.",
        "air_date": "2022-02-17",
        "episode_count": 9,
        "poster_url": "https://image.tmdb.org/t/p/w154/season.jpg"
      },
      "image": "https://micro.blog/photos/100x/https%3A%2F%2Fimage.tmdb.org%2Ft%2Fp%2Fw154%2Fseason.jpg"
    }
  ]
}
GET /movies/discover/{id}/seasons/{number}

Returns the episodes of one TV season, each with ready-made post text. The feed-level _microblog object describes the season.

Example Request

curl -X GET "https://micro.blog/movies/discover/95396/seasons/1" \
  --header "Authorization: Bearer ABCDEF1234567890ABCD"

Header Parameters

Name Type Required Description
Authorization string Required Bearer token for authentication. Format: Bearer {token}.

Path Parameters

Name Type Required Description
id string Required TMDB TV show ID.
Example: 95396
number integer Required Season number, as returned in season_number from GET /movies/discover/{id}.
Example: 1

Response

200 OK application/json

Returns a JSON Feed with one item per episode. In this response season_number and episode_number are strings. still_url is a small still and large_still_url a 500-pixel-wide one; item images go through Micro.blog’s image proxy. Returns 404 when TMDB has no such show or season.

Example Response

{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Micro.blog - Discover Movies - Severance Season 1",
  "home_page_url": "https://micro.blog",
  "feed_url": "https://micro.blog/movies/discover/95396/seasons/1",
  "_microblog": {
    "about": "https://micro.blog/about/api",
    "tmdb_id": "95396",
    "tmdb_url": "https://www.themoviedb.org/tv/95396/season/1",
    "season_number": "1",
    "movies_prefix": "Watched:",
    "movies_emoji_tv": "🍿",
    "series_title": "Severance",
    "title": "Season 1",
    "overview": "The Macrodata Refinement team begins to question Lumon Industries.",
    "poster_url": "https://image.tmdb.org/t/p/w154/season.jpg",
    "episode_count": 9
  },
  "items": [
    {
      "id": "tv-95396-season-1-episode-1",
      "title": "Severance S1E1: Good News About Hell",
      "content_text": "Mark is promoted to lead a team whose memories are divided between work and home.",
      "url": "https://www.themoviedb.org/tv/95396/season/1/episode/1",
      "_microblog": {
        "tmdb_id": "95396",
        "season_number": "1",
        "episode_number": "1",
        "tmdb_url": "https://www.themoviedb.org/tv/95396/season/1/episode/1",
        "post_text": "Watched: [Severance S1E1, Good News About Hell](https://www.themoviedb.org/tv/95396/season/1/episode/1) 🍿",
        "movies_prefix": "Watched:",
        "movies_emoji_tv": "🍿",
        "series_title": "Severance",
        "episode_title": "Good News About Hell",
        "overview": "Mark is promoted to lead a team whose memories are divided between work and home.",
        "still_url": "https://image.tmdb.org/t/p/w154/still.jpg",
        "large_still_url": "https://image.tmdb.org/t/p/w500/still.jpg",
        "runtime": 57,
        "air_date": "2022-02-18"
      },
      "image": "https://micro.blog/photos/100x/https%3A%2F%2Fimage.tmdb.org%2Ft%2Fp%2Fw154%2Fstill.jpg"
    }
  ]
}