Search1API

Changelog

Search1API's compatibility promise and a dated record of changes to the API, SDKs, CLI, and MCP server.

This page records changes across every developer surface: the HTTP API contract (endpoints, request and response fields, status codes, headers, billing semantics), the official SDKs, the CLI, and the MCP server. Each entry is tagged with the surface it affects. Product and dashboard updates live on the product changelog.

Current versions

SurfacePackageVersionReleased
TypeScript SDK@search1api/client0.2.12026-08-19
Python SDKsearch1api0.2.12026-08-19
CLIsearch1api-cli1.4.02026-08-25
MCP serversearch1api-mcp0.6.12026-09-03
LangChainsearch1api-langchain0.1.02026-07-29
n8nn8n-nodes-search1api0.1.32026-07-31
DeepSeek Harnessdsh-s10.1.02026-08-14
OpenCodeopencode-search1api0.1.12026-08-04
OpenClawopenclaw-search1api0.1.32026-08-04
Grok Buildgrok-search1api1.0.02026-08-04
Factory Droiddroid-s1unversioned2026-08-16

The HTTP API has no version number; it changes only additively, as described below.

Compatibility promise

Search1API does not version its API URLs. Instead, the contract only grows:

  • Additive changes ship without notice. New endpoints, new optional request fields, new response fields, new enum values, and new response headers can appear at any time. Ignore response fields you do not recognize.
  • Unknown request fields are ignored. Sending a field the API no longer reads does not fail the request.
  • Existing fields keep their name, type, and position. A field is never renamed, retyped, or moved inside the response.
  • Removals are announced here first. When an endpoint or field has to go, this page and the product changelog announce it before the change ships. A removed endpoint keeps answering with 410 Gone and a message that names its replacement.
  • Status codes are part of the contract. A change in what a status code means (for example, a zero-result search moving from 404 to 200) is recorded below with the date it shipped.

The machine-readable contract is the OpenAPI document. The official SDKs, CLI, and MCP server are built on it and pick up additive changes on their next release; their own releases follow semantic versioning and are listed here alongside API changes.

New request fields use snake_case (max_results, crawl_results, timeout_ms). A few older fields are camelCase (enableFallback, taskId, zipUrl) and stay that way; where it helps, the API accepts a snake_case alias alongside the original.

Changes

Tags: API (HTTP contract), SDK (TypeScript and Python clients), CLI (s1), MCP (hosted and stdio server), Integrations (framework and agent plugins), Docs.

2026-09-17

  • API: All error responses are JSON. Every error now carries ok: false, an error label, and a message. POST /crawl dead-link 404/410 responses previously returned plain text.
  • API: GET /deepcrawl/status/{taskId} returns 404 for an unknown task instead of 500 with an internal error message.
  • API: POST /sitemap 400 responses name the invalid field instead of a generic message.
  • API: POST /crawl accepts enable_fallback as an alias of enableFallback. Both spellings behave the same; enableFallback remains in the OpenAPI document.

2026-09-13

  • API: search_service: "sogou" removed from POST /search. Requests that send it now fail validation with 422; omit the field to let the API choose an engine.

2026-09-12

  • API: page added to POST /search for native SERP pagination on engines that support it (bing, bingcn, baidu). Other engines ignore it.

2026-09-11

  • API: search_service: "bingcn" added to POST /search.

2026-09-03

  • MCP: search1api-mcp 0.6.1 restores authentication on every /mcp request. 0.6.0 had let discovery methods through anonymously, which stopped many clients from ever starting OAuth: they treat the first 401 plus WWW-Authenticate as the signal to authorize. Unauthenticated requests, including initialize and tools/list, get that challenge again. Release notes.

2026-08-26

  • MCP: search1api-mcp 0.6.0 let initialize, ping, server/discover, tools/list, prompts/list, resources/list, and resources/read run without a credential so registry checkers could enumerate tools. Reverted in 0.6.1 (above).

2026-08-25

  • API: POST /sitemap with type: "sitemap" now reads the site's sitemap files instead of crawling links from the homepage.
  • CLI: search1api-cli 1.4.0 adds s1 learn, which turns a URL (or a documentation site with --site) into an installable Agent Skill. The CLI no longer prints its own billing estimate.

2026-08-21

  • API: POST /crawl dead links are billed as completed answers. When the target server itself returns 404 or 410, the API passes that status through with a message, and the request costs 1 credit, the same as a confirmed zero-result search. Service failures still return 502 and are not charged.
  • API: POST /crawl passes through upstream 400 reasons (for example, an unsupported URL scheme) instead of reporting 502.

2026-08-19

  • SDK: @search1api/client 0.2.1 and search1api (Python) 0.2.1 resync their vendored OpenAPI snapshot with the live contract: 404 is dropped from POST /search and POST /news, 403 is added to POST /screenshot, request-body types are regenerated, and every operation now carries its description. Package homepages point to s1.dev.
  • CLI: search1api-cli 1.3.1 adds a Codex plugin marketplace catalog and moves published URLs to s1.dev.
  • MCP: search1api-mcp 0.5.4 serves a server card at /.well-known/mcp/server-card.json, generated from the tool list, so agents can discover tools before authenticating. OAuth resource_documentation and other metadata now point to s1.dev.

2026-08-16

  • Integrations: droid-s1 plugin for Factory Droid published, giving Droid search, news, crawl, sitemap, and trending through the hosted MCP server.

2026-08-14

  • Integrations: dsh-s1 0.1.0 published for the DeepSeek Harness: s1_search, s1_news, s1_crawl, s1_sitemap, and s1_trending as native tools, with a bundled s1 skill. Install with dsh plugin --profile web add dsh-s1.

2026-08-11

  • API: Zero-result searches return 200. POST /search and POST /news respond with 200 and an empty results array when the engines confirm there are no matches, and the request is charged. They previously returned 404. Searches that could not complete now return 502 and are not charged.
  • MCP: The OAuth authorization server for the hosted MCP server and the REST API moved to https://clerk.s1.dev. Clients that follow /.well-known/oauth-protected-resource pick this up automatically.

2026-08-10

  • Docs: The public site moved from www.search1api.com to s1.dev; documentation lives at s1.dev/docs. The API host api.search1api.com and the hosted MCP host mcp.search1api.com did not change.

2026-08-06

  • Integrations: n8n-nodes-search1api passed n8n's review and is listed in the official community node catalog.

2026-08-04

  • CLI: search1api-cli 1.3.0 packages the CLI as a Claude plugin, an OpenAI plugin, and a Cursor Marketplace plugin, adds a Claude plugin marketplace catalog, and exposes the reusable client it is built on.
  • Integrations: opencode-search1api 0.1.1 (OpenCode), openclaw-search1api 0.1.x (OpenClaw, via ClawHub), and grok-search1api 1.0.0 (Grok Build) published, each exposing search, news, crawl, sitemap, and trending as tools.

2026-08-03

  • API: x-search1api-request-id response header added on paid endpoints. Quote it when contacting support.

2026-08-02

  • MCP: search1api-mcp 0.5.3 removes OIDC session scopes (openid, profile, email) from the OAuth resource metadata; they are not resource permissions and made Smithery's authorization fail with invalid_scope.

2026-07-31

  • Integrations: n8n-nodes-search1api 0.1.3 fixes the node identifier used by Codex to its fully qualified form.

2026-07-30

  • MCP: search1api-mcp 0.5.2 validates the Origin header on /mcp before parsing or authentication and answers 403 for untrusted browser origins. Self-hosted deployments can allow browser clients with MCP_ALLOWED_ORIGINS. Server-side clients without an Origin header are unaffected.

2026-07-29

  • MCP: search1api-mcp 0.5.0 and 0.5.1 implement MCP revision 2026-07-28. Remote HTTP is stateless: no Mcp-Session-Id, no sticky routing; every request carries its protocol version and client capabilities in _meta, and server/discover reports supported versions and capabilities. Clients on the 2025 revisions keep working over HTTP and stdio. Credentials are validated on every HTTP exchange, and the Host header is checked against DNS rebinding.
  • MCP: The redundant fetch tool was removed. The public tools are search, news, crawl, sitemap, and trending; use crawl where you used fetch.
  • Integrations: search1api-langchain 0.1.0 published on PyPI: Search1APISearch, Search1APINews, and Search1APICrawl tools plus Search1APIToolkit, with sync and async invocation over the official Python SDK.

2026-07-28

  • MCP: search1api-mcp 0.4.0 prepares the server for public registries (Official MCP Registry, LobeHub) with registry manifests and structured tool outputs.
  • Integrations: n8n-nodes-search1api 0.1.1, the first release of the n8n community node: search, news, crawl, sitemap, and trending as workflow nodes and as an n8n AI tool.

2026-07-25

  • API: POST /screenshot launched. Returns PNG, JPEG, or WebP bytes on success and JSON errors otherwise; supports full-page, viewport, and element captures with readiness, viewport, dark-mode, animation, and timeout controls. 2 credits per success, failed requests are not charged, with a separate limit of 10 requests per minute per account.
  • SDK: @search1api/client 0.2.0 and search1api (Python) 0.2.0 add client.screenshot(), returning binary image data with the content type and request ID.

2026-07-22

  • API: OAuth 2.1 access tokens (Authorization Code with PKCE, Dynamic Client Registration, refresh tokens, revocation) accepted as bearer credentials alongside API keys, on the same account, credits, rate limits, and usage reporting. Discovery metadata is served at /.well-known/oauth-protected-resource.
  • API: OpenAPI document published at https://api.search1api.com/openapi.json.
  • SDK: @search1api/client 0.1.0 (ESM and CommonJS, generated types) and search1api (Python) 0.1.0 (sync and async clients, type hints) are the first official SDKs, covering the whole public contract with structured errors, configurable timeouts, safe retries, batch operations, and deepcrawl polling helpers.
  • CLI: search1api-cli 1.2.2 and 1.2.3: s1 login runs the full OAuth public-client flow and refreshes expired access tokens automatically; retired commands were removed; npm releases are automated.
  • MCP: search1api-mcp 0.3.1 adds OAuth to the hosted server at https://mcp.search1api.com/mcp, alongside API keys.

2026-07-16

  • API: User-supplied proxy fields removed from POST /search and POST /crawl. The fields are now ignored; traffic always exits through Search1API's own pool.

2026-07-15

  • Docs: Documentation rebuilt on Fumadocs and reorganized into Get Started, Essentials, Guides, Integrations, and API Reference, with explicit error and billing behavior for each endpoint.

2026-06-09

  • API: POST /v1/chat/completions and GET /v1/models discontinued. Both answer 410 Gone. Use POST /search with crawl_results to ground your own model instead.

2026-06-03

  • CLI: search1api-cli 1.2.1 adds s1 update for self-updating the standalone binary.

2026-04-02

  • CLI: search1api-cli 1.2.0 adds a browser-based login flow.

2026-03-31

  • CLI: search1api-cli 1.1.3 ships standalone binaries for macOS (Apple Silicon and Intel), Linux (x64 and arm64), and Windows (x64), installable without Node.js via curl -fsSL https://cli.search1api.com/install.sh | bash.

2026-03-13

  • CLI: search1api-cli 1.0.0 through 1.1.2, the first releases of s1: search, news, crawl, sitemap, and trending from the terminal, an update notifier, and a bundled Claude Code skill. The Search1API Agent Skill moved from the MCP repository to the CLI repository.

2026-02-28

  • MCP: search1api-mcp 0.3.0 adds the hosted Remote MCP server over Streamable HTTP at https://mcp.search1api.com/mcp, plus a start script for container deployments. The stdio package continues to work.

2025-10-16

  • API: search_service: "google" added to POST /search. Bing pagination and English-language result handling improved.

2025-08-28

  • API: max_results on POST /search and POST /news raised from 10 to 50.

2025-05-05

  • API: POST /extract (beta) launched: structured extraction from a page using a natural-language prompt and an optional JSON Schema, 10 credits per request.
  • API: POST /deepcrawl (beta) launched: asynchronous whole-site crawling in sitemap or all mode, 20 credits to start a task; GET /deepcrawl/status/{taskId} is free.
  • API: search_service values baidu, quark, and 360 added to POST /search; reuters added to POST /news.

2025-04-14

  • API: POST /crawl returns post text, images, and video comments for RedNote (Xiaohongshu) URLs.

2025-04-08

  • API: Keyless free tier introduced: most endpoints could be called without an API key under an IP-based limit (5 requests per minute, 20 per day); free API keys got 200 requests per minute and 100 credits. Keyless access has since been replaced by pay-per-request payment challenges; see Authentication.

2025-04-05

  • MCP: search1api-mcp 0.2.0 reads SEARCH1API_KEY from the environment first and falls back to a project .env, with LibreChat and Docker setup documented. Community contribution.

2025-04-01

  • API: POST /crawl returns subtitles and interaction data (likes, views) for YouTube URLs, and full comment threads with sub-comments and vote counts for Reddit URLs.

2025-03-28

  • API: search_service values x and reddit added to POST /search.
  • MCP: search1api-mcp 0.1.8 exposes the X and Reddit engines.

2025-03-21

  • API: POST /trending launched with GitHub Trending and Hacker News rankings.
  • MCP: search1api-mcp 0.1.7 adds the trending tool.

2025-03-20

  • API: search_service: "wikipedia" added to POST /search.
  • MCP: search1api-mcp 0.1.6 exposes the Wikipedia engine.

2025-03-18

  • MCP: search1api-mcp 0.1.5 adds include_sites, exclude_sites, and time_range to the search tool and exposes the engines added in March.

2025-03-17

  • API: search_service: "wechat" added to POST /search.

2025-03-16

  • API: search_service values yahoo, youtube, github, arxiv, bilibili, and imdb added to POST /search; yahoo and hackernews added to POST /news.

2025-02-28

  • API: time_range and language added to POST /search and POST /news. The hl and gl parameters were removed in favor of language.

2025-02-27

  • API: include_sites and exclude_sites added to POST /search and POST /news.
  • API: Fixed one-time credit packages expiring together with a subscription.

2025-02-21

  • MCP: search1api-mcp 0.1.4 adds a reasoning tool backed by DeepSeek R1 with web search (discontinued with the reasoning API in 2026), plus Cursor and Windsurf configuration guides.

2025-02-17

  • API: Reasoning search launched at POST /v1/chat/completions with DeepSeek R1 grounded by web search. Discontinued on 2026-06-09.

2025-02-08

  • API: Default search language changed to English, improving result quality for unspecified-language queries.

2025-01-12

  • API: Billing changed to per-outcome: credits are deducted for each successful search and each successful crawl; failed crawls are no longer charged.

2024-12-05

  • MCP: search1api-mcp 0.1.3 adds the news tool.

2024-11-29

  • MCP: search1api-mcp 0.1.2 adds the sitemap tool.

2024-11-26

  • MCP: search1api-mcp 0.1.0 and 0.1.1, the first Search1API MCP server, with search and crawl tools over stdio.

2024-04-29

  • API: Search1API launched with POST /search, POST /crawl, and the first public documentation.

On this page