---
title: "Update Bio"
method: POST
path: "/api/reddit/profile/description"
tags: ["Profile"]
---

# Update Bio

`POST /api/reddit/profile/description`

## Request

- Base URL: `https://api.redditapis.com`
- URL: `https://api.redditapis.com/api/reddit/profile/description`
- Auth: HTTP bearer

Update the logged-in account's profile bio (publicDescription). Plain text, up to 200 characters. Session cookies are optional when a Reddit session is connected through POST /api/reddit/session: a call that sends none acts as the stored session, and cookies you do send always win. Cost: $0.012 per call.

## Request body

- object
  - `description` string, required: New bio — plain text, <= 200 chars
  - `reddit_session` string: Account session cookie (from /api/reddit/login)
  - `csrf_token` string: Reddit CSRF token cookie
  - `loid` string: Account loid cookie (from /api/reddit/login)
  - `token_v2` string: Reddit token_v2 cookie
  - `edgebucket` string: edgebucket cookie
  - `csv` string: csv cookie
  - `session_tracker` string: session_tracker cookie
  - `proxy` union: Sticky IP for this account — match the proxy used for /api/reddit/login, and send it on every call for that account. Object { server, username?, password? } or a proxy URL string. A bare host:port is accepted and treated as http. Schemes: http, https, socks4, socks5, socks5h (browser-backed endpoints support http, https, socks5). Pinned across internal retries; omit to use our shared pool.
    - object
      - `server` string, required
      - `username` string
      - `password` string
    - string
  - `max_attempts` integer: Retry budget (default 3)

## Response `200`

Successful response.

- object

## Other responses

- `400`: Bad request — missing or invalid parameters.
- `401`: Missing Bearer token.
- `402`: Your account balance does not cover this call, so nothing was charged and the request was not served. The response body is {"error":"Insufficient credits","top_up_url":"https://www.redditapis.com/dashboard/buy-credits","message":"..."}; error keeps that exact wording. This is a billing state, not a bad request: the same call succeeds once the balance is topped up, and retrying without topping up returns 402 again, which is why it carries Retry-After: 3600. Top up at the top_up_url, then call again at once; the header does not apply after a top-up. Read the remaining balance any time from GET /account/me, which is free and never returns this error. Distinct from the 402 on the monitoring endpoints, which is about plan entitlements rather than credits.
- `403`: Invalid Bearer token.
- `429`: Rate limit exceeded.
- `500`: Unexpected server error.
- `502`: Upstream (Reddit) rejected the request — cookies expired or account flagged.

---

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