SignalSumo

API 레퍼런스

SignalSumo의 SEO 데이터를 직접 자체 도구, 대시보드 및 워크플로에 통합하십시오.

Pro Agency API 액세스는 Pro 및 Agency 플랜에서 제공됩니다

빠른 시작

첫 번째 응답까지 세 단계.

1. API 키 생성

Pro 또는 Agency 플랜에서 키를 생성하려면 API 키 그리고 복사하십시오 — 한 번만 표시됩니다.

2. 연결 확인

curl -H "Authorization: Bearer ss_live_your_key_here" \
     "https://signalsumo.com/api/v1/usage"

A 200 플랜 및 남은 호출 수와 함께 응답하면 연결된 상태가 됩니다.

3. 첫 데이터 호출 수행

curl -X POST \
     -H "Authorization: Bearer ss_live_your_key_here" \
     -H "Content-Type: application/json" \
     -d '{"keyword":"seo audit tool","limit":5}' \
     "https://signalsumo.com/api/v1/keyword-research"
이것이 전부입니다. 모든 엔드포인트는 동일한 Authorization: Bearer 헤더와 동일한 JSON을 반환합니다 — 매개변수와 응답 필드는 아래 엔드포인트를 확인하세요.

개요

모든 API 엔드포인트는 다음 아래에서 제공됩니다:

https://signalsumo.com/api/v1/

요청 및 응답은 다음을 사용합니다 JSON. 모든 응답은 동일한 포맷을 따릅니다:

{
  "success": true,
  "data":    { ... },
  "meta":    { "timestamp": "2026-06-26T10:00:00+00:00" }
}

오류는 동일한 형태를 따릅니다: success: false 및 하나의 error object 대신 data.

엔드포인트는 두 그룹으로 나뉘며, 차이는 비용에 있습니다:

  • 리서치 엔드포인트 — /backlinks, /keyword-research, /site-audit — fetch fresh data from outside SignalSumo. They draw feature quota or credits. See 플랜 및 결제.
  • Your-data 엔드포인트 — everything under /rank, /gsc 및 /ai-visibility — read what your account has already collected. They are plain database reads: they cost 크레딧 및 기능 할당량 없음, 그리고 월간 한도 초과로 인해 거부되지 않습니다.
귀하의 데이터 엔드포인트는 크레딧 및 기능 할당량이 없지만 각 호출은 여전히 월간 API 호출 총계에 기록됩니다 — and that total is what gates the research endpoints. A long exploratory session can therefore use up the allowance your billed calls need. This applies equally to the MCP 커넥터, 동일한 미터에서 실행됩니다.

인증

API 키를 다음에 전달하십시오: Authorization 모든 요청에 헤더:

Authorization: Bearer ss_live_your_key_here

또는 쿼리 매개변수로 전달할 수 있습니다(프로덕션에서는 권장되지 않음):

GET /api/v1/usage?api_key=ss_live_your_key_here
API 키를 생성하고 관리하세요 signalsumo.com/api-keys. Each key is shown 한 번만 생성 시 — 안전하게 저장하십시오.

The Authorization: Bearer 헤더가 권장 방법입니다. API는 관용적인 CORS 헤더도 전송하므로 브라우저 기반 도구에서 직접 호출할 수 있습니다. 프로덕션에서는 비밀 키를 서버 측에 보관하세요.

플랜 및 결제

API 액세스는 Pro 및 Agency 플랜에 제공됩니다. 두 개의 독립 미터가 사용량을 관리합니다 — 호출은 다음 조건을 만족할 때만 처리됩니다 두 조건 모두 허용합니다.

1. 월간 API 호출

모든 요청(캐시 히트 및 엔드포인트에 도달하는 오류 포함)은 하나의 API 호출로 계산됩니다.

플랜월간 API 호출리셋
Pro20매월 1일
Agency100매월 1일

이를 초과하면 반환됩니다 HTTP 429 (RATE_LIMITED)와 함께 resets_at 필드가 포함된 meta. 언제든지 실시간 제한 및 사용량을 확인하십시오: GET /usage.

2. 기능별 할당량 및 크레딧

호출량 제한을 초과하면, 데이터 엔드포인트마다 자체 월별 기능 할당량을 사용합니다(로그인 대시보드와 동일한 할당량). 할당량이 소진될 경우 동작은 다음과 같습니다:

엔드포인트기능 할당량이 소진될 때
/keyword-research반환 429 QUOTA_EXCEEDED. 절대 크레딧을 사용합니다 — 반복 호출이 안전합니다.
/backlinks다음으로 대체됩니다 1 크레딧 요청당. A 심층 쿼리 (page > 1 또는 limit > 100) always costs 1 credit. No credits → 402 PAYMENT_REQUIRED.
/site-audit반환 429 QUOTA_EXCEEDED 월간 크롤링 횟수 또는 순환 페이지 예산이 소진된 경우.
캐시 히트는 기능 할당량을 차감하지 않습니다. 결과가 캐시되어 대시보드와 공유됩니다. 따라서 최근에 조회된 도메인이나 키워드는 즉시 반환되며, 표시됩니다 "cached": true 내 meta, 기능 할당량이나 크레딧을 차감하지 않습니다 (여전히 하나의 API 호출로 간주됩니다).

3. 분당 요청 수

월별 제한과 별도로, 플랜에 따라 분당 요청 수가 정해집니다. 이는 무제한 루프나 키 유출을 방지하고, 월 할당량이 한 시간 내에 모두 사용된다고는 보장하지 않습니다.

플랜분당 요청 수
Pro20
Agency60

각 엔드포인트는 별도로 계산되므로 백링크 할당량을 사용해도 키워드 연구가 차단되지 않습니다. 초과 시 429 와 함께 retry_after (초) 및 limit 내 meta. 거부된 요청은 카운트되지 않으므로 대기하면서 retry_after 항상 초기화됩니다.

동일한 요청은 한 번만 응답됩니다. 여러 요청이 동시에 동일한 질문을 하면 하나만 가져오고 나머지는 동일한 결과를 반환합니다 — 한 번만 청구됩니다. 가져오기가 진행 중일 때 요청이 도착하면 409 ALREADY_RUNNING; 몇 초 후에 다시 시도하면 캐시 적중됩니다.

위치 및 언어

/keyword-research 받아들입니다 location_code 및 language_code 결과를 현지화하려면. 두 옵션 모두 선택 사항이며 기본값은 미국 (2840) 및 영어 (en).

location_code

숫자형 시장 코드입니다. 일반적인 값:

코드시장코드시장
2840United States2276Germany
2826United Kingdom2250France
2124Canada2724Spain
2036Australia2380Italy
2356인도2528네덜란드
2392일본2076브라질

90개 이상의 시장을 지원합니다. 인식되지 않은 코드는 422 UNSUPPORTED_LOCATION 미국으로 대체되는 것보다 — 요청하지 않은 미국 데이터에 대한 청구는 코드가 잘못되었다는 통보보다 더 불편합니다. 전화: GET /api/v1/keyword-research/locations 전체 목록에 대해.

language_code

두 글자 언어 코드입니다. 지원되는 값:

코드언어코드언어
en영어pt포르투갈어
es스페인어nl네덜란드어
fr프랑스어ru러시아어
de독일어ja일본어
it이탈리아어zh중국어
위에 나열된 언어만 지원됩니다. 기타 언어는 language_code 대체 영어 오류를 반환하는 대신 — 결과가 예상치 못하게 영어로 표시되면 코드를 다시 확인하십시오.

오류 코드

HTTP코드의미
400BAD_REQUEST잘못된 요청 구문
401UNAUTHORIZEDAPI 키가 없거나 유효하지 않음
403FORBIDDEN플랜에서 API 접근이 제공되지 않음 (Pro 또는 Agency 플랜 필요)
404NOT_FOUND엔드포인트 또는 리소스를 찾을 수 없음
402PAYMENT_REQUIRED기능 할당량이 소진되고 남은 크레딧이 없습니다 (백링크)
422VALIDATION_ERROR필수 매개변수가 없거나 값이 유효하지 않음
409ALREADY_RUNNING같은 요청이 이미 계정에 대해 처리 중입니다 — 잠시 후 다시 시도하면 캐시 적중됩니다. 요금이 청구되지 않았습니다
429RATE_LIMITED / QUOTA_EXCEEDED월간 호출 제한, 분당 페이싱 또는 기능 할당량 초과 — 참고 resets_at 또는 retry_after 내 meta
502UPSTREAM_ERROR업스트림 데이터 제공자가 데이터를 반환하지 않음
500SERVER_ERROR내부 오류 — 재시도해도 안전합니다

MCP 및 LLM 클라이언트

목표가 Claude와 같은 어시스턴트가 이 데이터를 대화형으로 읽게 하는 경우, 클라이언트를 작성할 필요가 없습니다. SignalSumo가 이를 제공합니다 Model Context Protocol, 아래 엔드포인트를 LLM이 직접 호출할 수 있는 도구로 노출합니다.

경로인증추천 대상
호스팅 커넥터OAuth 2.1 — no key to copyClaude 및 기타 MCP 클라이언트. 설치가 필요 없으며 항상 최신 상태입니다.
@signalsumo/mcp on npm클라이언트 구성에 API 키 포함로컬 설치, 자체 호스팅 설정, 또는 자체 환경에서 실행
이 REST APIAuthorization: Bearer고유 스크립트, 대시보드 및 백엔드 통합

All three read the same data through the same endpoints and the same plan limits — they differ only in how the caller authenticates. The npm package uses slightly different tool names from the hosted connector; its README is the reference for those. Source: github.com/signalsumo/mcp.

MCP 접근은 자체 플랜 플래그에 의해 관리되며, REST API 접근과는 별도입니다. 확인 귀하의 플랜 클라이언트가 인증했지만 모든 도구 호출이 거부되는 경우.

GET /api/v1/usage

GET /api/v1/usage

현재 달의 API 할당량 사용량을 반환합니다.

예시 요청

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/usage"

예시 응답

{
  "success": true,
  "data": {
    "plan": "agency",
    "api_calls_used": 42,
    "api_calls_limit": 100,
    "unlimited": false,
    "resets_at": "2026-08-01"
  },
  "meta": {
    "timestamp": "2026-06-26T10:00:00+00:00",
    "key_name": "Production App"
  }
}
GET /api/v1/backlinks?domain={domain}

도메인의 백링크 프로필을 반환합니다: 요약 overview, 분포 insights, 그리고 개별적인 풍부한 목록을 backlinks. 결과가 캐시되어 대시보드와 공유됩니다(프로: 2일, 에이전시: 7일); 캐시 적중은 표시됩니다 "cached": true 기능 할당량을 차감하지 않습니다.

이것은 동일한 데이터이며 백링크 검사기 shows in the app, and the cache is shared — a domain you have already looked at there returns instantly here, free.

표준 요청은 월간 백링크 검색 할당량을 차감합니다 (그 후 1 크레딧 그것이 소진된 경우). A 심층 요청 — page > 1 또는 limit > 100 — 항상 비용이 발생합니다 1 크레딧. 보기 플랜 및 결제.

쿼리 매개변수

매개변수유형필수설명
domainstring예루트 도메인, 예: example.com (전체 URL도 허용되며 정규화됩니다)
페이지integer아니오페이지 번호, 기본값 1
limitinteger아니오페이지당 결과 수, 1–200, 기본값 100

예시 요청

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/backlinks?domain=example.com&limit=2"

예시 응답

{
  "success": true,
  "data": {
    "domain": "example.com",
    "total_backlinks": 48210,
    "referring_domains": 1824,
    "page": 1,
    "limit": 2,
    "overview": {
      "domain_rank": 71,
      "total_backlinks": 48210,
      "referring_domains": 1824,
      "referring_domains_nofollow": 640,
      "referring_main_domains": 1610,
      "referring_pages": 39044,
      "referring_ips": 1502,
      "referring_subnets": 1210,
      "dofollow_backlinks": 1184,
      "broken_backlinks": 220,
      "broken_pages": 96,
      "spam_score": 8,
      "first_seen": "2018-05-11 09:20:00",
      "lost_date": null
    },
    "insights": {
      "referring_links_types":          { "anchor": 30140, "image": 9800 },
      "referring_links_attributes":     { "noopener": 12000, "nofollow": 8400 },
      "referring_links_platform_types": { "blogs": 900, "cms": 640, "news": 210 },
      "referring_links_tld":            { "com": 1200, "org": 180 },
      "referring_links_countries":      { "US": 800, "GB": 210 },
      "referring_subnets": 1210,
      "referring_main_domains": 1610
    },
    "backlinks": [
      {
        "domain_from": "blog.example-news.com",
        "url_from": "https://blog.example-news.com/best-seo-tools",
        "url_to": "https://example.com/",
        "anchor": "SignalSumo",
        "dofollow": 1,
        "spam_score": 4,
        "first_seen": "2021-03-10 12:00:00",
        "last_seen": "2026-06-20 04:00:00",
        "semantic_location": "article",
        "platform_type": "blogs",
        "country": "US",
        "is_broken": 0,
        "domain_from_rank": 62,
        "page_from_rank": 41,
        "is_lost": 0,
        "lost_date": null,
        "is_new": 0,
        "item_type": "anchor",
        "page_from_title": "The Best SEO Tools in 2026",
        "page_from_status_code": 200,
        "url_to_status_code": 200,
        "domain_from_ip": "192.0.2.10",
        "tld_from": "com",
        "links_count": 2,
        "is_indirect_link": 0,
        "url_from_https": 1,
        "attributes": ["noopener"],
        "text_pre": "we recommend",
        "text_post": "for site audits",
        "kw_top3": 4,
        "kw_top10": 12,
        "kw_top100": 88
      }
    ]
  },
  "meta": { "timestamp": "2026-06-26T10:00:00+00:00", "cached": false }
}

백링크 필드

필드설명
domain_from / url_from링크를 제공하는 사이트와 정확한 페이지
url_to귀하 도메인에서 링크된 페이지
anchor링크의 앵커 텍스트
dofollow1 = dofollow, 0 = nofollow
spam_score링크 페이지의 스팸 점수 (0–100)
domain_from_rank / page_from_rank링크 도메인 / 페이지의 권위, 정규화 0–100
is_new / is_lost / is_broken링크 수명 주기 플래그 (1/0)
first_seen / last_seen / lost_date링크가 처음 발견된 시점, 마지막으로 본 시점, 그리고(해당되는 경우) 손실된 시점
platform_type / country / tld_from링크 사이트의 플랫폼, 국가 및 TLD
item_type링크 형식: anchor, image, redirect, …
page_from_status_code / url_to_status_code링크 페이지 / 연결된 페이지의 HTTP 상태
attributes링크 rel 속성, 예: ["noopener","nofollow"]
kw_top3 / kw_top10 / kw_top100링크 페이지가 상위 3 / 10 / 100에 랭크된 키워드

POST /api/v1/keyword-research

POST /api/v1/keyword-research

시드 키워드에 대한 전체 메트릭 세트를 반환합니다 — 검색량, CPC, 경쟁도, 난이도, 검색 의도, 12개월 볼륨 추세, SERP 기능 등 — 또한 동일한 필드를 포함한 관련 키워드 순위 목록을 제공합니다. 동기식으로 즉시 응답합니다.

다음은 메트릭입니다 키워드 연구 도구 표시됩니다. 추구할 가치가 있는 키워드를 선택하면 순위 추적기 follows their positions daily — and /rank/keywords 해당 포지션을 다시 읽어옵니다, 무료입니다.

이 엔드포인트는 월간 키워드 검색 할당량을 차감하고 크레딧을 절대 사용하지 않습니다: 할당량이 소진되면 반환됩니다 429 QUOTA_EXCEEDED, 따라서 루프에서 호출해도 안전합니다. 최근 조회는 캐시에서 제공됩니다(표시됨 "cached": true) 할당량 비용 없이.

요청 본문 (JSON)

필드유형필수설명
keywordstring예시드 키워드, 최대 200자
location_codeinteger아니오위치 코드, 기본값 2840 (United States)
language_codestring아니오언어 코드, 기본값 en
limitinteger아니오반환되는 최대 연관 키워드 수, 1–100, 기본값 10

예시 요청

curl -X POST \
     -H "Authorization: Bearer ss_live_xxxx" \
     -H "Content-Type: application/json" \
     -d '{"keyword":"seo audit tool","limit":5}' \
     "https://signalsumo.com/api/v1/keyword-research"

예시 응답

{
  "success": true,
  "data": {
    "keyword": "seo audit tool",
    "location_code": 2840,
    "language_code": "en",
    "total_count": 80,
    "overview": {
      "search_volume": 2900,
      "cpc": 19.07,
      "competition": 0.11,
      "competition_level": "LOW",
      "difficulty": 77,
      "intent": ["Commercial"],
      "trend": [ { "y": 2026, "m": 5, "v": 2400 }, { "y": 2026, "m": 6, "v": 1600 } ],
      "serp_features": ["organic"],
      "growth": { "m": -33, "q": -16, "y": -64 },
      "bid_low": 4.72,
      "bid_high": 19.10,
      "avg_backlinks": 5087,
      "avg_ref_domains": 970,
      "comp_domain_rank": 486,
      "se_results": 41000000
    },
    "related_keywords": [
      {
        "keyword": "free seo audit tool",
        "search_volume": 1900,
        "cpc": 3.10,
        "competition": 0.68,
        "competition_level": "MEDIUM",
        "difficulty": 54,
        "intent": ["Commercial", "Transactional"],
        "trend": [ { "y": 2026, "m": 6, "v": 1900 } ],
        "serp_features": ["organic", "people_also_ask"],
        "growth": { "m": 4, "q": -2, "y": 11 },
        "bid_low": 1.20,
        "bid_high": 4.90,
        "avg_backlinks": 210,
        "avg_ref_domains": 88,
        "comp_domain_rank": 402,
        "se_results": 12000000,
        "related": ["website audit tool", "seo checker free"],
        "match_bucket": "similar"
      }
    ]
  },
  "meta": { "timestamp": "2026-06-26T10:00:00+00:00" }
}

키워드 필드

The overview (시드 키워드) 및 모든 related_keywords 행에 이 필드들을 공유합니다. 모든 필드는 null 업스트림 데이터가 사용 불가능한 경우.

필드설명
search_volume월 평균 검색량
cpc평균 클릭당 비용 (USD)
competition유료 경쟁, 0–1
경쟁 수준LOW / MEDIUM / HIGH
난이도유기적 순위 난이도, 0–100 (null 아직 계산되지 않음)
의도검색 의도, 예: ["Commercial"]
추세12개월 볼륨 히스토리 — { y, m, v } 월별
성장볼륨 변화 %: m 월간, q 분기별, y 연간
SERP 기능SERP 기능 유형이 존재함, 예: ["organic","people_also_ask"]
입찰 최저가 / 입찰 최고가페이지 상단 입찰 범위 (USD)
평균 백링크 / 평균 참조 도메인현재 순위에 있는 페이지의 평균 백링크 / 참조 도메인
경쟁 도메인 순위현재 순위에 있는 페이지의 평균 권위 (0–1000)
검색 엔진 결과키워드에 대한 총 경쟁 결과
관련최대 8개의 관련 하위 키워드(관련 행만)
매치 버킷시드와의 관계: similar, related, or question

POST /api/v1/site-audit

POST /api/v1/site-audit

동일한 크롤링을 실행합니다 웹사이트 감사 도구 — broken links, redirect chains, missing titles and canonical problems, page by page.

사이트 감사는 비동기식. 이 엔드포인트는 job_id immediately. Poll GET /api/v1/jobs/{job_id} 결과에 대해. 일반적인 크롤링 시간: 1–5분.

요청 본문 (JSON)

필드유형필수설명
URLstring예크롤링할 전체 URL, 예: https://example.com
최대 페이지 수integer아니오크롤링할 최대 페이지 수(기본값 100). 귀하의 플랜에 따른 크롤링 제한 및 남은 월간 페이지 예산에 의해 제한됩니다.
깊이integer아니오크롤링 깊이, 1–5, 기본값 3

예시 요청

curl -X POST \
     -H "Authorization: Bearer ss_live_xxxx" \
     -H "Content-Type: application/json" \
     -d '{"url":"https://example.com","max_pages":50}' \
     "https://signalsumo.com/api/v1/site-audit"

응답 (202 Accepted)

{
  "success": true,
  "job_id": "a3f9b2c1d4e5f6a7b8c9d0e1f2a3b4c5",
  "status": "queued",
  "poll": "https://signalsumo.com/api/v1/jobs/a3f9b2c1d4e5f6a7b8c9d0e1f2a3b4c5",
  "meta": { "timestamp": "2026-06-26T10:00:00+00:00" }
}

GET /api/v1/jobs/{job_id}

GET /api/v1/jobs/{job_id}

비동기 작업의 상태를 폴링합니다. 10–15초마다 폴링하여 status is complete 또는 failed.

상태 값

상태의미
대기 중작업이 수락되었으며 아직 시작되지 않음
실행 중크롤링 진행 중 — 확인 progress (0–100)
완료완료 — data 필드에 결과가 포함됨
실패크롤링 실패 — error 필드에 이유가 있음

예시 요청

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/jobs/a3f9b2c1d4e5f6a7b8c9d0e1f2a3b4c5"

응답 — 진행 중

{
  "success": true,
  "data": {
    "job_id": "a3f9b2c1d4e5f6a7b8c9d0e1f2a3b4c5",
    "endpoint": "site-audit",
    "status": "running",
    "progress": 42,
    "created_at": "2026-06-26 10:00:00",
    "updated_at": "2026-06-26 10:01:30",
    "completed_at": null
  },
  "meta": { "timestamp": "2026-06-26T10:01:30+00:00" }
}

응답 — 완료

{
  "success": true,
  "data": {
    "job_id": "a3f9b2c1d4e5f6a7b8c9d0e1f2a3b4c5",
    "endpoint": "site-audit",
    "status": "complete",
    "progress": 100,
    "created_at": "2026-06-26 10:00:00",
    "updated_at": "2026-06-26 10:03:18",
    "completed_at": "2026-06-26 10:03:18",
    "data": {
      "audit_id": "AUDIT-A1B2C3-4567",
      "domain": "https://example.com",
      "pages_crawled": 47,
      "total_score": 78,
      "geo_score": 71,
      "issues": { "critical": 3, "warning": 12, "total": 15 },
      "report_url": "https://signalsumo.com/report?id=AUDIT-A1B2C3-4567"
    }
  },
  "meta": { "timestamp": "2026-06-26T10:03:18+00:00" }
}

GET /api/v1/rank/keywords

GET /api/v1/rank/keywords

계정에서 추적하는 모든 키워드와 각각 측정된 시장·디바이스 및 최신 순위입니다. 이는 다음의 데이터입니다 순위 추적기 — no crawl is triggered and nothing is charged.

country, language 및 device are returned on every row on purpose. A position is meaningless without them — comparing a desktop US ranking against a mobile UK one produces a decline that never happened.

쿼리 매개변수

매개변수유형필수설명
project_idinteger아니오프로젝트 하나로 제한합니다. 생략하면 보유 중인 모든 프로젝트의 키워드를 반환합니다.
limitinteger아니오1–500, default 100

예시 요청

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/rank/keywords?limit=1"

예시 응답

{
  "success": true,
  "data": {
    "keywords": [
      {
        "keyword_id": 4821,
        "keyword": "seo audit tool",
        "difficulty": 62,
        "search_volume": 8100,
        "cpc": 12.4,
        "country": "US",
        "language": "en",
        "device": "desktop",
        "status": "active",
        "project_id": 17,
        "project_domain": "example.com",
        "project_name": "Example Site",
        "last_checked": "2026-08-19",
        "current_position": 8,
        "previous_position": 11,
        "position_change": 3,
        "landing_page": "https://example.com/tools/audit",
        "gsc_clicks": 143,
        "gsc_impressions": 5210,
        "gsc_ctr": 2.74,
        "local_pack": false,
        "featured_snippet": true,
        "ai_overview": false
      }
    ],
    "count": 1
  },
  "meta": { "project_id": null, "limit": 1 }
}

position_change 키워드가 이동했을 때 양수입니다 위. 아직 확인되지 않은 키워드는 반환됩니다 null 모든 latest.* 필드 대신 0 — position zero would read as "ranked first".

GET /api/v1/rank/history

GET /api/v1/rank/history?keyword_id={id}

추적된 키워드 하나에 대한 일일 포지션 히스토리와 순위에 오른 URL 및 각 검사 시 존재한 SERP 기능을 포함합니다. 사전 계산된 trend 요약.

쿼리 매개변수

매개변수유형필수설명
keyword_idinteger예시작 /rank/keywords. 소유하지 않은 키워드는 반환됩니다 404 NOT_FOUND.
일integer아니오1–365, default 90

예시 요청

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/rank/history?keyword_id=4821&days=30"

예시 응답

{
  "success": true,
  "data": {
    "keyword": {
      "id": 4821,
      "keyword": "seo audit tool",
      "project_id": 17,
      "domain": "example.com",
      "project": "Example Site"
    },
    "history": [
      {
        "check_date": "2026-08-19",
        "position": 8,
        "previous_position": 11,
        "change": 3,
        "landing_page": "https://example.com/tools/audit",
        "gsc_clicks": 143,
        "gsc_impressions": 5210,
        "gsc_ctr": 2.74,
        "gsc_average_position": 8.6,
        "featured_snippet": true,
        "ai_overview": false,
        "people_also_ask": true,
        "local_pack": false,
        "images": false,
        "videos": false,
        "shopping": false,
        "knowledge_graph": false,
        "sitelinks": true
      }
    ],
    "trend": { "first": 14, "latest": 8, "best": 6, "worst": 15 }
  },
  "meta": { "days_requested": 30, "points": 1 }
}

읽는 중 trend

필드의미
첫 번째위치 가장 오래된 창 내 지점
최신가장 최근 확인 시 위치
최고가장 낮은 수치(최고 순위)
최악가장 높은 수치(최악 순위)

history 최신 순으로 정렬됩니다. best 및 worst 순위 미지정 검사를 무시하여 null 키워드가 해당 기간에 순위에 오르지 않은 경우.

GET /api/v1/gsc/properties

GET /api/v1/gsc/properties

계정에 연결된 Google Search Console 속성은 다음과 같습니다 Search Console Insights. 매개변수가 없습니다.

This reads SignalSumo's synced copy — it does not call Google. last_synced_at 해당 복사본이 얼마나 최신인지 알려줍니다.

예시 요청

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/gsc/properties"

예시 응답

{
  "success": true,
  "data": {
    "properties": [
      {
        "property_id": 31,
        "property_uri": "sc-domain:example.com",
        "display_name": "example.com",
        "status": "active",
        "last_synced_at": "2026-08-20 04:15:02",
        "last_sync_status": "ok",
        "google_email": "[email protected]",
        "is_sandbox": false
      }
    ],
    "count": 1
  }
}

GET /api/v1/gsc/queries

GET /api/v1/gsc/queries?property_id={id}

Clicks, impressions, CTR and average position for a synced property, grouped by whichever dimension you ask for. Despite the name it is not limited to queries — set dim 페이지, 국가, 디바이스 또는 날짜별로 동일한 수치를 분해하려면.

쿼리 매개변수

매개변수유형필수설명
property_idinteger예시작 /gsc/properties. 소유하지 않은 속성은 반환됩니다 404 NOT_FOUND.
dimstring아니오query (기본값), page, country, device, date, searchAppearance
fromstring아니오YYYY-MM-DD, 기본값은 28일 전
tostring아니오YYYY-MM-DD, 기본값은 오늘
sortstring아니오clicks (기본값), impressions, ctr, position, key
dirstring아니오desc (기본값) 또는 asc
limitinteger아니오1–500, default 100
잘못된 형식의 날짜는 반환됩니다 422 VALIDATION_ERROR, 그러나 인식되지 않은 dim 또는 sort 값은 오류를 발생시키지 않고 기본값으로 자동 전환됩니다. 확인하십시오 dim 다시 반영됨 data 분석 결과를 신뢰하기 전에.

예시 요청

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/gsc/queries?property_id=31&dim=query&limit=2"

예시 응답

{
  "success": true,
  "data": {
    "property_id": 31,
    "dim": "query",
    "from": "2026-07-23",
    "to": "2026-08-20",
    "totals": {
      "clicks": 4820,
      "impressions": 216400,
      "ctr": 2.23,
      "position": 18.4
    },
    "rows": [
      { "key": "seo audit tool", "clicks": 143, "impressions": 5210, "ctr": 2.74, "position": 8.6 },
      { "key": "free seo checker", "clicks": 98,  "impressions": 7740, "ctr": 1.27, "position": 14.2 }
    ],
    "total_rows": 1842
  },
  "meta": { "sort": "clicks", "dir": "desc", "limit": 2 }
}

total_rows is the number of distinct keys in the period, not the number returned — use it to decide whether to raise limit. totals 기간 전체를 항상 포함합니다, 다음과 관계없이 limit.

GET /api/v1/ai-visibility/projects

GET /api/v1/ai-visibility/projects

AI 답변 엔진 전반에 걸쳐 추적하는 브랜드와 프로젝트당 한 행, 현재 가시성 점수와 변동을 표시합니다. 매개변수가 필요 없습니다. 제공: AI 가시성 검사기.

Scores are collected by scheduled scans, so this endpoint never calls an AI provider — it returns what the last scan stored.

예시 요청

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/ai-visibility/projects"

예시 응답

{
  "success": true,
  "data": {
    "projects": [
      {
        "id": 9,
        "domain": "example.com",
        "brand_name": "Example",
        "target_country": "US",
        "target_language": "en",
        "ai_engine": "all",
        "tracking_frequency": "weekly",
        "status": "active",
        "visibility_score": 41.8,
        "previous_visibility_score": 37.2,
        "score_change": 4.6,
        "created_at": "2026-05-02 11:20:44",
        "updated_at": "2026-08-18 06:02:11"
      }
    ],
    "count": 1
  }
}

score_change is null until a project has been scanned at least twice — a first scan has nothing to compare against, and reporting 0 "변동 없음"으로 표시됩니다.

GET /api/v1/ai-visibility/share-of-voice

GET /api/v1/ai-visibility/share-of-voice?project_id={id}

AI 어시스턴트가 귀사의 브랜드를 경쟁사와 비교해 얼마나 자주 언급하는지와 최신 스캔에서 얻은 전체 메트릭 세부 정보를 제공합니다.

쿼리 매개변수

매개변수유형필수설명
project_idinteger예시작 /ai-visibility/projects. 소유하지 않은 프로젝트는 반환됩니다 404 NOT_FOUND.

예시 요청

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/ai-visibility/share-of-voice?project_id=9"

예시 응답

{
  "success": true,
  "data": {
    "project": {
      "id": 9,
      "domain": "example.com",
      "brand_name": "Example",
      "target_country": "US",
      "ai_engine": "all",
      "visibility_score": 41.8,
      "previous_visibility_score": 37.2
    },
    "latest_snapshot": {
      "geo_score": 41.8,
      "mention_rate": 38.0,
      "avg_position": 2.4,
      "sentiment_avg": 0.62,
      "citation_rate": 21.5,
      "competition_score": 58.3,
      "prompts_evaluated": 50,
      "snapshot_date": "2026-08-18"
    },
    "share_of_voice": {
      "brand_mentions": 19,
      "competitor_mentions": 74,
      "total_mentions": 93,
      "brand_share_pct": 20.43
    },
    "competitors": [
      {
        "competitor_name": "Competitor One",
        "competitor_domain": "competitor1.com",
        "mention_count": 31,
        "visibility_score": 52.1,
        "avg_position": 1.9,
        "updated_at": "2026-08-18 04:41:07"
      }
    ]
  }
}

두 가지 다른 백분율

이것들은 혼동하기 쉬우며, 서로 다른 질문에 답합니다:

필드답변하는 질문
mention_rateOf the prompts we tested, what share mentioned you at all? — coverage.
brand_share_pctOf every brand mention across you and your tracked competitors, what share was yours? — competitive position.

latest_snapshot is null 프로젝트의 첫 번째 스캔이 완료되기 전에. competitors 최대 20개를 반환하며, 언급 횟수 순으로 정렬됩니다. brand_share_pct is null when no mentions have been recorded on either side — a share of nothing is not zero percent.

GET /api/v1/keyword-research/locations

GET /api/v1/keyword-research/locations

모든 시장 POST /keyword-research 받아들여, 따라서 발견할 수 있습니다 location_code 추측 대신 422. 매개변수가 없습니다.

이는 의도적으로 아님 the full market list. Keyword research runs on the keyword database, which covers fewer markets than SERP work does — publishing the wider list here would only move the failure one call later.

예시 요청

curl -H "Authorization: Bearer ss_live_xxxx" \
     "https://signalsumo.com/api/v1/keyword-research/locations"

예시 응답

{
  "success": true,
  "data": {
    "locations": [
      { "location_code": 2840, "location_name": "United States", "country_iso": "US", "language_code": "en" },
      { "location_code": 2826, "location_name": "United Kingdom", "country_iso": "GB", "language_code": "en" }
    ],
    "count": 94,
    "note": "These are the markets covered by the keyword database. Pass location_code to POST /keyword-research."
  }
}

변경 로그

버전날짜변경 사항
v1.22026년 8월이미 라이브 중인 7개의 읽기 전용 엔드포인트를 문서화했습니다: /rank/keywords, /rank/history, /gsc/properties, /gsc/queries, /ai-visibility/projects, /ai-visibility/share-of-voice 및 /keyword-research/locations. No behaviour changed — these were callable before, just undocumented. Added MCP and LLM client guidance.
v1.12026년 7월키워드 및 백링크 응답이 전체 메트릭 세트(난이도, 의도, 추세, SERP 기능, 강화된 백링크 필드, 개요 및 인사이트)로 확장되었습니다. 사이트 감사 결과가 추가됩니다 geo_score 이슈 수가 포함됩니다. 위치/언어 참조 및 청구 세부 정보가 추가되었습니다.
v1.02026년 6월초기 릴리스 — 사용량, 백링크, 키워드 리서치, 사이트 감사, 작업

문의 사항이 있습니까? 이메일: [email protected]