journaily

Journaily for developers

Journaily+ Pro includes programmatic access to your news: a REST API and an MCP server for AI agents. Create API keys from Your plan → Developer workbench. Keys inherit your Pro subscription — if it lapses, they stop working.

Authentication

Two options, same access and quotas:

API keys — send your key as a bearer token on every request. Keys are shown once at creation and stored hashed — treat them like passwords, and revoke any key you suspect leaked.

Authorization: Bearer jk_live_…

OAuth 2.1 — MCP clients with a connect flow (claude.ai remote connectors and similar) can authorize automatically: the server supports discovery (/.well-known/oauth-protected-resource, /.well-known/oauth-authorization-server), dynamic client registration, and the PKCE authorization-code flow with rotating refresh tokens. Just point the client at https://journaily.com/mcp — you'll be asked to sign in and approve. Connected apps appear in your Developer workbench, where you can disconnect them anytime.

REST API

Base URL https://journaily.com. All responses are JSON with an ok field. Add ?lang= (en zh hi es ar fr bn pt ru) to localized endpoints.

EndpointReturnsClass
GET /api/v1/headlines?region=globalLive digest: topics + story items for a region (us, gb, es, … or global)read
GET /api/v1/topicsYour followed topics and collectionsread
GET /api/v1/topics/{id}/articles?limit=5Recent articles for a topicread
GET /api/v1/articles/{id}Full article: headline, body, source URLs, story timeline, canonical linkread
GET /api/v1/catchup?scope=topicsNew/updated stories you haven't seen (topics, topics:<collection_id>, region:<code>)read
GET /api/v1/search?q=Resolves a query to a topic + matching cited articlessearch
POST /api/v1/research {"query": "…"}Queues the research pipeline; returns a job id (requires the research scope)research
GET /api/v1/research/{job_id}Status of a research job you started: progress while running, article ids once completedread

Quotas (per key, per day)

ClassLimit
read60/minute · 10,000/day
search30/day
research3/day

Over-quota responses are 429 with a retry_after hint. REST and MCP calls share the same budget.

Example

curl -H "Authorization: Bearer $JOURNAILY_KEY" \
  "https://journaily.com/api/v1/headlines?region=global&lang=en"

MCP server

Connect any MCP-compatible client (Claude Code, Claude Desktop, and others) to https://journaily.com/mcp — Streamable HTTP, stateless, same API key. Tools: get_headlines, search_news, get_article, list_followed_topics, get_topic_articles, catch_me_up, plus follow_topic/unfollow_topic (manage scope), research_topic (research scope) and get_research (job status/results).

Claude Code

claude mcp add --transport http journaily https://journaily.com/mcp \
  --header "Authorization: Bearer jk_live_…"

JSON client config

{
  "mcpServers": {
    "journaily": {
      "type": "http",
      "url": "https://journaily.com/mcp",
      "headers": { "Authorization": "Bearer jk_live_…" }
    }
  }
}

Article text returned by the API and MCP tools is third-party news content with source citations — your agents should treat it as data.