Bitcointalk APIbitcointalk.org ↗
Access Bitcointalk forum data via API: browse board categories, read thread posts, fetch user profiles, and stream recent activity across the forum.
What is the Bitcointalk API?
This API exposes 5 endpoints covering the full Bitcointalk.org forum hierarchy — from category listings to individual posts and user profiles. Use get_board_threads to pull paginated thread lists from any board by board_id, or get_thread_posts to retrieve the full post content of any discussion. Response fields include post content, author metadata, merit scores, activity levels, and timestamps, giving structured access to one of the oldest and most active Bitcoin community forums.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/beb852b1-2c9f-443c-8ec3-258fa57fe6ee/get_forum_boards' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace bitcointalk-org-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.bitcointalk_scraper_api import BitcoinTalk, Category, Board, Thread, Post, UserProfile, RecentPost
client = BitcoinTalk()
# Browse the forum structure to find boards
for category in client.categories.list():
print(category.category_name, category.category_id)
for board in category.boards:
print(board.board_name, board.board_id, board.post_count, board.topic_count)
# List threads from the Bitcoin Discussion board
bitcoin_board = client.board(board_id="1")
for thread in bitcoin_board.threads():
print(thread.title, thread.topic_id, thread.starter, thread.replies, thread.views)
# Read posts in a specific thread
target_thread = client.thread(topic_id="5580919")
for post in target_thread.posts.list():
print(post.post_id, post.author, post.author_id, post.timestamp, post.content[:80])
# Look up a user profile
profile = client.userprofiles.get(user_id="290195")
print(profile.username, profile.post_count, profile.activity, profile.merit, profile.position)
# Check recent forum-wide activity
for recent in client.recentposts.list():
print(recent.title, recent.url, recent.meta)
Retrieve the main forum index with all categories and their boards. Returns the full hierarchy of forum categories, each containing a list of boards with metadata including board name, ID, description, post count, and topic count. This is the entry point for discovering board IDs to use with get_board_threads.
No input parameters required.
{
"type": "object",
"fields": {
"categories": "array of category objects each containing category_name, category_id, and boards list"
},
"sample": {
"data": {
"categories": [
{
"boards": [
{
"board_id": "1",
"board_name": "Bitcoin Discussion",
"post_count": 0,
"description": "General discussion about the Bitcoin ecosystem.",
"topic_count": 0
}
],
"category_id": "1",
"category_name": "Bitcoin"
}
]
},
"status": "success"
}
}About the Bitcointalk API
Forum Structure and Board Navigation
The get_forum_boards endpoint returns the complete category and board hierarchy with no required parameters. Each category object contains a category_name, category_id, and an array of boards — each with board_name, board_id, description, and post_count. These board_id values are the entry point for all thread-level queries.
Threads and Posts
get_board_threads accepts a required board_id and an optional start offset (increments of 40) for pagination. Each thread in the response includes title, topic_id, starter, starter_id, replies, views, and last_post. Pass a topic_id to get_thread_posts to retrieve the actual post content, paginated in sets of 20 via the start parameter. Each post object contains post_id, author, author_id, author_details, timestamp, and content.
User Profiles
get_user_profile accepts a user_id — available from the starter_id field in thread listings or author_id in post results. The profile response includes username, position (forum rank), post_count, activity, merit, registered, location, website, and signature. This makes it straightforward to enrich thread or post data with author context.
Recent Activity
get_recent_posts returns the 10 most recent forum-wide posts per page, paginated via start in increments of 10. Each result includes title, url, meta, and content, providing a lightweight feed of the latest activity without needing to specify a board or topic.
The Bitcointalk API is a managed, monitored endpoint for bitcointalk.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bitcointalk.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official bitcointalk.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor new threads in the Bitcoin Discussion board by polling
get_board_threadswith board_id1. - Build a merit and activity leaderboard using
merit,activity, andpost_countfromget_user_profile. - Archive full thread history by paginating
get_thread_postswith thestartoffset across a long topic. - Track forum-wide sentiment by ingesting
contentfields fromget_recent_postsinto an NLP pipeline. - Enrich thread datasets with author reputation by joining
starter_idtoget_user_profileresults. - Detect newly posted topics in a specific board by comparing
last_posttimestamps across paginatedget_board_threadscalls. - Aggregate post volume per board using
post_countfrom theget_forum_boardscategory hierarchy.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Bitcointalk have an official developer API?+
What does `get_thread_posts` return and how is pagination handled?+
get_thread_posts returns up to 20 posts per page for a given topic_id. Each post includes post_id, author, author_id, author_details, timestamp, and content. To paginate, increment the start parameter by 20 (e.g., 0, 20, 40). The response also echoes back the start and topic_id values used.Does the API expose private messages, hidden boards, or login-required content?+
Is there a search endpoint for finding threads or posts by keyword?+
How fresh is the data returned by `get_recent_posts`?+
get_recent_posts reflects the forum's public recent-posts feed at the time of the request. Bitcointalk is a live forum, so results will vary between calls. There is no built-in caching TTL exposed in the response — each call fetches current data.