Search1API
Guides

Improving search results

Choose sources, retrieve full page text, and narrow Search1API results by site, time, and language.

Begin with the default search behavior, then add constraints only when the results show that you need them.

Let Search1API choose sources by default

If you omit search_service, Search1API runs several engines concurrently and fuses their rankings into one result list. Keep this default when you want broad web coverage.

Set search_service when the source itself is part of the request:

{ "query": "rust async runtime", "search_service": "reddit" }

For example, Reddit is useful for experience reports, GitHub for code and issues, arXiv for papers, and YouTube for video.

Available web search sources

SourceUseful for
googleGeneral web
bingGeneral web
bingcnChinese-language Bing
duckduckgoGeneral web
yahooGeneral web
yandexGeneral web, especially Russian and CIS
xPosts and reactions on X
redditDiscussions and experience reports
githubRepositories, issues, pull requests, and discussions
youtubeVideo
arxivPreprints and academic papers
wikipediaEncyclopedic background
imdbFilm and television
wechatWeChat public-account articles
bilibiliChinese-language video
baiduChinese-language general web
quarkChinese-language general web
360Chinese-language general web

/news uses a separate source set: google, bing, duckduckgo, yahoo, hackernews, and reuters. Omitting search_service also enables the default multi-source behavior for news.

Community sources add structured fields next to snippet:

  • github results carry kind (repo, issue, pr or discussion). Repositories add stars and language; issues, pull requests and discussions add num_comments, and their snippet starts with owner/repo · issue · open · N comments. A query like "tanstack start hydration error" returns the matching issues and discussions, not only repositories; append a GitHub qualifier such as is:issue or stars:>1000 to search one type only. With time_range, results are limited to repositories and threads created in the window.
  • hackernews results (/news) link to the Hacker News thread, with the submitted article in story_url (empty for Ask HN / Show HN text posts) and the vote and comment counts in points and num_comments. Multi-word queries match stories containing any of the words, best matches first.
  • reddit results are ordered so that posts whose title or subreddit mentions the query terms come first.

/trending supports github and hackernews, and requires search_service.

Read the results, not just the snippets

Search results include a short snippet. When a model needs the source text, set crawl_results to crawl the top results and populate their content fields:

curl -X POST https://api.search1api.com/search \
  -H "Authorization: Bearer $SEARCH1API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "postgres connection pooling best practices",
    "max_results": 10,
    "crawl_results": 3
  }'

This returns up to ten ranked results and attempts to add full text to the top three. crawl_results must be no greater than max_results.

A search costs 1 credit, plus 1 credit for each page crawled successfully. See Credits and limits.

Narrow by site

Use include_sites to search only selected domains and exclude_sites to remove unwanted ones:

{
  "query": "vector database benchmarks",
  "include_sites": ["github.com", "news.ycombinator.com"],
  "exclude_sites": ["pinterest.com"]
}

A narrow include_sites list combined with a specific query can produce an empty results array — a completed, charged search that simply found no matches. Remove constraints one at a time to widen the match pool.

Narrow by time or language

time_range accepts day, week, month, or year. Use it when freshness matters instead of adding words such as “latest” to the query.

Each result carries published_date when the source exposes one, so a model can check how fresh a result is or pick between conflicting sources. The value is ISO 8601: YYYY-MM-DD when only the day is known (typical for web search engines), or a UTC timestamp such as 2026-09-03T10:00:00Z when the source carries a time (x, reddit, github, arxiv, youtube, bilibili, wechat, yandex with time_range, and /news feeds). Treat the field as optional: duckduckgo, wikipedia, and most Chinese web engines return no date; yandex also omits it unless time_range is set; and other web engines only show one for a subset of pages.

language accepts a language code such as en, zh-CN, or fr. Search1API does not expose a separate country or region parameter.

Control result count

max_results defaults to 5 and accepts values from 1 to 50. The gateway clamps numeric values above 50 to 50.

Paginate native SERP results

page is native search-engine pagination, not an offset into a fused result list. It is honoured only for bing, bingcn, and baidu. Other engines, including yandex, ignore it.

{
  "query": "vector database",
  "search_service": "bing",
  "page": 2
}

For the complete request schema, image results, batch bodies, and response fields, see the Search API reference.

On this page