DeepSeek APIchat.deepseek.com ↗
Access DeepSeek's research announcements, full article content, Transparency Center model disclosures, and API platform pricing via 4 structured endpoints.
What is the DeepSeek API?
The DeepSeek API exposes 4 endpoints covering the full Research & News archive, individual article content, Transparency Center model disclosures, and API platform pricing. Use list_news to retrieve every announcement in one round trip, get_news_article to pull complete body text, section outlines, embedded tables, and hyperlinks for any article, and list_disclosed_models to enumerate published model cards and technical reports.
curl -X GET 'https://api.parse.bot/scraper/ba79d652-2fea-46e2-895d-f7feaa459b67/list_news?locale=en' \ -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 chat-deepseek-com-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: DeepSeek website SDK — news, articles, pricing, and model disclosures."""
from parse_apis.chat_deepseek_com_api import DeepSeek, Locale, InputNotFound
client = DeepSeek()
# Browse the latest announcements, capped at 5 items.
for item in client.article_summaries.list(limit=5):
print(item.title, item.date, item.type)
# Drill into the first news article via summary-to-detail navigation.
summary = client.article_summaries.list(type="news", limit=1).first()
if summary is not None:
article = summary.details()
print(article.title, article.date_text, article.category)
for section in article.sections:
print(f" h{section.level}: {section.text}")
for link in article.links:
print(f" link: {link.text} -> {link.url}")
# Point-lookup an article by a slug discovered above.
if summary is not None:
try:
same_article = client.articles.get(slug=summary.slug)
print(same_article.title, same_article.url)
except InputNotFound:
print("Article not found")
# Headline API pricing.
pricing = client.pricing.get()
for m in pricing.models:
print(m.model, m.unit)
for p in m.prices:
print(f" {p.label}: {p.currency}{p.amount}")
print("Features:", pricing.features)
# Transparency Center model disclosures.
disclosure = client.disclosures.get()
print(f"{disclosure.total} disclosed models")
for dm in disclosure.models:
print(dm.name, dm.version_label, dm.release_date_text, dm.badge or "")
if disclosure.methodology_disclosure is not None:
print("Methodology:", disclosure.methodology_disclosure.label, disclosure.methodology_disclosure.url)
print("exercised: article_summaries.list / details / articles.get / pricing.get / disclosures.get")
Returns every announcement published on the site's Research & News page (the full archive shown after 'View All'), newest first, in one round trip with no pagination. Each item carries the slug consumed by get_news_article, an ISO date, a summary, the site's own type label (observed values: news, product), author and tags. image_url is present only for items the site gives a cover image. The optional type filter is applied locally against the site's type label; an unrecognised value yields an empty list. total is the count of returned items after filtering.
| Param | Type | Description |
|---|---|---|
| type | string | Filter by the site's announcement type label. Confirmed values this run: news, product. Omitted = all announcements. |
| locale | string | Site language edition to read. Titles and descriptions come back in that language; slugs and dates are shared across editions. |
{
"type": "object",
"fields": {
"items": "array of announcement summaries: slug, title, date (YYYY-MM-DD), description, type, author, tags (array of strings), image_url (nullable), url",
"total": "number of items returned after filtering",
"locale": "language edition the list was read from",
"type_filter": "the type filter applied, or null"
},
"sample": {
"data": {
"items": [
{
"url": "https://www.deepseek.com/en/news/deepseek-v4-1-flash/",
"date": "2026-09-10",
"slug": "deepseek-v4-1-flash",
"tags": [
"release",
"v4.1",
"model"
],
"type": "news",
"title": "Introducing DeepSeek-V4.1-Flash: smarter, faster, more efficient.",
"author": "DeepSeek",
"image_url": "https://www.deepseek.com/images/blog/deepseek-v4-1-flash/cover.webp",
"description": "Introducing the smallest model in our new architecture family, with native visual understanding. Designed for greater capability, faster inference, and higher throughput."
},
{
"url": "https://www.deepseek.com/en/news/deepseek-app/",
"date": "2025-01-15",
"slug": "deepseek-app",
"tags": [
"app",
"mobile",
"v3",
"launch"
],
"type": "product",
"title": "Introducing DeepSeek App",
"author": "DeepSeek",
"image_url": null,
"description": "DeepSeek App is now available on App Store, Google Play and major Android markets, powered by DeepSeek-V3, completely free to use."
}
],
"total": 16,
"locale": "en",
"type_filter": null
},
"status": "success"
}
}About the DeepSeek API
Announcements and Article Content
list_news returns the complete Research & News archive — every announcement newest-first, no pagination required. Each item includes a slug, date (YYYY-MM-DD), description, type label, author, tags array, and image_url. You can filter by type (confirmed values: news, product) and by locale to retrieve titles and descriptions in different language editions. Pass any slug from that list to get_news_article for the full article: title, date_text, category, sections (a heading outline with level, id, and text), body_text, body_html, links, images, and tables (each table as an array of cell-string rows).
Transparency Center
list_disclosed_models reads the Transparency Center overview and returns each disclosed model's name, version_label, release_date_text, optional badge (e.g. "New"), and a documents array of label/URL pairs pointing to the model card and technical report. The response also includes a methodology_disclosure object linking the training-methodology page, or null when absent. Supports locale for localized label text.
API Platform Pricing
get_api_pricing returns the headline pricing table shown on DeepSeek's API Platform page. Each entry in models carries the model name, unit (pricing unit text, e.g. "per 1M tokens"), and a prices array of objects with label (input cache hit / cache miss / output), currency, and amount as a number. The response also includes a heading, a features array of platform feature statements, a note disclaimer string, and a note_link URL pointing to the full external price list.
The DeepSeek API is a managed, monitored endpoint for chat.deepseek.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when chat.deepseek.com 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 chat.deepseek.com 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?+
- Track DeepSeek model releases by polling
list_newsfiltered totype=productand comparing dates. - Build a research digest by extracting
body_textandsectionsfromget_news_articlefor each announcement slug. - Aggregate model card and technical report URLs from
list_disclosed_modelsfor an AI transparency index. - Monitor DeepSeek API pricing changes by periodically fetching
get_api_pricingand diffing thepricesarray. - Render a localized DeepSeek news feed by passing a
localeparameter tolist_newsandget_news_article. - Extract embedded benchmark tables from article responses using the
tablesfield inget_news_article. - Enumerate all disclosed models and their badges to detect newly released or updated models over time.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does DeepSeek have an official developer API?+
What does `get_news_article` return beyond the article body?+
get_news_article returns the full body_text and body_html, a sections array listing all headings with their anchor id and heading level (2–4), a links array of all in-body hyperlinks, an images array with alt and url, and a tables array. It also returns category, date_text, and the canonical url. If the article page includes header call-to-action links (such as a "Read Paper" button), those appear separately from the body links.Does `list_news` paginate, and how many items can it return?+
list_news returns the full archive in a single response — no pagination parameters are needed. The total field in the response tells you how many items were returned after any type filter is applied. Very large archives will all be present in one call.