API Documentation

Get started with Rnote API — from sign-up to your first request.

Base URL

https://rnote.dev/api/v2/crawler

All API endpoints use this prefix. The full interactive reference is available via Swagger UI.

Online API playground

We provide an Apifox-based online playground — enter your API key and test every endpoint right in the browser, no code required.

Open the playground

Before you start

  1. 1 Create an account and verify your email
  2. 2 Sign in to the admin panel and create an API key under "API Keys"
  3. 3 Top up your balance on the Billing page (only successful requests are charged)

Authentication

All API requests authenticate by passing your API key in the X-API-Key header.

# Pass your API key in an HTTP header
curl -X 'GET' \
  'https://rnote.dev/api/v2/crawler/note/image?note_id=697c0eee000000000a03c308' \
  -H 'accept: application/json' \
  -H 'X-API-Key: sk-5bc4****************************e175'

Your First Request

Example — fetching an image note's detail:

curl -X 'GET' \
  'https://rnote.dev/api/v2/crawler/note/image?note_id=697c0eee000000000a03c308' \
  -H 'accept: application/json' \
  -H 'X-API-Key: sk-5bc4****************************e175'
import requests

API_KEY = "sk-5bc4****************************e175"
BASE_URL = "https://rnote.dev/api/v2/crawler"

response = requests.get(
    f"{BASE_URL}/note/image",
    params={"note_id": "697c0eee000000000a03c308"},
    headers={
        "X-API-Key": API_KEY,
        "accept": "application/json",
    },
)

data = response.json()
print(data)
const API_KEY = "sk-5bc4****************************e175";
const BASE_URL = "https://rnote.dev/api/v2/crawler";

const res = await fetch(
  `${BASE_URL}/note/image?note_id=697c0eee000000000a03c308`,
  {
    headers: {
      "X-API-Key": API_KEY,
      "accept": "application/json",
    },
  }
);

const data = await res.json();
console.log(data);

Note APIs

GET /note/image

Fetch an image note's detail — content, image list, author info, engagement metrics and more.

Parameters: note_id (required)
GET /note/video

Fetch a video note's detail — playback URL, cover image, author info and more.

Parameters: note_id (required)
GET /note/mixed

Fetch home-feed recommendation notes; leave note_id empty to return the recommendation feed.

Parameters: note_id (optional)
GET /note/comments

Fetch a note's comments, with pagination and multiple sort options.

Parameters: note_id (required) · cursor · index · sort_strategy (default / latest_v2 / like_count)
GET /note/sub_comments

Fetch second-level comments (replies) on a note, with cursor pagination.

Parameters: note_id (required) · comment_id (required) · cursor · index · num
POST /note/metrics

Report note metrics (likes, collects, shares and other engagement data).

Body: note_id · report_type · target_count

User APIs

GET /user/info

Fetch a user's profile — nickname, avatar, bio, follower count and more.

Parameters: user_id (required)
GET /user/posted

Fetch the notes a user has posted, with cursor pagination.

Parameters: user_id (required) · cursor · num
GET /user/faved

Fetch the notes a user has collected, with cursor pagination.

Parameters: user_id (required) · cursor · num

Search APIs

GET /search/notes

Search notes, with sorting and filtering.

Parameters: keyword (required) · page · sort (general / time_descending / popularity_descending) · note_type (0=all / 1=video / 2=image)
GET /search/users

Search users.

Parameters: keyword (required) · page
GET /search/images

Search images.

Parameters: keyword (required) · page
GET /search/products

Search products.

Parameters: keyword (required) · page · sort_by · source
GET /search/groups

Search group chats.

Parameters: keyword (required) · page

Product APIs

GET /product/detail

Fetch product detail.

Parameters: product_id (required)
GET /product/review/overview

Fetch a product's review summary.

Parameters: product_id (required)
GET /product/reviews

Fetch a product's reviews, with cursor pagination.

Parameters: product_id (required) · cursor · sort_type
GET /product/recommendations

Fetch related-product recommendations.

Parameters: product_id (required) · cursor

Topic APIs

POST /topic/info

Fetch topic detail.

Body: topic_id (required)
GET /topic/feed

Fetch notes under a topic, with cursor pagination.

Parameters: topic_id (required) · cursor · sort_by

Creator Insights

GET /creator/inspiration/feed

Fetch recommended creator inspirations.

Parameters: cursor · num
GET /creator/hot/inspiration/feed

Fetch trending creator inspirations.

Parameters: cursor · num

Response Format

Successful responses return RedNote's raw JSON. Error responses use a consistent format:

{
  "detail": "Error description"
}

Error Codes

HTTP status Meaning How to handle
401 Missing or invalid API key Check the X-API-Key header
402 Insufficient balance Top up your balance in the admin panel
403 Not authorized for this endpoint Check your API key's scopes
429 Rate limit exceeded Reduce your request rate and retry later
500 Internal server error Retry later; contact support if it persists
503 No device available (account pool exhausted) Retry later

Billing

Per-request billing

Only successful (HTTP 2xx) requests are billed; failed requests are free. Each endpoint is priced independently.

Insufficient balance

When your balance can't cover a request, the API returns HTTP 402 and the request is not executed.

Transaction records

Every charge is viewable on the Billing page of the admin panel — time, endpoint, amount and more.