KYC 없이 — 신분증, 셀피, 서류가 필요 없습니다. 암호화폐로 결제하세요: BTC, USDT, USDC, ETH, SOL, LTC
언어: 한국어
API 키 받기

문서 · API 레퍼런스

검색 endpoint 레퍼런스: POST 및 GET /search

/search은 실시간 웹 검색을 실행하고 최대 20개의 결과 순위를 매기며 상위 결과 뒤의 페이지를 읽습니다. 이 페이지는 모든 파라미터, 기본값, 제한, 그리고 가격에 미치는 영향을 정리합니다.

마지막 업데이트: · 7 분 소요

빠른 답변

LLMWebSearch 검색 endpoint는 어떤 파라미터를 받나요?

LLMWebSearch의 /search endpoint에는 q만 필요합니다. 선택 파라미터로 반환할 결과 수(max_results), 읽을 페이지 수(read), 콘텐츠 형식과 길이, 뉴스 또는 웹, 시간 범위, 국가와 언어, 유지하거나 제외할 도메인을 설정합니다. 최대 3페이지 읽기는 1 크레딧이며, 2026년 10월 기준 US$1.20/1K 검색부터입니다. KYC 없이, 암호화폐로 결제.

/search at a glance

메서드JSON 본문을 쓰는 POST, 또는 같은 이름을 쿼리 스트링에 담은 GET
URLhttps://llmwebsearch.com/api/v1/search
필수q: 1~400자; 검색 연산자는 작성한 그대로 전달됩니다
기본값결과 5개, 처음 3개 읽기, 페이지당 최대 6,000자 Markdown
과금크레딧 1개로 검색 1회를 이용할 수 있습니다. 최대 20개의 순위 결과를 받고, 상위 3개 페이지의 본문을 읽어 Markdown으로 반환합니다. 4~10개 페이지를 읽으면 크레딧 2개가 됩니다. 오류로 끝난 호출에는 비용이 청구되지 않습니다
결과결과는 호출하는 순간 실행되는 실시간 웹 검색에서 나오며, 검색 엔진이 매기는 순서대로 제공됩니다. 오래된 인덱스에서 제공되는 것은 없습니다
필터결과의 국가와 언어, 기간(지난 하루, 주, 월 또는 연도), 웹 또는 뉴스 결과, 포함하거나 제외할 도메인을 선택할 수 있습니다
페이지 리더LLMWebSearch/1.0 (+https://llmwebsearch.com/bot/)

웹 검색 및 상위 결과 읽기 (POST)

POST/api/v1/search

실시간 웹 검색을 실행하고 순위가 매겨진 결과를 반환합니다. 처음 read개 결과의 페이지를 병렬로 가져와 본문을 content로 반환합니다. 예시는 API 키를 로테이션하는 방법을 묻습니다. 제목, 날짜, 값은 예시일 뿐입니다.

인증: Authorization: Bearer API_KEY 헤더에 API 키.

요청 본문

필드유형필수설명
qstring예검색 쿼리, 1~400자. 따옴표와 site: 같은 연산자는 작성한 그대로 유지됩니다.
max_resultsinteger아니요순위가 매겨진 결과 수, 1~20. 기본값 5.
readinteger아니요처음 결과 중 몇 개를 읽어 콘텐츠와 함께 반환할지, 0~10. 기본값 3. 4 이상이면 호출에 2 크레딧이 듭니다.
formatstring아니요페이지 콘텐츠에는 markdown(기본값) 또는 text.
max_charsinteger아니요각 페이지 콘텐츠의 길이 상한, 500~50,000자. 기본값 6,000.
topicstring아니요web(기본값) 또는 news.
time_rangestring아니요day, week, month 또는 year. 기본값 없음: 모든 날짜.
countrystring아니요검색이 실행되는 위치의 두 글자 국가 코드(ISO 3166-1 alpha-2). 기본값 us.
languagestring아니요결과 언어, 예: en, de, pt-BR. 기본값 en.
include_domainsstring[]아니요최대 20개 도메인. 이 도메인 및 하위 도메인의 결과만 유지됩니다.
exclude_domainsstring[]아니요결과를 제외할 최대 20개 도메인.
예시: five results, the top three read as Markdown
{
  "q": "how to rotate api keys without downtime",
  "max_results": 5,
  "read": 3,
  "max_chars": 6000
}
예시: news of the past week from two sites, nothing read
{
  "q": "open source license change",
  "topic": "news",
  "time_range": "week",
  "include_domains": [
    "news.example.com",
    "example.org"
  ],
  "read": 0
}

응답 200

{
  "query": "how to rotate api keys without downtime",
  "created_at": "2026-10-22T10:15:04Z",
  "credits_used": 1,
  "results": [
    {
      "position": 1,
      "title": "Rotating API keys",
      "url": "https://docs.example.com/security/key-rotation",
      "host": "docs.example.com",
      "snippet": "Create a second key, deploy it everywhere, then revoke the first one.",
      "published_at": "2026-09-30",
      "content_status": "ok",
      "content": "# Rotating API keys\n\n## Zero-downtime rotation\n\n1. Create a second key.\n2. Deploy it to every service.\n3. Revoke the old key.",
      "word_count": 948
    },
    {
      "position": 2,
      "title": "Key rotation checklist",
      "url": "https://blog.example.org/key-rotation-checklist",
      "host": "blog.example.org",
      "snippet": "Keep two keys active during the switch and alert on the old one.",
      "content_status": "blocked_by_robots"
    },
    {
      "position": 3,
      "title": "Secrets management basics",
      "url": "https://security.example.net/secrets-basics",
      "host": "security.example.net",
      "snippet": "Never commit keys to a repository.",
      "published_at": "2026-06-12",
      "content_status": "ok",
      "content": "# Secrets management basics\n\n**Never** commit keys to a repository...",
      "word_count": 1310
    },
    {
      "position": 4,
      "title": "API key best practices",
      "url": "https://dev.example.com/api-key-best-practices",
      "host": "dev.example.com",
      "snippet": "Scope each key to one service and one environment.",
      "content_status": "not_requested"
    }
  ]
}

코드 예제

curl
curl -s "https://llmwebsearch.com/api/v1/search" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q": "how to rotate api keys without downtime", "max_results": 5, "read": 3}'
Python
import os
import requests

resp = requests.post(
    "https://llmwebsearch.com/api/v1/search",
    headers={"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]},
    json={"q": "how to rotate api keys without downtime", "max_results": 5, "read": 3},
    timeout=60,
)
resp.raise_for_status()
for r in resp.json()["results"]:
    print(r["position"], r["content_status"], r["url"])
Node.js
const res = await fetch('https://llmwebsearch.com/api/v1/search', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.LLMWEBSEARCH_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ q: 'how to rotate api keys without downtime', max_results: 5, read: 3 }),
});
const { results } = await res.json();
for (const r of results) console.log(r.position, r.content_status, r.url);

웹 검색 (GET)

GET/api/v1/search

파라미터를 URL 인코딩된 쿼리 스트링에 담은 동일한 검색입니다. include_domains 같은 목록은 쉼표로 구분된 하나의 값으로 작성합니다. 빠른 테스트나 GET 요청만 보내는 도구에 편리합니다. 예시는 결과만 요청합니다(read=0).

인증: Authorization: Bearer API_KEY 헤더에 API 키.

매개변수

이름위치유형필수설명
qquerystring예검색 쿼리, URL 인코딩, 1~400자.
max_resultsqueryinteger아니요1~20. 기본값 5.
readqueryinteger아니요0~10. 기본값 3; 4 이상이면 2크레딧이 듭니다.
formatquerystring아니요markdown (기본값) 또는 text.
max_charsqueryinteger아니요페이지당 500~50,000. 기본값 6,000.
topicquerystring아니요web(기본값) 또는 news.
time_rangequerystring아니요day, week, month 또는 year.
countryquerystring아니요ISO 3166-1 alpha-2 코드. 기본값 us.
languagequerystring아니요언어 코드. 기본값 en.
include_domainsquerystring아니요쉼표로 구분된 목록, 최대 20개 도메인.
exclude_domainsquerystring아니요쉼표로 구분된 목록, 최대 20개 도메인.
api_keyquerystring아니요Authorization 헤더를 보내지 않을 때 사용하는 키.

응답 200

{
  "query": "postgres connection pooling",
  "created_at": "2026-10-22T10:21:47Z",
  "credits_used": 1,
  "results": [
    {
      "position": 1,
      "title": "Connection pooling explained",
      "url": "https://docs.example.com/db/pooling",
      "host": "docs.example.com",
      "snippet": "A pool keeps a few database connections open and lends them to requests.",
      "content_status": "not_requested"
    },
    {
      "position": 2,
      "title": "Sizing a connection pool",
      "url": "https://blog.example.org/pool-size",
      "host": "blog.example.org",
      "snippet": "Start small: the right size depends on cores and disk, not on traffic.",
      "published_at": "2026-03-04",
      "content_status": "not_requested"
    }
  ]
}

코드 예제

curl
curl -sG "https://llmwebsearch.com/api/v1/search" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  --data-urlencode "q=postgres connection pooling" \
  -d max_results=10 -d read=0
Python
import os
import requests

resp = requests.get(
    "https://llmwebsearch.com/api/v1/search",
    headers={"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]},
    params={"q": "postgres connection pooling", "max_results": 10, "read": 0},
    timeout=60,
)
print([r["url"] for r in resp.json()["results"]])
Node.js
const params = new URLSearchParams({ q: 'postgres connection pooling', max_results: '10', read: '0' });
const res = await fetch(`https://llmwebsearch.com/api/v1/search?${params}`, {
  headers: { Authorization: `Bearer ${process.env.LLMWEBSEARCH_API_KEY}` },
});
console.log((await res.json()).results.map((r) => r.url));

페이지 본문 없이 결과만 받으려면 어떻게 하나요?

read을 0로 설정하세요. 그러면 모든 결과가 제목, URL, 호스트, 스니펫, 날짜와 함께 content_status: "not_requested"와 같이 돌아옵니다. 응답 크기가 훨씬 작아져서, 에이전트가 어떤 링크가 중요한지만 고르면 될 때 유용합니다.

가격은 최대 3페이지를 읽는 것과 같은 1크레딧으로 유지됩니다. 흔한 패턴은 read=0 검색으로 후보를 추리고, 모델이 고른 두세 개 URL에 extract 호출을 하는 것입니다.

검색에 언제 2크레딧이 드나요?

read이 4~10 사이일 때입니다. 페이지를 더 읽으면 저희 쪽 작업이 늘어나므로 가격이 한 번 두 배가 되고, 최대 10페이지까지 2크레딧으로 유지됩니다.

모든 응답의 credits_used은 이 호출에 든 비용을 보여줍니다. robots.txt 규칙이나 거부로 페이지를 읽지 못해도 그 가격은 오르내리지 않습니다. 대부분의 경우 전체 페이지 몇 개만 필요하다면 read를 3으로 두고, 가끔 필요한 추가 페이지에는 /extract을 호출하세요.

최근 뉴스를 검색하려면 어떻게 하나요?

topic: "news"과 time_range을 보내세요. 그러면 결과가 뉴스 기사에서 나오고, time_range는 지난 day, week, month 또는 year의 기사만 남깁니다. published_at은 기사나 검색 결과에 날짜가 명시되어 있을 때 채워집니다.

같은 최신성 필터는 topic: "web"과 함께 써도 동작합니다. 최근 출시나 가격 변경처럼 오래된 페이지가 모델을 잘못 이끌 수 있는 질문에 유용합니다.

지난주 뉴스, 상위 3개 기사 읽기
curl -s "https://llmwebsearch.com/api/v1/search" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q": "database release security fix", "topic": "news", "time_range": "week", "read": 3}'

결과를 특정 사이트로 제한하려면 어떻게 하나요?

include_domains에 최대 20개까지 나열하세요. 호스트가 이 도메인이나 그 하위 도메인 중 하나인 결과만 유지됩니다: example.com은 docs.example.com도 일치합니다. 반대로 exclude_domains을 사용하면, 예를 들어 결과에서 내 사이트를 빼는 데 쓸 수 있습니다.

POST 본문에서는 두 필드 모두 JSON 배열입니다. GET 요청에서는 쉼표로 구분된 하나의 값으로 작성하세요. 검색 쿼리 자체에 site: 연산자를 넣을 수도 있으며, 그대로 검색에 전달됩니다.

국가와 언어는 무엇을 바꾸나요?

country은 검색이 실행되는 위치를 설정하며, us, de, br 같은 두 글자 코드를 씁니다. 순위는 국가별로 다르며, 특히 현지 서비스, 가격, 규제에서 차이가 납니다. language는 결과의 언어를 설정하며, en, fr, pt-BR 같은 값을 씁니다.

둘 다 기본값은 미국과 영어입니다. 에이전트가 특정 시장의 사용자를 위해 일할 때는 함께 설정하세요. 세금 규정을 묻는 독일 사용자는 country: "de"과 language: "de"를 원합니다.

페이지 본문은 얼마나 돌아오나요?

페이지당 최대 max_chars자이며, 기본값은 6,000자이고 500~50,000자까지 설정할 수 있습니다. 이 상한은 모델의 컨텍스트 윈도우를 보호합니다: 6,000자 기준 3페이지는 영어로 약 4,500토큰입니다.

word_count은 잘리기 전의 추출된 전체 텍스트를 세므로, 페이지가 잘렸는지 알 수 있습니다. 답변에 긴 문서 하나가 필요하다면 먼저 낮은 상한으로 검색한 뒤, 그 페이지만 /extract를 통해 더 높은 상한으로 가져오세요. 느린 페이지를 무한정 기다리지는 않습니다: 15초가 지나면 본문 없이 fetch_timeout로 돌아옵니다.

검색 endpoint: 자주 묻는 질문

POST와 GET 중 무엇을 써야 하나요?

코드에서는 POST를 쓰세요. JSON 배열과 긴 쿼리는 본문에서 더 간단하기 때문입니다. GET은 터미널에서 빠르게 테스트하거나 쿼리 문자열만 보내는 도구에 적합합니다. 둘 다 같은 응답을 반환하고 비용도 같습니다.

20개보다 많은 결과를 요청할 수 있나요?

아니요. 호출당 최대 20개입니다. 에이전트는 보통 그 이상 필요하지 않습니다: 쿼리를 바꿔 다시 검색하는 편이 긴 목록보다 더 좋은 출처를 가져오는 경우가 많습니다.

페이지는 순차적으로 읽나요?

아니요, 병렬로 읽습니다. 15초 안에 응답하지 않는 페이지는 fetch_timeout로 본문 없이 반환되므로, 느린 사이트 하나가 전체 응답을 붙잡지 않습니다.

어떤 검색 엔진이 결과를 만드나요?

결과는 호출하는 순간 실행되는 실시간 웹 검색에서 나오며, 검색 엔진이 매기는 순서대로 제공됩니다. 오래된 인덱스에서 제공되는 것은 없습니다. 검색을 실행하는 업스트림 제공자는 공개하지 않습니다.

US$1.20/1K 검색부터 · KYC 없이

API 키 받기