---
title: "Get bookmark folders"
method: GET
path: "/api/v1/x/bookmarks/folders"
tags: ["Tweets"]
---

# Get bookmark folders

`GET /api/v1/x/bookmarks/folders`

Returns bookmark folders from the connected X account.

## Response `200`

List of bookmark folders

- object
  - `folders` BookmarkFolder[], required
    - `id` string, required — Folder ID.
    - `name` string — Folder name.
    - `media` object — Public folder cover image metadata.
      - `id` string — Media object ID.
      - `mediaId` string — Media ID.
      - `mediaKey` string — Stable media key.
      - `originalImageHeight` integer — Original image height.
      - `originalImageUrl` string — Original image URL.
      - `originalImageWidth` integer — Original image width.
      - `palette` object[] — Dominant image colors and their proportions.
        - `percentage` number
        - `rgb` object
          - `blue` number
          - `green` number
          - `red` number
      - `type` string — Media object type.
  - `has_next_page` boolean, required — Whether another folder page is available
  - `next_cursor` string, required — Cursor for the next folder page

## Other responses

- `401` — Unauthenticated
- `402` — Payment required. MPP reads include `WWW-Authenticate`. Authenticated reads include balances and checkout; a failed request never creates checkout. Guest keys offer top-up.
- `424` — Dependency unavailable, unauthorized, or rate limited. Default v1 returns 502. The best-practice response contract returns 424 for transparent dependency failures.
- `429` — Xquik tier rate limit exceeded. The response includes a `Retry-After` header with the number of seconds to wait before retrying.
- `502` — Dependency unavailable, unauthorized, or rate limited. Default v1 returns 502. The best-practice response contract returns 424 for transparent dependency failures.
- `default` — Unexpected error.

## Changes

- **2026-08-21** `18302a60cfee` — 1 breaking, 1 info
  - the `oneOf[subschema #4]/allOf[subschema #2]/` response's property type/format changed from ``/`` to `object`/`` for status `402`
  - added 'propertyNames' constraint to the `oneOf[subschema #4]/allOf[subschema #2]/` response property for the status `402`
- **2026-08-19** `ccbc269bc193` — 1 breaking, 1 info
  - the response property `folders/items/name` became optional for the status `200`
  - added the optional property `folders/items/media` to the response with the `200` status
- **2026-08-12** `5d4938bb7de3` — 108 warning
  - added the new `closed` enum value to the `allOf[#/components/schemas/Error]/error/oneOf[subschema #1: LegacyErrorCode]/` response property for the response status `429`
  - added the new `closed` enum value to the `allOf[#/components/schemas/Error]/error/oneOf[subschema #2: StructuredError]/code` response property for the response status `429`
  - added the new `closed` enum value to the `error/oneOf[subschema #1: LegacyErrorCode]/` response property for the response status `401`
  - added the new `closed` enum value to the `error/oneOf[subschema #1: LegacyErrorCode]/` response property for the response status `424`
  - …104 more
- …earlier changes not shown

[Full history](https://skmtc.dev/xquik-dev/apis/xquik-api-2/changes/api/v1/x/bookmarks/folders/get.md)

---

[API](https://skmtc.dev/xquik-dev/apis/xquik-api-2.md) · [All operations](https://skmtc.dev/xquik-dev/apis/xquik-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/xquik-dev/xquik-api-2/revisions/73f46a2af801/schema)
