객체

위에서 참조한 형태를 필드별로 설명합니다. 타입은 비공식 표기입니다: string[]은 문자열 배열이고, A | null은 없을 수도 있습니다.

엔벨로프

스트림, GET /v1/events, 웹훅 전달의 모든 이벤트에 존재합니다.

필드타입의미
vint엔벨로프 버전. 현재 1
tstring이벤트 타입. 아래 표 참조
opcreate | update | deletecreate, update(같은 id의 보강) 또는 delete
idstring안정적인 식별자. 이 값으로 중복 제거
tsint (ms)X에서 발생한 시각, 에포크 이후 ms. X는 프로필 변경, 팔로우와 언팔로우, 인증된 팔로워 증가, 게시물 삭제가 일어난 시각을 알려 주지 않습니다. 이런 이벤트는 저희가 감지한 시각입니다
sidstring리플레이용 스트림 위치. 스트림과 히스토리에 존재
target.idstring모니터링 대상 계정의 숫자형 X id(search.match의 경우 게시물 작성자의 id)
target.screen_namestring모니터링 대상 계정의 핸들
target.namestring계정의 표시 이름
dobject타입별 페이로드

Tweet 페이로드

tweet.create, tweet.reply, tweet.retweet, tweet.quote의 d이며, search.match의 기본 형태입니다.

필드타입의미
tweet_idstring게시물 id, 문자열
kindtweet | reply | retweet | quote게시물의 종류
textstring전체 텍스트(긴 게시물 포함)
langstring | nullX가 감지한 언어
authorUser게시한 계정. 완전한 User 객체이며 search.match의 작성자와 같습니다: 핸들, 표시 이름, 소개, 아바타, 배너, 각종 수치, 인증, 위치, 링크, 가입일. 가벼운 첫 프레임에서는 마지막으로 읽은 계정 정보이고, update에서는 게시물과 함께 읽은 정보입니다
reply_toBrief+ | null답글의 경우: 답글 대상 게시물. Brief에 작성자의 screen_name, tweet_id, user_id가 추가된 형태
retweet_ofBrief | null리포스트의 경우: 원본 게시물
quotedBrief | null인용의 경우: 인용된 게시물
mediastring[]미디어 항목당 하나씩의 이미지 URL
media_itemsMedia[]타입, 비디오 변형, 크기를 포함한 모든 미디어 항목
urlsstring[]게시물 내 확장된 링크
articleArticle | nullX 아티클을 연결한 게시물일 때: 해당 아티클
counts{reply, rt, like, quote, bookmark}읽은 시점의 답글, 리포스트, 좋아요, 인용, 북마크 수
viewsint | null조회수. X가 노출하는 경우
urlstring게시물의 정식 링크
fullbool가벼운 첫 create 프레임에서는 false, 이벤트가 게시물 전체를 담으면 true
kind_finalboolkind가 확정되면 true. false는 kind가 tweet인 가벼운 첫 프레임에만 나타납니다. 그 게시물은 아직 인용일 수 있으며, 같은 id로 이어지는 update가 확정합니다
kind_wastweet | null (update only)게시물 종류를 확정하는 update에만 있으며, 첫 프레임의 종류가 달랐을 때만 나타납니다. 그 프레임이 가졌던 종류입니다(인용으로 밝혀진 게시물이면 tweet)
edit_ofBrief | nulltweet.edit에만: 이 버전이 대체한 버전(id와, 기록이 있으면 본문과 작성자)

Brief

다른 이벤트에 포함되는 축약형 게시물: 리포스트의 원본, 인용된 게시물, 답글 대상 게시물, 또는 고정 게시물.

필드타입의미
idstring게시물 id
userstring작성자의 핸들
namestring작성자의 표시 이름
user_idstring작성자의 숫자형 id
textstring전체 텍스트
mediastring[]이미지 URL
media_itemsMedia[]타입과 비디오 변형을 포함한 미디어 항목
created_msint게시된 시각, 에포크 이후 ms
urlstring게시물 링크

Media

사진, 비디오 또는 GIF 하나. 비디오는 찾을 수 있는 최고 비트레이트의 MP4를 담으며, url은 포스터 프레임입니다.

필드타입의미
typephoto | video | animated_gif미디어 종류
urlstring이미지 URL, 또는 비디오의 포스터 프레임
expanded_urlstringX의 게시물 미디어 페이지
video_urlstring (video)MP4 URL, 사용 가능한 최고 비트레이트
bitrateint (video)해당 MP4의 비트레이트
duration_msint (video)비디오 길이
widthint원본 너비(픽셀)
heightint원본 높이(픽셀)

Article

게시물이 연결한 X 아티클(장문 게시물)입니다. 첫 프레임에는 title과 preview가 담기며, 같은 id의 update가 전문을 전달할 때까지 text는 null입니다.

필드타입의미
idstring아티클 ID
titlestring제목
previewstring아티클의 첫 몇 줄
textstring | null전문(단락은 빈 줄로 구분). 첫 프레임에서는 null
coverstring | null커버 이미지 URL
imagesstring[]아티클 안의 이미지
urlstringX에서 아티클로 가는 링크

Delete 페이로드

tweet.delete의 d. 저희가 본 적 있고 지금은 사라진 게시물에 대해서만 전송됩니다. ts는 삭제를 감지한 시각이며, 게시물 자체의 시각은 그 이전의 create 프레임에 있습니다.

필드타입의미
tweet_idstring삭제된 게시물의 id
urlstring게시물이 있던 위치

프로필 변경 페이로드

모든 profile.* 이벤트의 d. 이 이벤트들의 op는 update입니다.

필드타입의미
fieldstring변경된 프로필 필드. 타입에서 profile. 뒤에 오는 것과 같은 단어
oldany이전 값
newany새 값
tweetBrief (pinned only)profile.pinned의 경우: 새로 고정된 게시물
old_tweetBrief (pinned only)profile.pinned의 경우: 이전에 고정되었던 게시물(보유한 경우)

Follow 페이로드

follow.add, follow.remove, followers.verified.add의 d.

필드타입의미
userUser상대 계정, 전체 User 형태

계정 상태 페이로드

account.status의 d. 상태는 active(정상), protected(승인된 팔로워에게만 게시물 공개), suspended(X에 의한 정지), unavailable(비활성화, 삭제 또는 기타 이유로 볼 수 없음) 중 하나입니다. ts는 저희가 변화를 감지한 시각입니다.

필드타입의미
oldactive | protected | suspended | unavailable이전 상태
newactive | protected | suspended | unavailable현재 상태
reasonstring | nullX가 제공하는 문구(있는 경우, 예: Suspended)

User

팔로우 이벤트와 search.match에 포함되는 전체 계정 프로필.

필드타입의미
idstring숫자형 id
screen_namestring핸들
namestring표시 이름
biostring소개 텍스트
avatarstring아바타 이미지 URL
bannerstring | null배너 이미지 URL
followersint팔로워 수
followingint팔로잉 수
tweetsint게시물 수
locationstring자유 형식 위치
urlstring | null확장된 프로필 링크
verifiedbool인증 배지 보유 여부
verified_typestring | nullblue, business, government 또는 null
protectedbool승인된 팔로워만 게시물을 볼 수 있음
created_atstring (ISO-8601)계정 생성 시각
categorystring | null전문 카테고리. 계정이 설정한 경우

search.match의 d: Tweet 페이로드에 매치 관련 필드 세 개가 추가된 형태. 엔벨로프의 target은 게시물 작성자이며, 모니터링 대상이 아닐 수도 있습니다.

필드타입의미
keyword.idint일치한 키워드의 id
keyword.querystring해당 키워드의 쿼리
keyword.labelstring | null해당 키워드의 라벨(설정한 경우)
authorUser작성자의 전체 프로필
author_is_targetbool작성자가 이 시스템에서 모니터링 중인 계정이기도 하면 true
…TweetPayloadTweet 페이로드의 모든 필드

Target

이 키가 보는 모니터링 대상 계정 하나.

필드타입의미
idstring숫자형 X id. 바뀌지 않으므로 기록의 키로 쓰십시오
screen_namestring현재 핸들. 바뀔 수 있으며 profile.screen_name이 알려 줍니다
namestring표시 이름
previous_screen_namesstring[]계정이 이전에 쓰던 핸들(최근 순). 모두 /v1/monitor/targets/{target}에서 계속 쓸 수 있습니다
push_readybool이 계정에 대해 구독한 모든 이벤트 유형이 실시간으로 수집되고 있음. false라고 해서 보류되는 것은 없습니다. 계정은 구독한 순간부터 모니터링되고 이벤트는 수집되는 대로 전달되므로, 이 플래그를 기다리지 말고 처리하세요
last_push_atdatetime | null이 계정의 실시간 이벤트가 마지막으로 도착한 시각
last_poll_atdatetime | null마지막으로 타임라인을 읽은 시각
state"subscribed"여기서는 항상 subscribed. 대기 중인 조회는 별도의 형태를 가짐
event_typesstring[]이 계정에 대해 전달되는 이벤트 타입. 비어 있으면 키가 허용하는 전부
event_types_allboolevent_types가 비어 있으면 true

대기 중인 Target

요청한 계정을 아직 조회하는 동안 GET /v1/monitor/targets/{target}이 반환하는 것.

필드타입의미
screen_namestring | null핸들로 요청한 경우 그 핸들
user_idstring | nullid로 요청한 경우 그 사용자 id
state"queued"항상 queued
queued_atint (unix s)요청한 시각
event_typesstring[]선택한 이벤트 타입. 확인이 끝나면 적용됩니다
event_types_allboolevent_types가 비어 있으면 true

Keyword

X 검색에서 감시하는 쿼리 하나.

필드타입의미
idint숫자형 id. 삭제할 때 사용
querystringX 검색 문법의 쿼리
labelstring | null설정한 라벨. 모든 매치에 그대로 포함
activebool운영자가 일시 중지한 경우 false
hitsint지금까지 전달된 매치 수
last_hit_atdatetime | null마지막 매치
last_run_atdatetime | null마지막 검색

Account

사용한 키에 대해 GET /v1/account가 반환하는 것.

필드타입의미
namestring발급 시 지정된 키 이름
planstring플랜 프리셋
key_idstring키의 짧은 id. 지원 요청 시 안전하게 인용 가능
scopesstring[]키가 보유한 스코프
event_typesstring[]키 전체의 이벤트 타입 허용 목록. 저희가 관리하며 비어 있으면 전부
event_types_allbool필터가 비어 있으면 true
limits.max_targetsint모니터링 계정 상한
limits.max_connsint동시 WebSocket 상한
limits.max_keywordsint키워드 상한
limits.requests_per_minuteint분당 요청 예산
usage.targetsint현재 모니터링 중인 계정 수
usage.keywordsint현재 감시 중인 키워드 수

Webhook

GET /v1/account/webhook이 반환하는 것.

필드타입의미
urlstring | null등록된 엔드포인트
stats{ok, http_…}전달 카운터: ok, 그리고 관측된 실패 상태별로 http_<code> 하나씩

Meta

모든 목록 옆에 붙는 페이징 정보.

필드타입의미
countint이 페이지의 항목 수
has_morebool다음 페이지 존재 여부
next_cursorstring | null?cursor=로 되돌려 보냄. 끝이면 null

배치 결과

POST /v1/monitor/targets:batch에 보낸 항목마다 하나씩, 같은 순서로.

필드타입의미
indexint요청에서 항목의 위치
statusint단일 항목 엔드포인트가 반환했을 HTTP 상태
dataobject (on success)성공 시 단일 항목 응답 본문
error{code, message, details?} (on failure)실패 시 일반적인 오류 객체

Profile (읽기)

GET /v1/users/{screen_name}, /v1/users/by-id/{user_id}, /v1/users/batch가 계정마다 반환하는 것.

필드타입의미
idstring숫자형 id
namestring표시 이름
screen_namestring핸들
biostring소개 텍스트
locationstring자유 형식 위치
urlstring | null프로필 링크
avatarstring아바타 이미지 URL
bannerstring | null배너 이미지 URL
pinnedstring | null고정 게시물의 id
verifiedbool인증 배지 보유 여부
protectedbool승인된 팔로워만 게시물을 볼 수 있음
followersint팔로워 수
followingint팔로잉 수
tweetsint게시물 수

Tweet (읽기)

읽기 엔드포인트가 반환하는 게시물. Tweet 페이로드와 같은 정보를 저희 파서가 만드는 더 평평한 형태로 담습니다.

필드타입의미
idint게시물 id, 숫자형
created_msint게시된 시각, 에포크 이후 ms
user_idint작성자의 숫자형 id
userstring작성자의 핸들
namestring작성자의 표시 이름
textstring전체 텍스트
langstring | nullX가 감지한 언어
reply_tostring | null답글 대상 핸들
reply_to_status_idstring | null답글 대상 게시물의 id
reply_to_user_idstring | null답글 대상 계정의 id
conversation_idstring스레드 최상위 게시물의 id
is_rtbool리포스트 여부
rt_ofBrief | null리포스트의 경우 원본
is_quotebool다른 게시물 인용 여부
quotedBrief | null인용된 게시물
mediastring[]이미지 URL
media_itemsMedia[]타입과 비디오 변형을 포함한 미디어 항목
urlsstring[]확장된 링크
viewsint | null조회수
counts{reply, rt, like, quote, bookmark}답글, 리포스트, 좋아요, 인용, 북마크 수
articleArticle | null게시물이 연결한 X 아티클(있는 경우): 제목, 미리보기, 커버, 이미지. 전문은 GET /v1/tweets/{tweet_id}/article
edit_ofint | null수정된 버전이면 첫 버전의 id, 아니면 null
edit_idsint[]모든 버전의 id(오래된 순). 수정한 적 없는 게시물은 자기 자신만 있습니다
sourcestring | null게시에 사용된 클라이언트, X가 주는 그대로(HTML 링크, 예: Twitter for iPhone)

User 참조

팔로우 목록 읽기에 사용되는 축약형.

필드타입의미
idstring숫자형 id
screen_namestring핸들
namestring표시 이름