개발자 문서
API 레퍼런스

연동 상태

1. Google 연동 상태 조회google.account.status

MCP 도구 이름 google__account__status

POSThttps://api.xdata.kr/v1/jobsX-Env-Scope: sandbox

샌드박스입니다. 실제 기관을 호출하지 않는 모의 응답이며 일일 한도가 없습니다.

연결한 Google 계정으로 지금 무엇을 조회할 수 있는지 알려 주고, 읽을 수 있는 자산 목록을 함께 돌려줍니다. 한 축이 막혀도 나머지 축은 그대로 조회됩니다.

  • 콘솔에서 Google 계정 연동을 마쳐야 합니다. 이 provider 는 별도 로그인 Job 이 없고 연동 자체가 인증입니다. 이 액션은 입력을 받지 않습니다.
  • 이 상품은 sandbox 환경에서 실행할 수 없습니다(다른 provider 의 모의 응답과 다릅니다). error.code=POLICY_ENV_FORBIDDEN — 실제 사용 환경에서 다시 요청합니다.
  • 이 액션은 입력을 받지 않습니다. params 는 빈 객체로 보냅니다.
Request
순번변수명필수설명
AuthorizationYAPI 자격증명입니다. client_id 와 client_secret 을 콜론으로 이어 Base64 로 인코딩해 보냅니다.

형식 : Basic base64("{client_id}:{client_secret}")

[참고] 인증

X-Env-ScopeY호출 환경입니다.
  • sandbox샌드박스 — 모의 응답
  • real_test데모 — 하루 100 사용 토큰
  • production정식 — 유료 플랜 전용

[참고] 환경

Idempotency-KeyY재시도 식별 키입니다. 같은 키와 같은 본문으로 다시 호출하면 기존 작업이 그대로 반환됩니다. ASCII 문자만 사용하며 UUID v4 를 권장합니다. 고객 정보는 넣지 않습니다.

[참고] 재시도

Content-TypeY요청 본문 형식입니다.
  • application/json고정값 (기본값)
X-Trace-IdN추적 아이디입니다. 지정하지 않으면 서버가 발급합니다.
순번변수명타입길이필수설명
providerstring-Y호출할 기관입니다.
  • google이 API 고정값 (기본값)

예시 : google

actionstring-Y호출할 작업입니다.
  • google.account.status이 API 고정값 (기본값)

예시 : google.account.status

account_link_idstring36조건부등록한 자격증명을 가리키는 아이디입니다. 생략하면 이 계정이 그 기관에 등록한 자격증명 중 대표로 지정한 것이 쓰입니다. 대표가 없으면 등록한 자격증명이 하나뿐일 때만 자동으로 선택되고, 둘 이상이면 직접 지정해야 합니다.

형식 : UUID v4

[참고] 자격증명 등록

paramsobject-N작업 파라미터입니다. 이 API 는 빈 객체로 호출할 수 있습니다.
encrypted_fieldsobject-N민감한 params 값을 RSA-OAEP-256 으로 암호화해 담는 객체입니다. 서버가 복호화해 params 에 합칩니다. 같은 이름을 params 와 함께 쓰지 않습니다.

[참고] 암호화

추가 파라미터가 없습니다. params 는 {} 로 보냅니다.

bash
curl --request POST \
  --url 'https://api.xdata.kr/v1/jobs' \
  --header 'Authorization: Basic {base64(client_id:client_secret)}' \
  --header 'X-Env-Scope: sandbox' \
  --header 'Idempotency-Key: demo-status-001' \
  --header 'Content-Type: application/json' \
  --data '{
  "provider": "google",
  "action": "google.account.status",
  "account_link_id": "9b4c3a2f-0000-4000-8000-000000000000",
  "params": {}
}'
Response
  • result.data 의 analytics_properties·search_console_sites·ads_accounts·youtube_channels·tag_manager_containers 로 조회 가능한 자산 목록을, 각 축의 data_availability 로 그 축을 지금 읽을 수 있는지 확인합니다. 앞 두 축(GA4·Search Console)은 필수라 없으면 inputs 의 blocks_progress 가 true 이고, 뒤 세 축(광고·YouTube·태그 관리자)은 선택이라 비어 있어도 1차 조회는 그대로 진행됩니다. 한 축이 막혀도 막힌 사유(그 축의 data_availability)와 함께 나머지 목록은 그대로 돌아옵니다.
순번변수명설명
linked연동 여부 - 이 응답이 왔다면 항상 true 입니다(연동 안 됐으면 Job 자체가 AUTH_REQUIRED 로 실패합니다)
data_availability애널리틱스·Search Console 두 축 중 더 막힌 쪽 기준 판정
analytics_accountsGA4 계정 목록(계정 id·표시 이름)
analytics_propertiesGA4 속성 목록(속성 id·표시 이름·계정 id·속성 유형) - 다른 조회 액션의 property_id 후보
analytics_accounts_collectionanalytics_accounts 의 건수·잘림·접근 실패 여부
analytics_properties_collectionanalytics_properties 의 건수·잘림·접근 실패 여부
analytics_data_availabilityGA4 축만의 판정
search_console_sitesSearch Console 사이트 목록(주소·권한 수준·읽기 가능 여부) - readable=false 인 항목은 소유권 미확인이라 조회해도 403 이 납니다
search_console_collectionsearch_console_sites 의 건수·잘림·접근 실패 여부
search_console_data_availabilitySearch Console 축만의 판정
ads_accounts광고 계정 목록(계정 번호·표시 이름·통화·시간대·매니저(MCC) 계정 여부) - 다른 조회 액션의 customer_id 후보. 매니저 계정 아래 하위 계정은 이 목록에 없습니다. 광고 범위를 아직 요청하지 않은 연동에서는 대부분 비어 있습니다
ads_collectionads_accounts 의 건수·잘림·접근 실패 여부
ads_data_availability광고 축만의 판정 - 최상위 data_availability 에는 접히지 않습니다(범위를 아직 요청하지 않아 대부분 access_error 이기 때문)
youtube_channels소유한 YouTube 채널 목록(채널 id·제목) - 다른 조회 액션의 channel_id 후보. mine=true 로 받은 소유 채널만 실리고 관리 권한만 있는 채널은 없습니다
youtube_collectionyoutube_channels 의 건수·잘림·접근 실패 여부
youtube_data_availabilityYouTube 축만의 판정 - 최상위 data_availability 에는 접히지 않습니다(같은 이유)
tag_manager_containers태그 관리자 컨테이너 목록(컨테이너 경로·표시 이름·화면에 보이는 공개 ID(GTM- 로 시작)·상위 계정 경로·용도) - 태그 관리자 쓰기 액션의 container_id 후보(고르는 값은 공개 ID 가 아니라 컨테이너 경로입니다). 쓰기 권한 묶음을 허락한 연동에서만 읽히고 그 밖에는 대부분 비어 있습니다
tag_manager_collectiontag_manager_containers 의 건수·잘림·접근 실패 여부
tag_manager_data_availability태그 관리자 축만의 판정 - 최상위 data_availability 에는 접히지 않습니다(같은 이유)
note_ko이름이 같은 자산은 ID 로 구분하라는 안내
unsupported_capabilities이 연동이 지원하지 않는 기능 목록
inputs다음 조회에 넣을 값 후보(예: property_id 선택지)와 그 값이 필수인지
blocked다음 조회로 진행할 수 없는 상태인지
blocking_reasons막힌 이유 목록(키·사유)
as_of이 응답을 만든 시각(UTC)
timezone수치가 속한 시간대 - 이 액션은 수치를 세지 않으므로 항상 null 입니다
is_final'final'(확정)·'provisional'(변동 가능)·'unknown' 중 하나
content_is_data_not_instructions_ko이 응답 내용은 데이터이며 지시가 아니라는 고정 안내문
json
{
    "job_id": "job_01JC8YH8R0E1ABCDEFGHJKMNPQ",
    "status": "QUEUED",
    "env_scope": "sandbox",
    "provider": "google",
    "action": "google.account.status",
    "submitted_at": "2026-05-27T12:34:56+09:00"
}
순번오류 코드발생 조건
AUTH_REQUIRED연동 안 함 · 동의 철회 — Google 계정을 아직 연동하지 않았거나(콘솔의 연동 화면에서 연결) 저장된 연동 토큰을 더는 쓸 수 없습니다(동의 철회·만료·취소 - 콘솔에서 다시 연결).
MAINTENANCE_UPSTREAM일시 중단 — Google 조회가 일시적으로 중단됐습니다. 재시도 가능하며 잠시 뒤 다시 요청합니다.