The Block APItheblock.co ↗
Access The Block's crypto news, article search, category browsing, and real-time token price data via a single REST API. 7 endpoints, no scraper setup needed.
What is the The Block API?
The Block API provides 7 endpoints covering crypto news retrieval, full-text article search, category browsing, and real-time token price data from The Block. Use get_article to pull a full article's HTML body, authors, tags, and related tokens by numeric post ID, or use get_cryptocurrency_prices to page through ranked token market data including price history and 24-hour highs and lows.
curl -X GET 'https://api.parse.bot/scraper/9d5ad629-5416-44ff-a5ca-dcd60f1937f9/get_article?post_id=404367' \ -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 theblock-co-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.
"""Walkthrough: The Block Crypto News API — bounded, re-runnable; every call capped."""
from parse_apis.The_Block_Crypto_News_API import TheBlock, CategorySlug, ArticleNotFound
client = TheBlock()
# Browse latest crypto news — limit= caps TOTAL items fetched.
for summary in client.article_summaries.latest(limit=3):
print(summary.title, summary.published_formatted)
# Search articles by keyword, take the first result and drill into full content.
article_summary = client.article_summaries.search(query="ethereum ETF", limit=1).first()
if article_summary:
full_article = article_summary.details()
print(full_article.title, full_article.published_at, full_article.url)
# Browse by category using the CategorySlug enum.
for summary in client.article_summaries.by_category(category_slug=CategorySlug.MARKETS, limit=3):
print(summary.title, summary.url)
# Get top cryptocurrency prices, inspect the first token.
token = client.tokens.list(size=5, limit=1).first()
if token:
print(token.title, token.token_symbol, token.token_data.current_price)
# Typed error handling: catch ArticleNotFound on a missing post.
try:
article_summary = client.article_summaries.search(query="nonexistent xyz 999", limit=1).first()
if article_summary:
article_summary.details()
except ArticleNotFound as exc:
print(f"Article not found: {exc.post_id}")
# Fetch educational learn content.
learn = client.learn_pages.fetch()
print(learn.page, len(learn.sections))
print("exercised: article_summaries.latest / search / by_category / details / tokens.list / learn_pages.fetch")
Fetch full article content by numeric post ID. Returns the article headline, HTML body, authors, category, tags, related tokens, and related posts. Each article is a single round-trip; there is no batch endpoint.
| Param | Type | Description |
|---|---|---|
| post_idrequired | string | Numeric post ID. Obtain from get_latest_news, search_articles, or get_news_by_category results. |
{
"type": "object",
"fields": {
"id": "integer post identifier",
"url": "string canonical article URL",
"tags": "array of tag objects with id, name, slug",
"intro": "string HTML intro/quick-take section",
"title": "string article headline",
"tokens": "array of related token objects",
"authors": "array of author objects with name, url, slug",
"content": "string HTML body of the article",
"excerpt": "string short excerpt",
"category": "object with name, url, id, description",
"subtitle": "string or null subtitle",
"updated_at": "string or null ISO 8601 update timestamp",
"description": "string or null meta description",
"published_at": "string ISO 8601 publish timestamp",
"related_posts": "array of related post objects"
},
"sample": {
"data": {
"id": 404367,
"url": "https://www.theblock.co/post/404367/blackrock-amendment-yield-bitcoin-etf",
"tags": [
{
"id": 31306,
"name": "Bitcoin",
"slug": "bitcoin"
}
],
"intro": "<h4>Quick Take</h4><ul><li>BlackRock filed the fourth amendment...</li></ul>",
"title": "BlackRock files new amendment for yield-generating bitcoin ETF; launch expected soon, Bloomberg analyst says",
"tokens": [
{
"ID": 248348,
"name": "Bitcoin",
"symbol": "BTC"
}
],
"authors": [
{
"id": 8692,
"url": "https://www.theblock.co/author/danny-park",
"name": "Danny Park",
"slug": "danny-park"
}
],
"content": "<p>BlackRock, the world's largest asset manager...</p>",
"excerpt": "BlackRock's new bitcoin fund seeks to provide yield through active covered call strategies.",
"category": {
"id": 55346,
"url": "https://www.theblock.co/category/companies",
"name": "Companies"
},
"subtitle": null,
"updated_at": null,
"description": null,
"published_at": "2026-06-11T01:51:06-04:00",
"related_posts": []
},
"status": "success"
}
}About the The Block API
News and Article Endpoints
get_latest_news returns the 10 most recent article summaries with fields like id, title, url, primaryCategory, publishedFormatted, thumbnail, and slug, plus a pagination object showing totalPosts, totalPages, and currentPage. To fetch a full article, pass its numeric post_id to get_article, which returns the complete content HTML body, intro quick-take HTML, authors array, tags, tokens, category object, and excerpt. There is no batch endpoint; each article requires a separate call.
Category and Search Endpoints
get_news_by_category accepts a required category_slug and optional page and size parameters for offset pagination. It returns an articles array alongside a category object that includes name, description, slug, and pageMeta. search_articles takes a query string and returns matching articles ordered by relevance; the count field reports total matches but is capped at 10,000.
Price and Market Data Endpoints
get_cryptocurrency_prices delivers offset-paginated token market data sorted by rank, using start and size parameters. Each entry in tableAssets includes tokenData and tokenHistory fields. For a single token, get_token_price_detail accepts a numeric token_id and returns current_price, market_cap, price_change_percentage_24h, high_24h, low_24h, market_cap_rank, and a tokenHistory price series.
Educational Content
get_learn_articles returns The Block Learn content organized into named sections such as Companies and Consensus Mechanisms. Each section includes a title, ctaUrl, and a posts array. The endpoint also returns a menu array for navigation and a page object with the landing page title and body HTML. No parameters are required.
The The Block API is a managed, monitored endpoint for theblock.co — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when theblock.co 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 theblock.co 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?+
- Build a crypto news feed app using
get_latest_newswith article thumbnails, categories, and publish timestamps. - Monitor mentions of a specific protocol or project by querying
search_articleswith a keyword and tracking thecountfield over time. - Populate a token price dashboard using
get_cryptocurrency_priceswithtokenDatafields likemarket_cap_rank,current_price, andprice_change_percentage_24h. - Render full article pages server-side using the
contentHTML body andauthorsarray fromget_article. - Filter news by topic area using
get_news_by_categorywith slugs like 'defi' or 'regulation' and paginate results withpageandsize. - Build a token detail page with 24-hour price history by calling
get_token_price_detailwith a knowntoken_id. - Create a crypto learning resource index by parsing
sectionsandmenuitems returned byget_learn_articles.
| 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 The Block have an official developer API?+
How do I get the numeric post ID needed for get_article?+
id field is returned in the posts array from get_latest_news, the articles array from get_news_by_category, and the results array from search_articles. Pass that integer as the post_id string parameter to get_article.Does search_articles support filtering by date range or category?+
search_articles accepts only a query string and returns results ordered by relevance. It does not currently support filtering by date, category, or author. The returned primaryCategory field on each result can be used for post-fetch client-side filtering. You can fork this API on Parse and revise it to add a category or date filter parameter.Does get_cryptocurrency_prices cover all tokens listed on The Block, and can I get historical data beyond 1 day?+
get_cryptocurrency_prices returns tokens sorted by rank and is paginated via start and size. The range field in the response is fixed at '1D', and tokenHistory covers that same window. Longer historical ranges are not currently exposed. You can fork this API on Parse and revise it to add a range parameter if The Block's token pages support other timeframes.Is author profile data available, such as all articles written by a specific author?+
authors array on individual article responses from get_article. There is no dedicated endpoint for fetching an author's full article history. You can fork this API on Parse and revise it to add an author-based article listing endpoint.