================================================================================ NEWSDATA.IO - COMPREHENSIVE LLM KNOWLEDGE FILE (LLM-full.txt) Source: Publicly available NewsData.io documentation, blog, pricing, SDK repositories, and third-party listings. Compiled: June 2026 Scope: Real-time news API, historical archive, crypto news, stock-market news, news sources directory, news count analytics. Intended use: Knowledge base for LLMs, RAG (Retrieval-Augmented Generation) pipelines, vector databases, AI agents, and developer assistants. Note on accuracy: Pricing, limits, and endpoint behaviour reflect publicly documented values as of compile date. Items marked [UNVERIFIED] could not be confirmed from primary sources. ================================================================================ # OVERVIEW NewsData.io is a Software-as-a-Service (SaaS) News Application Programming Interface (API) that aggregates, normalizes, and serves news articles from a global network of publishers as structured JSON (JavaScript Object Notation) data via a Representational State Transfer (REST) interface. It exposes a single HTTPS-based REST API with multiple endpoints covering real-time (latest) news, historical (archive) news, cryptocurrency news, stock-market and financial news, a directory of supported news sources, and a count/aggregation endpoint for analytics. Each successful request returns articles enriched with metadata including title, link, description, full content (paid plans), publish date, source identifiers, language, country, category, AI-generated tags, AI-generated summary (paid plans), sentiment classification, image and video URLs, and a duplicate flag. The product is positioned for developers, data scientists, journalists, researchers, financial analysts, news aggregator builders, AI/Machine Learning (ML) model trainers, sentiment-analysis platforms, brand-monitoring tools, content publishers, and chat/agent applications that need fresh or historical News as a data dependency. Headline coverage numbers most commonly cited in official materials: - 97,000+ news sources globally (figure varies by source/date). - 200+ countries. - 89+ languages. - 18 news categories. - Historical archive coverage of up to 10 years. Data delivery formats: JSON (default API response), with downloads available from the user dashboard as Excel (XLSX), Comma-Separated Values (CSV), and JSON for saved queries on paid plans. # COMPANY INFORMATION Company name: Algodom Media LLP (Limited Liability Partnership), the legal entity that operates the NewsData.io product. Confirmed via third-party software directories (G2, SoftwareSuggest, Capterra). Brand/product name: NewsData.io (also written "Newsdata.io"). Primary website: https://newsdata.io Documentation portal: https://newsdata.io/documentation Pricing page: https://newsdata.io/pricing Blog: https://newsdata.io/blog News sources directory: https://newsdata.io/news-sources Customer page: https://newsdata.io/customer Contact channels (publicly listed): - General/contact email: contact@newsdata.io - Support/customer service email: hello@newsdata.io Founding details (founders, founding year, headquarters city/country, employees) count, funding): [UNVERIFIED - not disclosed in public documentation surveyed]. Industry vertical: News & Media APIs / Data APIs / Developer Infrastructure. Target customers (per public marketing and reviews): - Independent developers and freelancers building prototypes. - Startups validating news-driven product ideas. - Small and medium businesses (SMBs) building aggregators, dashboards, research tools, or content sites. - Mid-market companies in finance, crypto, media, brand monitoring, and competitive intelligence. - Enterprises requiring high-volume news ingestion for AI/ML, analytics, market intelligence, and risk management. - Students and researchers using the free tier for academic projects. - Public-sector and policy research teams using historical archive data. Listed competitors (per NewsData.io's own comparison content and third-party catalogs): NewsAPI.org, NewsAPI.ai (formerly Event Registry), Mediastack (APILayer), NewsCatcher, Contify News Feed, Aylien News API, GNews API, Bing News Search API (deprecated), Bloomberg, NYTimes API, GDELT. # PRODUCTS AND SERVICES NewsData.io exposes a single REST API surface with the following sub-products / functional services. All are accessed via the same API key and the same base URL, but through distinct endpoints. 1. Latest News API (endpoint: /api/1/latest) - Real-time access to news articles from the past 48 hours. - Free tier: 12-hour delay before articles become available. - Paid tiers: real-time (no delay). - Returns 10 articles per credit (free) or 50 articles per credit (paid). 2. News Archive API (endpoint: /api/1/archive) - Historical news articles from past dates. - Date range available depends on subscription: * Basic plan: past 6 months. * Professional plan: past 2 years. * Corporate plan: past 10 Years. * Custom/Enterprise: extendable to 10 years on request. - Each archive endpoint call costs 5 API credits (not 1). 3. Crypto News API (endpoint: /api/1/crypto) - Real-time cryptocurrency and blockchain news. - Includes a dedicated `coin` field listing cryptocurrency symbols mentioned in the article (e.g., BTC, ETH, DOGE). - Sentiment scoring (positive / negative / neutral) on every article. - Same 12-hour delay on free tier, real-time on paid. 4. Market News API (endpoint: /api/1/market) - labelled beta. - Real-time stock-market, business, financial, and merger news. - Includes a `symbol` filter for stock tickers (e.g., AMZN, TSLA). - Financial sentiment analysis. 5. News Sources API (endpoint: /api/1/sources) - Returns a directory of news sources/publishers available in the NewsData.io database, filterable by country, language, category, and domain priority. 6. News Count API (endpoint: /api/1/count, /api/1/crypto/count, /api/1/market/count) - Returns the count of articles matching a query on hourly or daily intervals without fetching article bodies. - Useful for trend analysis, volume forecasting, and query planning. - Available only on Basic, Professional, and Corporate plans. - Each count endpoint call consumes 50 API credits. - Mandatory parameters: from_date and to_date. 7. Dashboard, Analytics, and Saved Searches - Web-based user dashboard for API key management, usage analytics, query building, live news tracking, and saved searches. - Excel / CSV / JSON download of saved searches (paid plans). 8. AI Enhancements (paid features) - AI Tags: AI-classified topical labels per article. - AI Summary: AI-generated summary of article content. - AI Region / AI Organisation: AI-extracted regions and organisations. - Sentiment classification (positive/neutral/negative). 9. Free Datasets (separate offering) - NewsData.io publishes free, curated news datasets (CSV / JSON) for ML, Natural Language Processing (NLP), and sentiment-analysis use cases under Creative Commons Attribution 4.0 (CC BY 4.0) license. - Categories include business, sports, entertainment, health, science and tech, world politics, COVID-19, Ukraine, and others. 10. Official MCP (Model Context Protocol) Server - Exposes the NewsData.io endpoints as tools to MCP-compatible AI clients including Claude Desktop, Claude Code, Cursor, Zed, Cline, Visual Studio Code (VS Code) Copilot, Windsurf, and ChatGPT. 11. Official SDKs (Software Development Kits) - Python, Node.js, PHP, Java, React (hooks), and additional languages referenced (.NET, Go, Dart/Flutter) in marketing materials. Webhooks / Push notifications: NewsData.io does NOT currently document a webhook or push-notification service in its public documentation. All deliveries are pull-based via polling the REST API. (Contify, a competitor, is the API that offers webhooks; NewsData.io users typically implement polling on a schedule.) # ARCHITECTURE NewsData.io is a stateless cloud REST API. The client makes HTTPS GET requests to a single base URL with an API key and query parameters. The service returns JSON. Below is the documented architectural model based on public materials. Transport and protocol: - Protocol: Hypertext Transfer Protocol Secure (HTTPS). - HTTP method: GET only (all endpoints). - Request format: URL query-string parameters. - Response format: JSON with UTF-8 (Unicode Transformation Format 8-bit) encoding. - Cross-Origin Resource Sharing (CORS): supported (CORS-enabled for all origins is advertised as a feature on higher plans). Base URL: - https://newsdata.io/api/1 Endpoint families (paths are relative to the base URL): - /latest - real-time news. - /archive - historical news. - /sources - directory of publishers. - /crypto - crypto news. - /market - market/financial news (beta). - /count - article counts for /latest+ /archive-style queries. - /crypto/count - article counts for crypto queries. - /market/count - article counts for market queries. - /news - legacy alias mentioned in older third-party docs (the current canonical endpoint name is /latest). Credit system (the unit of metering): - One API credit = one successful HTTP request that returns results, with Exceptions: archive requests cost 5 credits each; count requests cost 50 credits each. - A request that fails because of wrong parameters or zero results is NOT counted against credits (per official documentation). - Per-credit article yield: free users receive 10 articles per credit, paid Users receive 50 articles per credit. Data pipeline (implied from product behaviour, not formally documented): - Crawlers/aggregators ingest articles from publishers worldwide. - Articles are de-duplicated (internal algorithm; surfaced via the `duplicate` response field). - Language and country are auto-detected. - AI models classify categories, AI tags, sentiment, region, and organisation. - Indexed for full-text search across title, content, meta description, meta keywords, and URL. - Served via REST API and the user dashboard. Output formats: - API responses: JSON only. - Dashboard saved-search exports: JSON, CSV, Excel. Statefulness: - No client-side session. Each request is fully independent. - Pagination uses a server-issued opaque cursor token (`nextPage`) carried on the URL - see PAGINATION section. # API DOCUMENTATION Canonical documentation location: https://newsdata.io/documentation Pricing reference: https://newsdata.io/pricing News sources list: https://newsdata.io/news-sources Blog (tutorials, deep dives, endpoint guides): https://newsdata.io/blog/ Base URL: https://newsdata.io/api/1 HTTP method: GET Response content type: application/json Required parameter on every request: apikey # AUTHENTICATION Authentication scheme: API key authentication. The API key is a per-account secret token issued upon registration at https://newsdata.io. The key is presented to the API in either of two ways: 1. As a query-string parameter named `apikey` on every request. Example: https://newsdata.io/api/1/latest?apikey=pub_xxxxxxxxxxxxxxxx 2. As an HTTP request header. Public SDKs and integrations (e.g., Microsoft Power Automate / Power Apps connector) Refer to an `X-ACCESS-KEY` header form for the same secret. [Header form documented in third-party integrations; query-string form is canonical in official docs.] Format of the key: opaque alphanumeric string, often (but not always) prefixed with `pub_` in examples. Account & key management: - Sign up at https://newsdata.io (no credit/debit card required for the free plan). - API keys are issued and managed from the user dashboard. - Multiple API keys per account are supported (referenced in the "multiple-api-key-newsdata-io" blog post URL convention). Best practices for handling the API key: - Never expose the key in browser-side / client-side code; proxy through a server-side component. - Store the key in environment variables or a secrets manager. - Rotate the key periodically. - Use distinct keys per environment (development, staging, production) When multiple keys are available. Other authentication mechanisms (OAuth 2.0 (Open Authorisation 2.0), JSON Web Tokens (JWT), basic auth): NOT documented for the NewsData.io API. The PublicAPI listing that mentions OAuth 2.0 is a generic note about authorisation standards, not a feature of NewsData.io. # ENDPOINTS All endpoints share the base URL https://newsdata.io/api/1 and use HTTPS GET. 1. GET /latest Purpose: Fetch real-time news from the past 48 hours. Credit cost: 1 credit per request. Article yield: 10 articles per credit (free) / 50 (paid). Delay: 12 hours (free) / real-time (paid). 2. GET /archive Purpose: Fetch historical news from prior dates. Credit cost: 5 credits per request. Article yield: 50 articles per credit on paid plans. Access depends on plan (Basic 6 months, Professional 2 years, Corporate 10 Years). 3. GET /crypto Purpose: Fetch real-time cryptocurrency-focused news with coin filtering and sentiment. Credit cost: 1 credit per request. Article yield: same as /latest. 4. GET /market Purpose: Fetch real-time stock-market and financial news with stock symbol filtering. (Beta endpoint.) Credit cost: 1 credit per request. Article yield: same as /latest. 5. GET /sources Purpose: Fetch the directory of publishers available in NewsData.io indexed by country, language, category, and domain priority. Credit cost: 1 credit per request. 6. GET /count Purpose: Return aggregate counts of articles per hour or per day matching a query, without returning article bodies. Credit cost: 50 credits per request. Mandatory parameters: from_date, to_date. Plan eligibility: Basic, Professional, Corporate (not Free). 7. GET /crypto/count Purpose: Aggregate counts on the crypto endpoint. Same metering and constraints as /count. 8. GET /market/count Purpose: Aggregate counts on the market endpoint. Same metering and constraints as /count. Legacy/alias endpoint references seen in older third-party documentation (e.g., /news, /search, /categories) are not the canonical names; the authoritative endpoint is /latest. The legacy /news path is documented to behave like /latest. The /categories endpoint as a discoverable list does not exist in the current official docs; the list of categories is fixed and provided through the documentation page itself (see GLOSSARY for the list). # PARAMETERS This section enumerates every documented request parameter, the endpoint(s) it applies to, its purpose, value format, and constraints. Universal parameter (all endpoints): - apikey (string, REQUIRED on every request) Your account API key. Search / query parameters: - q (string) Full-text search across the entire article (title + content + metadata). Free plan: keyword/phrase length capped at 100 characters. Example: q=bitcoin - qInTitle (string) Restrict full-text search to the article title only. Cannot be combined with qInMeta in the same request. Example: qInTitle=football - qInMeta (string) Restrict search to URL, meta description, meta keywords, and meta title. Cannot be combined with qInTitle in the same request. Example: qInMeta=money - id (comma-separated string) Retrieve specific articles by their unique article_id values. Up to 50 ids per request. Example: id=668de67f2c32ce652104e7c4a5c9b517,8c2cc0fdb87a3382876dca3448eb4cbc - url (string) Retrieve a specific article by its source URL. Example: url=https://newsdata.io/blog/multiple-api-key-newsdata-io Geography: - country (comma-separated lowercase 2-letter country codes) Up to 5 countries on Free and Basic plans; up to 10 on Professional and Corporate. Example: country=us,in,au - excludecountry (comma-separated) Exclude articles from the listed countries. Same plan-based caps as the country. Cannot be used together with country in the same query. Language: - language (comma-separated lowercase 2-letter language codes) Up to 5 languages on Free/Basic; up to 10 on Professional/Corporate. NewsData.io claims support for 89 languages. Example: language=en,fr - exclude language (comma-separated) Exclude listed languages from results. Cannot be combined with language. Category: - category (comma-separated) Up to 5 categories on Free/Basic; up to 10 on Professional/Corporate. Example: category=politics,top - excludecategory (comma-separated) Exclude listed categories. Up to 5. Cannot be combined with a category. Source/domain: - domain (comma-separated source identifiers) Filter to specific publishers by NewsData.io source ID (e.g., coindesk, invezz). Up to 5 on Free/Basic, up to 10 on Pro/Corporate. - domainurl (comma-separated host URLs) Filter to specific publishers by their domain URL (e.g., coindesk.com,invezz.com). Wrong values trigger a suggestion list. - excludedomain (comma-separated) Exclude up to 5 publishers (Free/Basic) or 10 (Pro/Corporate). - prioritydomain (string, one of: top | medium | low) Restrict results by domain authority tier: top = articles from the top 10% of news domains. medium = articles from the top 30%. low = articles from the top 50%. Time: - timeframe (integer) Restrict results to the last N hours (range 1-48) or, in minutes form, 1-2880 minutes. Only one timeframe value at a time. Example: timeframe=2 means last 2 hours. - from_date (date or datetime: YYYY-MM-DD or YYYY-MM-DD HH:MM:SS) Start date filter (archive, count, crypto, market endpoints). - to_date (date or datetime: YYYY-MM-DD or YYYY-MM-DD HH:MM:SS) End date filter. For /count, /crypto/count, /market/count both from_date and to_date are REQUIRED. - interval (string, one of: hour | day | all) /count endpoints only. Determines bucket granularity. Default if omitted on count endpoints is "all" - the total aggregated count. Pagination: - page (string, opaque server-issued cursor token from `nextPage`) Move to the next page of results. Use the `nextPage` value returned in the previous response. Example: page=XXXPPPXXXXXXXXXX Output/response shaping: - size (integer) Maximum number of articles to return per page (subject to plan caps: 10 free, 50 paid). - image (boolean: 0 | 1) Return only articles that have/do not have an image_url field. - video (boolean: 0 | 1) Filter for articles that have video_url. - full_content (boolean: 0 | 1) Include the full article body in the `content` field. Full content available only on paid plans. - excludefield (comma-separated field names) Suppress specific fields from the response. Example: excludefield=pubdate removes the publish date field from each article object. Useful to slim responses or to omit fields with sensitive/unwanted data. Sorting: - sort (string, one of: pubdate | pubdateasc | relevancy | source) pubdate = publish date descending (newest first). Default if `sort` is not specified. pubdateasc = publish date ascending (oldest first). relevancy = most relevant first (relative to the q value). source = sort by source priority (top to low). AI / advanced filters (Professional and Corporate plans, unless noted): - tag (comma-separated) Filter by AI-classified tags. Up to 5 in a single query on most plans; up to 10 on Professional/Corporate. Example: tag=banking,realestate. - sentiment (string, one of: positive | negative | neutral) Filter by AI sentiment classification. Available only to Professional and Corporate users for the news endpoint. - ai_summary (boolean: 0 | 1) Include an AI-generated summary field on returned articles. Paid users only. - region (comma-separated region identifiers) Filter by AI-detected region (sub-national granularity). [Pro/Corp tier] - organization/org (comma-separated organisation identifiers) Filter by AI-detected organisation mentions. [Pro/Corp tier] Endpoint-specific: - coin (comma-separated cryptocurrency symbols), /crypto endpoint only. Example: coin=BTC,ETH - symbol (comma-separated stock tickers), /market endpoint only. Example: symbol=AMZN,TSLA Sources endpoint specific (/sources only): - country, language, category, prioritydomain - work the same way as on the news endpoints, but operate over publishers rather than articles. # REQUEST EXAMPLES The following are concrete, copy-pasteable example requests. Replace YOUR_API_KEY with your actual API key. Example 1 - Latest news, single keyword. URL: https://newsdata.io/api/1/latest?apikey=YOUR_API_KEY&q=pizza Example 2 - Latest news, multiple filters. URL: https://newsdata.io/api/1/latest?apikey=YOUR_API_KEY&q=elections&country=us,in&language=en&category=politics Example 3 - Latest news in the last 30 minutes. URL: https://newsdata.io/api/1/latest?apikey=YOUR_API_KEY&q=earthquake&timeframe=30 Example 4 - Latest news in the last 2 hours. URL: https://newsdata.io/api/1/latest?apikey=YOUR_API_KEY&q=food&timeframe=2 Example 5 - Fetch one article by id. URL: https://newsdata.io/api/1/latest?apikey=YOUR_API_KEY&id=668de67f2c32ce652104e7c4a5c9b517 Example 6 - Fetch several articles by ids. URL: https://newsdata.io/api/1/latest?apikey=YOUR_API_KEY&id=668de67f2c32ce652104e7c4a5c9b517,8c2cc0fdb87a3382876dca3448eb4cbc,ad77254cb843184f371908e1b984e517 Example 7 - Top-tier domains only. URL: https://newsdata.io/api/1/latest?apikey=YOUR_API_KEY&q=ai&prioritydomain=top Example 8 - Exclude a domain. URL: https://newsdata.io/api/1/latest?apikey=YOUR_API_KEY&q=ronaldo&excludedomain=nytimes.com Example 9 - Sort by publish date ascending (oldest first). URL: https://newsdata.io/api/1/latest?apikey=YOUR_API_KEY&q=climate&sort=pubdateasc Example 10 - Pagination (use the `nextPage` from a previous response). URL: https://newsdata.io/api/1/latest?apikey=YOUR_API_KEY&q=football&page=XXXPPPXXXXXXXXXX Example 11 - Crypto, search Bitcoin from CoinDesk only. URL: https://newsdata.io/api/1/crypto?apikey=YOUR_API_KEY&q=Bitcoin&domain=coindesk Example 12 - Crypto, blockchain tag. URL: https://newsdata.io/api/1/crypto?apikey=YOUR_API_KEY&q=Bitcoin&tag=blockchain Example 13 - Crypto, by coin. URL: https://newsdata.io/api/1/crypto?apikey=YOUR_API_KEY&coin=BTC,ETH Example 14 - Market endpoint, Amazon news. URL: https://newsdata.io/api/1/market?apikey=YOUR_API_KEY&q=amazon Example 15 - Market endpoint, by ticker. URL: https://newsdata.io/api/1/market?apikey=YOUR_API_KEY&symbol=AMZN Example 16 - Archive, single keyword. URL: https://newsdata.io/api/1/archive?apikey=YOUR_API_KEY&q=FIFA_World_Cup Example 17 - Archive, with date range. URL: https://newsdata.io/api/1/archive?apikey=YOUR_API_KEY&q=war&from_date=2023-02-02&to_date=2023-05-02 Example 18 - Sources in India. URL: https://newsdata.io/api/1/sources?apikey=YOUR_API_KEY&country=in Example 19 - Sources in French language. URL: https://newsdata.io/api/1/sources?apikey=YOUR_API_KEY&language=fr Example 20 - Sources in politics. URL: https://newsdata.io/api/1/sources?apikey=YOUR_API_KEY&category=politics Example 21 - Count of articles about "electric vehicle" Jan-May 2025. URL: https://newsdata.io/api/1/count?apikey=YOUR_API_KEY&q=electric+vehicle&from_date=2025-01-01&to_date=2025-05-01 Example 22 - Count by day for "modi" across US and India. URL: https://newsdata.io/api/1/count?apikey=YOUR_API_KEY&q=modi&country=us,in&from_date=2025-01-01&to_date=2025-01-31&interval=day Example 23 - Market count by ticker. URL: https://newsdata.io/api/1/market/count?apikey=YOUR_API_KEY&symbol=AMZN&from_date=2024-12-25&to_date=2025-11-23&interval=all Example 24 - Sentiment filter (paid plans only). URL: https://newsdata.io/api/1/news?apikey=YOUR_API_KEY&q=Modi&sentiment=positive Example 25 - Exclude the publish date field from each result. URL: https://newsdata.io/api/1/latest?apikey=YOUR_API_KEY&q=games&excludefield=pubdate Example using a CURL-style HTTP client (illustrative; CURL is a command-line HTTP client): curl "https://newsdata.io/api/1/latest?apikey=YOUR_API_KEY&q=bitcoin&country=us&language=en" # RESPONSE EXAMPLES The success envelope returned by the news endpoints (/latest, /archive, /crypto, /market) has this top-level shape: { "status": "success", "totalResults": , "results": [ { ...article object... }, ... ], "nextPage": "" } A single article object contains the following fields (presence of some fields depends on plan and endpoint): article_id - Unique string identifier for the article (used with `id`). title - String. Article title. link - String. Canonical URL of the original article. keywords - Array of strings, or null. Topical keywords. creator - Array of strings, or null. Author(s). video_url - String URL of an embedded video, or null. description - Short description/lead paragraph. content - Full article body (paid plans only; otherwise truncated). pubDate - String. Publish date/time, format "YYYY-MM-DD HH:MM:SS" (UTC, Coordinated Universal Time). image_url - String URL of the featured image, or null. source_id - String identifier of the publishing source. source_priority - Integer / numeric tier of the source. source_name - Human-readable source name. source_url - String, root domain of the source. source_icon - String URL to the source's favicon/logo. language - String. Detected language code. country - Array of strings. Country code(s) attributed to the article. category - Array of strings. NewsData.io categories. ai_tag - Array of strings. AI-classified narrow tags (paid). ai_region - Array of strings. AI-detected regions (paid). ai_org - Array of strings. AI-detected organisations (paid). sentiment - String. "positive", "negative", or "neutral" (paid). sentiment_stats - Object with sentiment confidence distribution (paid). ai_summary - String. AI-generated summary of the article (paid). duplicate - Boolean. true if NewsData.io's internal algorithm flags the article as a duplicate. coin - Array of strings. Cryptocurrency symbols mentioned (CRYPTO endpoint only). datatype - String. One of: news, blog, multimedia, forum, press release, review, research, opinion, analysis, podcast. Illustrative success response (abridged): { "status": "success", "totalResults": 12345, "results": [ { "article_id": "668de67f2c32ce652104e7c4a5c9b517", "title": "Lenders want AI to turn months of paperwork into one-day loans", "link": "https://cryptoslate.com/a-lender-wants-ai-to-turn-...", "keywords": ["AI", "lending", "blockchain"], "creator": ["Jane Doe"], "video_url": null, "description": "A short description of the article.", "content": "Full content available on paid plans.", "pubDate": "2026-06-17 14:32:11", "image_url": "https://cryptoslate.com/image.jpg", "source_id": "cryptoslate", "source_name": "CryptoSlate", "source_url": "https://cryptoslate.com", "source_icon": "https://cryptoslate.com/favicon.ico", "source_priority": 1, "language": "english", "country": ["united states of america"], "category": ["business"], "ai_tag": ["fintech", "private credit"], "ai_region": ["north america"], "ai_org": ["Coinbase"], "sentiment": "neutral", "sentiment_stats": {"positive": 0.21, "neutral": 0.65, "negative": 0.14}, "ai_summary": "AI lenders are proposing...", "duplicate": false, "coin": ["BTC"], "datatype": "news" } ], "nextPage": "1718640000XXXPPPxxxxxxxxxxxxxxxx" } Illustrative /sources response shape: { "status": "success", "totalResults": 100, "results": [ { "id": "bbc", "name": "BBC News", "url": "https://www.bbc.com/news", "icon": "https://www.bbc.com/favicon.ico", "priority": 1, "description": "British Broadcasting Corporation news service.", "category": ["top", "world"], "language": ["english"], "country": ["united kingdom"] } ] } Illustrative /count response shape (interval=day): { "status": "success", "totalResults": 1450, "results": [ {"date": "2025-01-01", "count": 23}, {"date": "2025-01-02", "count": 47} ] } Error response shape (returned with non-2xx HTTP status): { "status": "error", "results": { "code": "", "message": "" } } # SDKS AND LIBRARIES NewsData.io maintains an official SDK suite on GitHub under the organisation https://github.com/newsdataapi. The repositories cover: Officially maintained SDKs (per the public org listing): - Python SDK (package name: `newsdataapi` on PyPI, Python Package Index) - Node.js SDK - PHP SDK - Java SDK - React hooks SDK (hooks: useLatestNews, useCryptoNews, useMarketNews, others; published to npm (Node Package Manager) - .NET SDK [Listed in marketing as supported.] - Go SDK [Listed in marketing as supported.] - Dart / Flutter SDK [Listed in marketing as supported.] Each SDK is documented to wrap all endpoints (latest, archive, sources, crypto, market, count, crypto/count, market/count) with consistent behaviour across languages: - Parameter validation (whitelisted parameter names and values). - Automatic retries with exponential backoff. - Pagination helpers (manual cursor, auto-merge, generator/iterator). - Typed exception hierarchy. - Configurable HTTP timeout, retry counts, retry caps, pagination delay, proxy support, and custom Accept-Language header. Python SDK details (canonical reference example): Installation: pip install newsdataapi Minimal usage: from newsdataapi import NewsDataApiClient with NewsDataApiClient("YOUR_API_KEY") as client: response = client.latest_api(q="bitcoin", country="us", language="en") for article in response["results"]: print(article["title"], "-", article["link"]) Supported Python versions: 3.8 through 3.14. Runtime dependency: `requests`. Client constructor options (Python): apikey (string, required) request_timeout (int, seconds; default 30) max_retries (int; default 5) retry_backoff (float seconds base; default 2.0; exponential) retry_backoff_max (float seconds cap per retry; default 60.0) pagination_delay (float seconds between pages; default 1.0) max_result (int cap on merged results in scroll mode; default None) max_pages (int cap on pages yielded in paginate mode; default None) proxies (dict; passed to requests.Session.get) accept_language (string for Accept-Language header) include_headers (bool; if True, returned dicts include response_headers) base_url (string; override for staging or proxied environments) session (requests.Session; inject your own) folder_path (string; default folder for save_to_csv; default None) Default retry sleep schedule (Python): 2s -> 4s -> 8s -> 16s -> 32s, capped at 60s per retry. 429 responses honor the `Retry-After` header in both integer-seconds and HTTP-date forms. Pagination modes (Python): - Single request (default). response = client.latest_api(q="news") - Auto-merge across pages (scroll). merged = client.latest_api(q="news", scroll=True, max_result=200) - Page-by-page generator (paginate). for the client page.latest_api(q="news", paginate=True, max_pages=5): ... `scroll` and `paginate` are mutually exclusive. Exception hierarchy (Python): NewsdataException ├── NewsdataValidationError (also a ValueError; carries .param) ├── NewsdataAPIError (carries .status_code, .response_body) │ ├── NewsdataAuthError (HTTP 401 / 403) │ ├── NewsdataRateLimitError (HTTP 429; carries .retry_after) │ └── NewsdataServerError (HTTP 5xx) └── NewsdataNetworkError (carries .original cause) Node.js / React SDK installation: npm install newsdataapi React hook usage: import useNewsDataApiClient from "newsdataapi"; const { latest, archive, crypto, source, market, count } = useNewsDataApiClient("YOUR_API_KEY"); const data = await latest({ q: "bitcoin", country: "us", language: "en" }); PHP SDK: published with built-in parameter validation, retries, and pagination support. [Specific package name and install command not captured in surveyed materials.] Java SDK: typed methods for real-time, historical, crypto, and market news with validation, retries, and typed errors. Official MCP Server (Model Context Protocol): - Exposes NewsData.io endpoints as MCP tools. - Compatible with: Claude Desktop, Claude Code, Cursor, Zed, Cline, VS Code Copilot, Windsurf, ChatGPT, and other MCP-compatible AI clients. # INTEGRATIONS Documented integrations/connectors: - Microsoft Power Automate / Power Apps connector Path: https://learn.microsoft.com/en-us/connectors/newsdataio/ Available in Power Automate and Power Apps environments. Connection is not shareable across users; each user must authenticate with their own API key. - MCP Server for AI assistants (see SDKs and Libraries). - Free datasets repository (CSV / JSON) under CC BY 4.0 for direct ingestion into ML / NLP pipelines. Common integration patterns referenced in the docs/blog: - React applications using the React hooks SDK. - Python data science / Jupyter notebooks ingesting via the Python SDK. - Node.js back-ends polling the API on cron schedules. - WordPress and Content Management System (CMS) plugins. - Trading bots and crypto dashboards using the /crypto endpoint. - Brand monitoring / Public Relations (PR) dashboards using the q, domain, and prioritydomain filters. - LangChain, LlamaIndex, and other Retrieval-Augmented Generation (RAG) pipelines that ingest news as a real-time data source. # RATE LIMITS Rate limits are enforced per API key on a rolling 15-minute window. Free plan: 30 credits per 15 minutes (= up to 300 articles per 15 minutes at 10 articles/credit) 200 credits per day total Paid plans (Basic, Professional, Corporate): 1,800 credits per 15 minutes (= up to 90,000 articles per 15 minutes at 50 articles/credit) Monthly credit allocations (the larger envelope that the per-15-minute The rate is bounded by: Free: 200 credits/day (≈ 6,000 credits/month). Basic: 20,000 credits/month (= 1,000,000 articles/month at 50 articles/credit). Professional: 50,000 credits/month (= 2,500,000 articles/month). Corporate: 1,000,000 credits/month (= 50,000,000 articles/month). Custom/Enterprise: unlimited, by negotiation. When the per-15-minute window is exceeded, the API returns HTTP 429 Too Many Requests. Clients should honor the `Retry-After` header (HTTP standard; expressed as either integer seconds or an HTTP-date) and implement exponential backoff with jitter. When the daily/monthly credit balance is exhausted, requests return an error indicating quota exhaustion, and resume at the start of the next billing period period (or the next day on the free plan). Special credit accounting: - /archive endpoint: 5 credits per request (not 1). - /count, /crypto/count, /market/count endpoints: 50 credits per request. - Requests that return zero results or fail due to invalid parameters: NOT counted against credits. # PAGINATION Pagination model: cursor-based (opaque token), not offset-based. Mechanism: 1. Make an initial request (e.g., GET /latest with your query). 2. Inspect the `nextPage` field in the response. If non-null, it contains an opaque cursor string. 3. Make a follow-up request to the same endpoint with the same query and add `page=`. 4. Repeat until `nextPage` is null or empty. Page size: - Free plan: 10 articles per page (= 1 credit per page). - Paid plans: 50 articles per page (= 1 credit per page; some endpoints cost 5 or 50 credits per page). Per-page credit cost: - /latest, /crypto, /market, /sources: 1 credit per page. - /archive: 5 credits per page. - /count, /crypto/count, /market/count: 50 credits per page. Manual pagination pseudocode: next_page = None while True: response = GET /latest?apikey=KEY&q=pizza&page=next_page process(response.results) next_page = response.nextPage if next_page is None or next_page == "": break SDK helpers (Python example): - Auto-merge mode (scroll=True): fetches subsequent pages and merges all results into one combined response, truncating at max_result. - Generator mode (paginate=True): yields one response per page; stops at max_pages or when nextPage is null. Best for memory efficiency at scale. Common pagination pitfalls: - Reusing an old `nextPage` cursor with different query parameters yields undefined results - always pass the same query. - Cursors may expire; production code should fall back to a fresh initial request if a `page` cursor is rejected. - The total page count is not directly returned; iterate until nextPage is empty. # FILTERS AND SEARCH NewsData.io exposes filtering at three layers - text/search, attribute, and AI-enhanced - all combinable in the same request unless noted. Text/search filters: - q - full-text search across the article. - qInTitle - title-only search (cannot combine with qInMeta). - qInMeta - search across URL + meta description + meta keywords + title (cannot combine with qInTitle). - id - specific article id(s). - url - specific source URL. Boolean operators in search queries: - AND - both terms must appear. Example: q=bitcoin AND regulation - OR - either term must appear. Example: q=bitcoin OR ethereum - NOT - exclude. Example: q=bitcoin NOT crash - "..." - exact phrase. Example: q="rate hike" - () - group. Example: q=(bitcoin OR ethereum) AND etf Note: The free plan has a 100-character maximum on the q value. Attribute filters (include-only or exclude-only per group): - country / excludecountry - language / excludelanguage - category / excludecategory - domain / excludedomain - domainurl - prioritydomain (top | medium | low) - timeframe (hours or minutes) - from_date / to_date - image (0 or 1) - video (0 or 1) - full_content (0 or 1) - size (page size, bounded by plan) AI / advanced filters (Professional or Corporate, with some on lower tiers): - tag - AI topical tags. - sentiment - positive/negative/neutral. - region - AI-detected geographic regions. - org - AI-detected organisations. - coin - cryptocurrency symbol (crypto endpoint). - symbol - stock ticker (market endpoint). - ai_summary (0 or 1) - include AI summary. Sort options: - pubdate (default) - pubdateasc - relevancy - source Response shaping: - excludefield - list of fields to drop from each article in the result set (e.g., excludefield=pubdate,imageurl). Combining filters: - All include filters are applied with implicit AND across categories (e.g., country=us AND language=en AND category=politics). - Within one parameter, comma-separated values are OR (e.g., country=us, in means United States OR India). - include and exclude variants of the same dimension cannot be combined. Search the /sources endpoint by country, language, category, and domain priority to discover publisher IDs to feed into the `domain` or `excludedomain` filter on the article endpoints. # WEBHOOKS Public documentation does NOT describe a webhook, push notification, WebSocket, or Server-Sent Events (SSE) delivery mechanism for NewsData.io as of compile date. All data delivery is pull-based via HTTPS GET to the REST endpoints. Recommended substitute pattern for near-real-time delivery: 1. Define a saved query in the dashboard (or assemble one in code). 2. Poll /latest on a schedule (e.g., every 1-5 minutes for paid plans, every 15-30 minutes for the free plan to respect rate limits). 3. Deduplicate using `article_id` and the `duplicate` flag. 4. Push matches into your own webhook bus, queue, or message broker. If a webhook capability is required, contact contact@newsdata.io to inquire about enterprise / custom arrangements. # ERROR CODES NewsData.io uses standard HTTP status codes plus a JSON error body of the form: { "status": "error", "results": { "code": "", "message": "" } } Documented and observed status codes: 200 OK Successful request. Inspect the `status` field of the body - it should read "success". 400 Bad Request Malformed request URL or invalid combinations of parameters. Common causes: - Using qInTitle and qInMeta together. - Using country and excludecountry together. - Using language and excludelanguage together. - Invalid date format. 401 Unauthorized Missing or invalid API key. In SDKs, surfaces as NewsdataAuthError. 403 Forbidden Authenticated, but the request is not permitted for the plan (e.g., requesting `sentiment` filter on a free plan, or /count on a free plan). In SDKs also surfaces as NewsdataAuthError. 404 Not Found The endpoint path is wrong, or the article ID does not exist. 409 Conflict / 422 Unprocessable Entity Validation errors on parameters (e.g., page cursor invalid, value out of accepted range). [422 inferred from SDK exception NewsdataValidationError; not always returned by the upstream API.] 429 Too Many Requests Rate limit (per-15-minute window) exceeded, or daily/monthly credit quota exhausted. Response includes a `Retry-After` header. SDKs surface as NewsdataRateLimitError carrying `retry_after` (seconds). 500 Internal Server Error Server-side failure. Retry with exponential backoff. SDKs surface as NewsdataServerError. 502 Bad Gateway / 503 Service Unavailable / 504 Gateway Timeout Transient upstream issues. Retry with backoff. Common machine-readable error codes (analogous patterns also used by other news APIs and consistent with the message field): - apiKeyMissing - API key not supplied. - apiKeyInvalid - API key not recognised or revoked. - parameterInvalid - A parameter value is invalid or unsupported. - parametersMissing - Required parameters are missing (e.g., from_date or to_date on /count endpoints). - rateLimited - Rate limit exceeded; back off and retry. - sourcesTooMany - Too many sources requested in one call (above plan cap of 5 or 10). - quotaExceeded - Daily or monthly credit limit reached. - planUpgradeRequired - Feature requires a higher plan (e.g., sentiment, full_content, count endpoints on free plan). Client-side handling guidance: - For 429: read `Retry-After` and sleep that long, then retry. Add jitter to avoid thundering-herd retries. - For 5xx: exponential backoff (e.g., 2s, 4s, 8s, 16s, 32s, cap 60s). - For 4xx (except 429): fix the request; do not retry blindly. - Always log the response body for diagnostics; the JSON `message` field often pinpoints the offending parameter. # PRICING Currency: United States Dollar (USD). Billing options: monthly or annual. Annual plans receive a documented 20% discount (the equivalent of roughly two months free) versus monthly billing. Payment methods: credit and debit cards by default; alternative methods can be arranged by emailing contact@newsdata.io. The free plan does not require credit card details. Free Plan Price: $0 Credits/day: 200 Articles/credit: 10 Articles/day cap: 2,000 Real-time delivery: No - 12-hour delay q max length: 100 characters Sentiment filter: Not available Full content: Not available Archive endpoint: Not available Count endpoints: Not available Crypto/Market: Available with a 12-hour delay Per-15-min limit: 30 credits Commercial use: Permitted Basic Plan Price: US$199.99/month or US$1,919.99/year Credits/month: 20,000 Articles/credit: 50 Real-time delivery: Yes Archive coverage: Past 6 months Crypto endpoint: Yes (real-time) Market endpoint: Yes (real-time) Count endpoint: Yes Sentiment / AI tags: Limited Per-15-min limit: 1,800 credits Add-on credits: US$0.006 per credit Professional Plan Price: US$349.99/month or US$3,359.99/year Credits/month: 50,000 Articles/credit: 50 Real-time delivery: Yes Archive coverage: Past 2 years Sentiment filter: Yes AI tags / AI region / AI org: Yes AI summary: Yes Count endpoint: Yes Per-15-min limit: 1,800 credits Add-on credits: US$0.006 per credit Corporate Plan Price: US$1,299.99/month or US$9,989.99/year Credits/month: 1,000,000 Articles/credit: 50 Real-time delivery: Yes Archive coverage: Past 10 Years All AI/sentiment features: Yes Per-15-min limit: 1,800 credits Add-on credits: US$0.006 per credit Custom / Enterprise Plan Price: Custom (contact sales). Credits: Unlimited / negotiated. Articles/credit: Customizable. Archive coverage: Up to 10 Years (extendable on request). Additional features: Advanced search, analytics, saved searches, download in Excel/CSV, CORS enabled for all origins, custom AI tag training, dedicated account management, custom integrations. Add-on credits (available on Basic, Professional, Corporate): purchasable mid-billing-period at US$0.006 per credit, useful for traffic spikes (elections, market shocks, breaking news cycles). Plan downgrade: handled via support email at hello@newsdata.io. Subscription cancellation: available directly from the user dashboard ("Cancel Subscription"). Cancellation stops auto-renewal and prevents further charges. Upgrades are instant once payment is processed. # BEST PRACTICES API key management: - Never embed the key in front-end JavaScript or mobile binaries. Proxy through a server-side component. - Store the key in a secrets manager or environment variables. - Rotate the key periodically; create separate keys for development, staging, and production where supported. Credit/quota efficiency: - Cache results aggressively. A 60-minute server-side cache on a single query keeps a 50,000-pageview-per-day site within free-tier limits. - Use `excludefield` to drop unused fields and reduce bandwidth. - Use the most specific filters available (country + language + category) to reduce wasted credits on irrelevant pages. - Prefer `qInTitle` over `q` when you only care about headlines - smaller result sets mean fewer pages and fewer credits. - Use `/count` to gauge result volume before paginating deeply on `/archive` - at 5 credits per archive page, deep pagination is costly. Pagination: - Always test for empty/null `nextPage` to terminate loops. - Add a small `pagination_delay` (1+ seconds) between page requests when iterating to avoid hitting the 15-minute rate ceiling. - Cap your iteration with an explicit `max_pages` to prevent runaway loops. Reliability: - Retry 429 and 5xx with exponential backoff and jitter. - Honor the `Retry-After` header on 429. - Set a sensible request timeout (10-30 seconds). - Keep a fallback "stale-while-revalidate" cache so transient outages don't surface to end users. Data hygiene: - Deduplicate using both `article_id` and the `duplicate` flag. - Validate `pubDate` parsing (assume UTC unless documented otherwise). - Sanitize HTML/text in `title`, `description`, and `content` before rendering - treat all article fields as untrusted input. - Track and surface attribution: include `source_name` and a link back to `link` to respect publisher copyright and avoid legal exposure. Search queries: - Quote multi-word phrases with double quotes for exact matches. - Use boolean operators (AND, OR, NOT) explicitly when narrowing. - For Indian-language or non-English coverage, set both `country` and `language` to maximize precision. - Profile your queries with the dashboard before encoding them into production code. AI features: - `sentiment` is a coarse three-way label, not a confidence score; check `sentiment_stats` for the distribution where available. - `ai_summary` is generated from `content`; quality depends on full content availability. - `ai_tag` is narrower than `category` - use both for layered filtering. # COMMON WORKFLOWS Workflow 1 - Build a niche news aggregator website. 1. Decide your topic (e.g., "EV (Electric Vehicle) news, India only"). 2. Query: /latest?q=electric+vehicle&country=in&language=en&category=technology 3. Cache the response for 30-60 minutes server-side. 4. Render titles, descriptions, source names, and links on the page. 5. Always link back to the original article (`link` field) for attribution. Workflow 2 - Power a daily email digest. 1. Cron job runs once daily. 2. Calls /latest?q=YOUR_TOPIC&timeframe=24. 3. Iterates pages until `nextPage` is null (or capped at N pages). 4. Renders a digest email with title, description, source, and link. 5. Stores `article_id`s to deduplicate across days. Workflow 3 - Train a sentiment-analysis model. 1. Subscribe to a Professional or Corporate plan. 2. Use /archive to pull a historical corpus with sentiment labels. 3. Use sentiment + ai_tag + content fields as features / labels. 4. Alternatively, download the free CC BY 4.0 datasets from the NewsData.io GitHub for prelabeled training data. Workflow 4 - Crypto trading dashboard. 1. /crypto?coin=BTC, ETH&timeframe=60 every 5 minutes (paid plan). 2. Filter by sentiment to surface market-moving news. 3. Push to a Slack channel or chat tool via a webhook of your own. Workflow 5 - Brand monitoring. 1. /latest?qInTitle=YourBrand&prioritydomain=top 2. Schedule polling every 10-30 minutes. 3. Deduplicate by `article_id`; alert on new mentions. Workflow 6 - Investigative research (look back over months). 1. /archive?q=topic&from_date=2024-01-01&to_date=2024-12-31 2. Paginate; expect 5 credits per page. 3. Use /count first to size the dataset and plan credits. Workflow 7 - RAG pipeline for an AI assistant. 1. Periodically pull /latest with topic filters. 2. Chunk and embed `title + description + content` (paid for content). 3. Store embeddings in a vector database (e.g., Pinecone, Weaviate, pgvector, Chroma, Qdrant). 4. Cite `source_name` and `link` whenever the assistant uses an article. Workflow 8 - Multi-language local news app. 1. /latest?country=in&language=hi, en, bn, ta, te (paid plan to exceed 5 languages). 2. Group by language and display localized tabs. 3. Cache per language for 30 minutes. Workflow 9 - Country comparison analytics. 1. /count?q=elections&country=us,in&from_date=...&to_date=...&interval=day 2. Plot the daily counts side-by-side. Workflow 10 - Auto-blogging into a Content Management System (CMS). 1. Cron job polls /latest with profile-specific filters. 2. For each new `article_id`, create a CMS post containing the title, excerpt, image (sideloaded from `image_url`), source name, and a prominent link to the original article. 3. Default to draft status for human review; never republish full `content` verbatim - paraphrase or summarize to respect publisher copyright. # TUTORIALS Documentation blog (https://newsdata.io/blog/category/documentation) lists endpoint guides authored by the NewsData.io team. Notable tutorials and guides cited as canonical reference content: - "How to get the NewsData.io API key" - onboarding walkthrough. - "Latest News Endpoint: In Detail" - every parameter on /latest. - "All about News Archive Endpoint" - /archive parameters and credit cost. - "All About Market Endpoint In NewsData.io" - /market parameters, symbol filter, tags, sentiment. - "Crypto News API Endpoints" - /crypto parameters, coin and tag filters. - "All about News 'Sources' Endpoint" - /sources parameters. - "All About News Count (Count Endpoint)" - /count usage and credit cost. - "Newsdata.io News API Response Objects" - full response field reference. - "All About Pagination in NewsData.io News API" - manual and SDK-managed pagination patterns. - "Rate Limit of NewsData.io" - per-15-minute and per-month limits. - "How NewsData.io Credits Are Consumed" - credit semantics across plans. - "All About Pricing Plans" - pricing breakdown. - "Exploring the 'Sentiment' and 'Tag' parameters" - AI filters. - "Q, qInTitle, qInMeta" - search parameter behaviour. - "How To Use News API In React" - React hooks SDK quickstart. Recommended learning sequence for a new developer: 1. Sign up and read the API key onboarding guide. 2. Run the /latest example with a simple q. 3. Layer in country, language, and category filters. 4. Add pagination using `nextPage`. 5. Explore /sources to discover publisher IDs. 6. Try /archive (paid only) for historical data. 7. Try /count for analytics workloads. 8. Upgrade to Professional to use sentiment, tag, and ai_summary. 9. Add an SDK and replace handwritten HTTP code. 10. Wire to your application (web app, dashboard, RAG, etc.). # FAQS Q: Is a credit card required to sign up? A: No. The free plan does not require credit or debit card details. Q: Can the free plan be used commercially? A: Yes. Commercial use is permitted on the free plan. Q: What is an API credit? A: It is an HTTP request to one of the endpoints that returns a result. Free users get 10 articles per credit; paid users get 50 articles per credit. Failed requests or requests with wrong parameters are not counted. Q: Are archive and count endpoints metered differently? A: Yes. Each /archive call costs 5 credits. Each /count, /crypto/count, or /market/count call costs 50 credits. Q: What is the difference between the free and paid plans? A: Free has a 12-hour delay on articles, 200 credits/day, 10 articles/credit, q value capped at 100 characters, no access to full content, sentiment, count endpoints, or archive. Paid plans get real-time data, 50 articles/credit, full content (where available from publisher), access to all endpoints, and AI features depending on tier. Q: How many languages and countries are supported? A: ~89 languages and 200+ countries (commonly cited as 206+). Q: How many news categories are supported? A: 17-18 categories: business, crime, domestic, education, entertainment, environment, food, health, lifestyle, other, politics, science, sports, technology, top, tourism, world, plus implicit "uncategorized" content. Q: How many news sources are indexed? A: Marketing materials cite 84,000+ to 90,000+ sources depending on date. Q: Does NewsData.io return full article content? A: Full content is available on paid plans only; the `content` field on free is truncated. Q: Does NewsData.io provide webhooks? A: No public webhook delivery is documented. Use polling. Q: Are there SDKs? A: Yes - Python, Node.js, PHP, Java, React (hooks), and additional languages (.NET, Go, Dart/Flutter) per the official GitHub organization (https://github.com/newsdataapi). Q: How is the API key passed? A: As the `apikey` query string parameter. Some integrations also accept an `X-ACCESS-KEY` header. Q: How long is the historical archive? A: 6 months on Basic, 2 years on Professional, 10 Years on Corporate, up to 7-8 years on custom plans. Q: How do I paginate? A: Read `nextPage` from the response and pass it as `page` in the next request. Repeat until `nextPage` is null/empty. Q: How do I cancel my subscription? A: From the dashboard, click "Cancel Subscription". This stops automatic renewal and prevents further charges. Q: How do I downgrade? A: Email hello@newsdata.io for assistance. Q: What payment methods are accepted? A: Credit and debit cards by default. Alternative methods can be arranged by emailing contact@newsdata.io. Q: Is there a free trial of paid plans? A: No formal free trial is documented; the free plan acts as the trial. Q: What output formats are available? A: API responses are JSON. The dashboard offers JSON, CSV, and Excel exports of saved searches for paid users. Q: Is the API CORS-enabled? A: CORS enabled for all origins is advertised as a custom/enterprise feature. Best practice on all tiers is to call from your back end. Q: Does NewsData.io provide sentiment analysis? A: Yes - positive / negative / neutral, plus a sentiment_stats distribution on paid plans. The `sentiment` filter is restricted to Professional and Corporate plans on the news endpoint. Q: Can I use NewsData.io with Claude, ChatGPT, Cursor, or other AI tools? A: Yes - via the official MCP server, which exposes the API endpoints as tools to any MCP-compatible client. # LIMITATIONS Documented limitations of the API and product: Free plan: - 12-hour delay on all articles (no real-time access). - 200 credits/day; effectively 2,000 articles/day. - 30 credits per 15-minute window. - q parameter limited to 100 characters. - No access to /archive, /count, /crypto/count, /market/count endpoints. - No `sentiment` filter on news endpoint. - Truncated `content` field (no full article body). - Up to 5 (not 10) values for country, language, category, domain, etc. Per-request caps: - Up to 50 article ids in a single `id` filter. - Up to 5 country / language / category / domain values on Free and Basic plans; up to 10 on Professional and Corporate plans. Endpoint-level limits: - /market is a beta endpoint; schema and behavior may change. - /archive costs 5 credits per page; deep historical sweeps are expensive. - /count endpoints cost 50 credits per call. Functional limitations: - No webhook / push delivery - only polling. - No WebSocket or SSE feed. - No bulk export through the API itself (use dashboard saved searches to export CSV/Excel/JSON). - No SLA (Service Level Agreement) is publicly documented for the free plan; enterprise SLAs would be negotiated. Content limitations: - Some publishers limit excerpt length; `content` may be short on certain articles even with paid plans, due to upstream restrictions. - Historical coverage may be sparser for low-resource languages and smaller publications, especially before 2018. - AI features (sentiment, tag, summary) are model-dependent and may carry classification error; downstream applications should not treat them as ground truth without validation. Compliance / legal: - Articles remain copyrighted by their original publishers; redistribution of full content without permission may violate copyright. Best practice is to display short excerpts with attribution and a link back to the source, or to summarize/paraphrase rather than republish verbatim. # CHANGELOG SUMMARY NewsData.io does not currently publish a public, dated changelog at a well-known URL. The following are observable product additions inferred from documentation, blog posts, and SDK release notes: - Market News endpoint (/market) added - published as beta. Filters include `symbol` for stock tickers and `tag` for AI topics. - Count endpoints (/count, /crypto/count, /market/count) added - provide aggregate article counts on hourly or daily intervals; cost 50 credits per call; require from_date and to_date. - Multiple API keys per account (referenced in /blog/multiple-api-key-newsdata-io). - AI feature expansion: ai_tag, ai_region, ai_org, ai_summary, sentiment, sentiment_stats added to article objects on paid tiers. - duplicate flag added to article objects to expose internal dedupe. - Sort parameter values expanded to include pubdateasc, relevancy, and source. - excludefield parameter added to allow response field suppression. - url parameter added to fetch a specific article by source URL. - prioritydomain (top/medium/low) added as a domain authority filter. - Official MCP server published, exposing NewsData.io as a tool for Claude, ChatGPT, Cursor, Zed, Cline, VS Code Copilot, Windsurf, Windsurf, and others. - Python SDK v0.2.0 published on PyPI with retry, pagination, and typed error handling; supports Python 3.8 through 3.14. - React hooks SDK published on npm. - Free CC BY 4.0 datasets published on GitHub for ML/NLP training. For exact date release notes, consult the official documentation page and the GitHub release tags under https://github.com/newsdataapi. # GLOSSARY API (Application Programming Interface). A set of HTTP endpoints exposed by NewsData.io for programmatic access to news data. API key (apikey). The per-account secret string used to authenticate every request to the NewsData.io API. API credit. The metering unit of the NewsData.io API. One credit equals one successful HTTP request on most endpoints (5 credits on /archive, 50 credits on /count endpoints. Free accounts receive 200 credits/day. article_id. A unique string identifier assigned to each indexed article; used with the `id` filter for direct fetch. Archive endpoint. /api/1/archive - historical news, costs 5 credits per call, plan-gated by date range. base URL. https://newsdata.io/api/1 - the prefix for all endpoint paths is appended to. categories. The fixed taxonomy NewsData.io applies to articles. The documented values: business, crime, domestic, education, entertainment, environment, food, health, lifestyle, other, politics, science, sports, technology, top, tourism, world. Some materials cite 18 categories, including an implicit "uncategorized" bucket. CC BY 4.0 (Creative Commons Attribution 4.0). The license under which NewsData.io's free datasets are released - permits commercial use with attribution. coin. A response field and a crypto-endpoint filter representing cryptocurrency symbols mentioned in the article (e.g., BTC, ETH). CORS (Cross-Origin Resource Sharing). HTTP is a mechanism allowing browsers to make cross-domain requests; "CORS-enabled for all origins" is a feature on higher plans. count endpoint. /api/1/count and the crypto/market equivalents - return aggregate counts of articles per interval without article bodies. credit add-on. Pay-as-you-go credit top-ups at US$0.006/credit for spike absorption on paid plans. datatype. Field on each article. Values: news, blog, multimedia, forum, press release, review, research, opinion, analysis, podcast. duplicate. Boolean field on each article indicating NewsData.io's internal duplicate detection verdict. excludefield. Parameter to suppress specific fields from the JSON response. filter. Generic name for any query parameter that narrows results. free plan. Zero-cost plan with 200 credits/day, 12-hour delay, 100-char q limit, no archive/count/sentiment. full_content. Boolean parameter to include the full article body. Paid plans only. JSON (JavaScript Object Notation). The serialization format of NewsData.io's API responses. language. Two-letter language code (e.g., en, fr, hi, bn). market endpoint. /api/1/market - beta endpoint for financial / stock market/business news with `symbol` filter. MCP (Model Context Protocol). An open protocol for connecting AI assistants to external tools. NewsData.io publishes an official MCP server. nextPage. Opaque cursor string in API responses used to fetch the next page of results. prioritydomain. Filter for source authority tier: top (top 10%), medium (top 30%), low (top 50%). q / qInTitle / qInMeta. Full-text search parameters operating across the entire article, the title only, or the URL/meta fields only, respectively. rate limit. Per-key rolling limit: 30 credits/15 min on free, 1,800 credits/15 min on paid. REST (Representational State Transfer). The architectural style of the NewsData.io API - stateless HTTPS GET requests against resource URIs. retry_after. HTTP header (and SDK exception field) telling the client How long to wait before retrying after a 429 response? sentiment. AI-classified label per article: positive, negative, or neutral. source_id. Stable identifier for a publisher inside NewsData.io's index (usable in `domain` and `excludedomain` filters). symbol. Stock ticker filter on /market. tag (ai_tag). AI-classified narrow topical label per article. timeframe. Parameter restricting results to the most recent N hours (1-48) or N minutes (1-2880). totalResults. Top-level field in API responses indicating the total number of articles matching the query before pagination. # COMPLETE TECHNICAL REFERENCE The single-page technical reference below collapses the most important operational data points for rapid LLM retrieval. API base URL: https://newsdata.io/api/1 Authentication: API key via `apikey` query parameter, or `X-ACCESS-KEY` header (per integrations). Transport: HTTPS only. HTTP method: GET only. Response format: JSON, UTF-8. Time format: YYYY-MM-DD HH:MM:SS, UTC (assumed). Date format: YYYY-MM-DD. Endpoints: /latest - real-time news; 1 credit. /archive - historical news; 5 credits. /crypto - crypto news; 1 credit. /market - market/financial news; 1 credit; BETA. /sources - publisher directory; 1 credit. /count - article aggregate counts; 50 credits. /crypto/count - crypto aggregate counts; 50 credits. /market/count - market aggregate counts; 50 credits. Credit yield: Free: 10 articles / credit. Paid: 50 articles / credit. Plan caps: Free: 200 credits/day; 30 credits / 15 min. Basic: 20,000 credits/month; 1,800 credits / 15 min. Professional: 50,000 credits/month; 1,800 credits / 15 min. Corporate: 1,000,000 credits/month; 1,800 credits / 15 min. Plan prices (USD): Free: $0. Basic: $199.99/month or $1,919.99/year. Professional: $349.99/month or $3,359.99/year. Corporate: $1,299.99/month or $9,989.99/year. Add-on credits: $0.006 / credit. Archive depth by plan: Basic: 6 months. Professional: 2 years. Corporate: 10 Years. Custom: up to 10 years. Per-request maximums: ids per call: 50. countries/languages/categories/ domains per call (Free + Basic): 5. Same per call (Pro + Corporate): 10. Search operators in `q`: AND, OR, NOT, "exact phrase", ( ) for grouping. Sort values: pubdate (default), pubdateasc, relevancy, source. Response shaping: excludefield=field1,field2,... Pagination: Cursor-based via `nextPage` field; pass as `page=` on next request. Stop when `nextPage` is null/empty. Required parameters per endpoint: All: apikey. /count, /crypto/count, /market/count: apikey, from_date, to_date. Restricted parameters by plan: sentiment (news endpoint): Professional and Corporate only. ai_summary, ai_region, ai_org, advanced tag (10): Professional and Corporate only. full_content: Paid only. /count*: Not on Free. /archive: Not on Free. Real-time (no 12-hour delay): Not on Free. Status codes the client should handle: 200 Success - process body. 400 Bad request - fix the URL/parameters. 401 Unauthorized - check `apikey`. 403 Forbidden - plan does not allow this feature. 404 Not Found - wrong path or unknown article ID. 422 Validation error - invalid value (also surfaced by SDK as NewsdataValidationError). 429 Rate limited - honor `Retry-After`, back off, retry. 500/502/503/504 Server error - exponential backoff and retry. Machine-readable error codes (from documented and analogous patterns): apiKeyMissing, apiKeyInvalid, parameterInvalid, parametersMissing, rateLimited, sourcesTooMany, quotaExceeded, planUpgradeRequired. Article object fields (key set): article_id, title, link, keywords, creator, video_url, description, content, pubDate, image_url, source_id, source_name, source_url, source_icon, source_priority, language, country, category, ai_tag, ai_region, ai_org, sentiment, sentiment_stats, ai_summary, duplicate, coin (/crypto only), datatype. Datatype values: news, blog, multimedia, forum, press release, review, research, opinion, analysis, podcast. Category values (fixed taxonomy): business, crime, domestic, education, entertainment, environment, food, health, lifestyle, other, politics, science, sports, technology, top, tourism, world. Coverage summary: Sources: 84,000-97,000+ (varies by date cited). Countries: 200+ (often 206+). Languages: ~89. History: Up to 10 years on custom/enterprise plans. Webhooks: NOT offered. Use polling. SDKs (official, on GitHub https://github.com/newsdataapi): Python (PyPI: newsdataapi; Python 3.8-3.14; dep: requests), Node.js, PHP, Java, React hooks (npm: newsdataapi), .NET, Go, Dart/Flutter. MCP Server (official): Exposes NewsData.io endpoints as tools to MCP-compatible AI clients (Claude Desktop, Claude Code, Cursor, Zed, Cline, VS Code Copilot, Windsurf, ChatGPT, others). Integrations: Microsoft Power Automate / Power Apps connector (per-user API key). Free CC BY 4.0 datasets (CSV/JSON) on GitHub for ML/NLP. Support and contact: contact@newsdata.io - sales, partnerships, general. hello@newsdata.io - support, plan changes, downgrades. Documentation URLs: https://newsdata.io - Home. https://newsdata.io/documentation - Docs. https://newsdata.io/pricing - Pricing. https://newsdata.io/news-sources - Sources directory. https://newsdata.io/blog/category/documentation - Documentation blog. https://newsdata.io/crypto-news-api - Crypto product page. https://github.com/newsdataapi - SDK organization. https://pypi.org/project/newsdataapi/ - Python package. End of file. ================================================================================