Skip to main content
X API는 게시물, 사용자, 미디어 등을 표현하는 구조화된 JSON 객체를 반환합니다. 이 레퍼런스는 각 객체 유형에서 사용 가능한 모든 필드를 문서화합니다.

빠른 탐색

fields parameters를 사용하여 특정 필드를 요청하고, expansions를 사용하여 관련 객체를 포함시킬 수 있습니다.

게시물 (Tweet)

게시물은 X에서 핵심이 되는 콘텐츠 단위입니다. 각 게시물 객체에는 텍스트, 메타데이터, 작성자, 미디어, 설문조사 등의 관련 객체에 대한 참조가 포함됩니다. 기본 필드: id, text, edit_history_tweet_ids 추가 필드를 요청하려면 tweet.fields를 사용하고, 관련 객체를 포함하려면 expansions를 사용합니다.

게시물의 모든 필드

Tweet 객체 가져오기 예시 요청 다음 요청에서는 Tweets lookup 엔드포인트에서 Tweet 객체의 필드를 요청합니다. $BEARER_TOKEN을(를) 본인이 발급받은 Bearer 토큰으로 반드시 교체하세요.
응답 예시

User

user 오브젝트에는 참조된 사용자를 설명하는 Twitter 사용자 계정 메타데이터가 포함되어 있습니다. user 오브젝트는 users lookup 엔드포인트에서 반환되는 기본 오브젝트입니다. 이 엔드포인트에서 추가 user 필드를 요청하려면 user.fields 파라미터를 사용하면 됩니다. user 오브젝트는 Tweet 오브젝트의 하위 오브젝트로도 존재하며, 확장되어 포함될 수 있습니다. 이 오브젝트는 ?expansions=author_id 또는 ?expansions=in_reply_to_user_id를 사용해 기본 필드만 포함된 축약된 오브젝트 형태로 확장해서 가져올 수 있습니다. 오브젝트를 완전하게 구성하기 위해 추가 필드를 요청할 때에는 필드 파라미터 user.fields와 함께 해당 expansions 값을 사용하세요.   사용자 객체 가져오기 요청 예시 다음 요청에서는 users lookup 엔드포인트를 사용해 사용자에 대한 필드를 요청합니다. $BEARER_TOKEN을(를) 반드시 직접 생성한 Bearer 토큰으로 교체해야 합니다.
예시 응답

Space

Space는 실시간 오디오 대화를 통해 표현과 상호작용을 할 수 있게 해 줍니다. Space 데이터 사전에는 Space와 관련된 메타데이터가 포함되어 있으며, 모든 세부 정보는 실시간으로 업데이트됩니다. User 객체는 user 리소스에서 찾을 수 있으며, 확장할 수 있습니다. 이 객체들은 expansions 쿼리 파라미터에 host_ids, creator_id, speaker_ids, mentioned_user_ids 중 최소 하나를 추가하면 확장용으로 제공됩니다. Tweet과 달리 Space는 일시적이어서 종료되거나 생성자가 취소하면 더 이상 사용할 수 없습니다. 앱에서 Space 데이터를 처리할 때는 최신 정보를 반환할 책임이 있으며, 플랫폼에서 더 이상 제공되지 않는 데이터는 반드시 제거해야 합니다. Spaces 조회 엔드포인트를 사용하면 사용자의 기대와 의도를 존중하고 있는지 확인하는 데 도움이 됩니다. **Retrieving a Space Object ** Sample Request 다음 요청에서는 Spaces 조회 엔드포인트를 사용해 Space에 대한 필드를 요청합니다. $BEARER_TOKEN을 직접 생성한 Bearer 토큰으로 반드시 교체하세요.
** 예시 응답 **

리스트

List 오브젝트에는 참조된 리스트를 설명하는 Twitter Lists 메타데이터가 포함되어 있습니다. List 오브젝트는 List 조회 엔드포인트에서 반환되는 기본 오브젝트입니다. 이 엔드포인트에서 추가 리스트 필드를 요청할 때는 list.fields 파라미터 그룹을 사용하면 됩니다. List 오브젝트는 다른 데이터 오브젝트의 자식으로는 나타나지 않습니다. 그러나 user 오브젝트는 user 리소스에서 조회하고 확장할 수 있습니다. 이러한 오브젝트는 expansions 쿼리 파라미터에 owner_id를 추가하여 확장할 수 있습니다. 기본 List 오브젝트를 완성하기 위해 추가 필드를 요청할 때는 list.fields 필드 파라미터를, 확장 오브젝트를 완성하기 위해서는 user.fields를 함께 사용하십시오. User 오브젝트 조회 샘플 요청 다음 요청에서는 List lookup by ID 엔드포인트에서 리스트에 포함된 user에 대한 필드를 요청합니다. $BEARER_TOKEN을 생성한 Bearer Token 값으로 바꾸십시오.
** 샘플 응답**

Media

Media는 Tweet에 첨부된 이미지, GIF, 동영상을 모두 포함합니다. media 객체는 어떤 endpoint에서도 기본(primary) 객체는 아니지만, Tweet 객체 안에서 찾을 수 있고 확장할 수 있습니다. 이 객체는 기본 필드만 포함된 요약 객체를 가져오기 위해 ?expansions=attachments.media_keys로 확장해서 사용할 수 있습니다. 객체를 완성하기 위해 추가 필드를 요청할 때는 필드 매개변수 media.fields와 함께 이 expansion을 사용하십시오. Media 객체 가져오기 샘플 요청 다음 요청에서는 Tweet 조회 엔드포인트에서 Tweet에 첨부된 media 객체에 대한 필드를 요청합니다. media는 Tweet의 하위 객체이므로 attachment.media_keys 확장을 사용해야 합니다. $BEARER_TOKEN을 직접 생성한 Bearer 토큰으로 반드시 교체하세요.

Poll

Tweet에 포함된 투표는 어떤 엔드포인트에서도 기본 객체가 아니지만, Tweet 객체 안에서 찾아 확장할 수 있습니다. 이 객체는 ?expansions=attachments.poll_ids를 사용해 기본 필드만 포함된 요약된 객체로 확장할 수 있습니다. 객체를 완성하기 위해 추가 필드를 요청할 때는 필드 매개변수 poll.fields와 함께 expansions를 사용하세요. 투표 객체 가져오기 샘플 요청 다음 요청에서는 Tweets lookup 엔드포인트에서 Tweet에 첨부된 투표 객체의 필드를 요청합니다. 투표는 Tweet의 하위 객체이므로 attachments.poll_id expansions 매개변수가 필요합니다. $BEARER_TOKEN을 직접 발급받은 Bearer Token으로 반드시 교체하세요.
예시 응답

Place

Tweet에 태그된 장소(place)는 어떤 엔드포인트에서도 기본(primary) 오브젝트가 아니지만, Tweet 리소스에서 조회하고 expansion으로 확장할 수 있습니다. 이 오브젝트는 ?expansions=geo.place_id를 사용해 확장할 수 있으며, 기본 필드만 포함된 요약된 오브젝트를 반환합니다. 오브젝트를 완전하게 가져오기 위해 추가 필드를 요청하려면 place.fields 필드 파라미터와 함께 expansions를 사용하세요. place 오브젝트 가져오기 샘플 요청 다음 요청에서는 Tweets lookup 엔드포인트에서 Tweet에 첨부된 place 오브젝트에 대한 필드를 요청합니다. place는 Tweet의 하위 오브젝트이므로 geo.place_id expansion이 필요합니다. $BEARER_TOKEN은 반드시 사용자가 생성한 Bearer Token으로 교체해야 합니다.
예시 응답

다이렉트 메시지 이벤트

다이렉트 메시지(DM) 대화는 여러 이벤트로 구성됩니다. X API v2는 현재 세 가지 이벤트 type을 지원합니다: MessageCreate, ParticipantsJoin, ParticipantsLeave. DM 이벤트 객체는 Direct Message lookup 엔드포인트에서 반환되며, 다이렉트 메시지가 Manage Direct Messages 엔드포인트를 통해 성공적으로 생성되면 MessageCreate 이벤트가 생성됩니다. DM 이벤트를 요청하면 기본적으로 세 가지 이벤트 객체 속성(또는 필드)이 포함됩니다: id, event_type, text. 추가 이벤트 필드를 받으려면 dm_event.fields와 함께 fields 파라미터를 사용하여 다른 필드를 선택합니다. 사용 가능한 다른 이벤트 필드는 다음과 같습니다: dm_conversation_id, created_at, sender_id, attachments, participant_ids, referenced_tweets. 이 필드 중 일부는 다이렉트 메시지 이벤트와 관련된 다른 X 객체의 ID를 제공합니다:
  • sender_id - 메시지를 보낸 계정 또는 그룹 대화에 참여자를 초대한 계정의 ID
  • partricipants_ids - 계정 ID의 배열입니다. ParticipantsJoin 및 ParticipantsLeave 이벤트의 경우 이 배열에는 이벤트를 생성한 계정의 단일 ID가 포함됩니다
  • attachments - 발신자가 X에 업로드한 콘텐츠의 미디어 ID를 제공합니다
  • referenced_tweets - text 필드에서 Tweet URL이 발견되면 해당 Tweet의 ID가 응답에 포함됩니다
sender_id, participant_ids, referenced_tweets.id, attachments.media_keys에 대한 expansions을 사용해 이러한 X 객체 ID를 확장할 수 있습니다. 다이렉트 메시지 이벤트 객체 가져오기 샘플 요청 이 예에서는 일대일 대화와 관련된 이벤트를 가져오는 요청을 만들어 보겠습니다. 이 요청은 기본적인 다이렉트 메시지 이벤트 필드와 함께, 참조된 Tweet 및 해당 작성자에 대한 추가 필드를 반환합니다. 다음을 요청하는 쿼리를 만들어 보겠습니다:
  • 생성 시점과 어떤 대화(dm_conversation)의 일부인지와 같은 기본 이벤트 속성.
  • 다이렉트 메시지를 보낸 계정 ID와 설명.
  • 참조된 Tweet의 텍스트와 게시 시간.
  • 참조된 Tweet 작성자의 계정 ID와 설명.
이러한 속성을 반환하려면, 요청 쿼리에 다음을 포함해야 합니다: ?dm_event.fields=id,sender_id,text,created_at,dm_conversation_id&expansions=sender_id,referenced_tweets.id&tweet.fields=created_at,text,author_id&user.fields=description
$BEARER_TOKEN을(를) 직접 생성한 Bearer 토큰으로 반드시 바꾸세요. 샘플 응답

커뮤니티

커뮤니티는 X 사용자가 서로 소통하고 공유하며, 가장 관심 있는 토론에 더 가까이 다가갈 수 있도록 마련된 전용 공간입니다. 커뮤니티 내 포스트는 X 상의 누구나 볼 수 있지만, 해당 커뮤니티에 속한 사용자만 이 포스트에 상호작용하고 토론에 참여할 수 있습니다. Community 객체에는 커뮤니티와 관련된 메타데이터가 포함되어 있습니다. Community 객체 조회 샘플 요청 다음 요청에서는 제공된 키워드를 기준으로 커뮤니티 목록을 검색하면서 특정 필드를 요청합니다. $BEARER_TOKEN은 직접 생성한 Bearer 토큰으로 교체해야 합니다.
응답 예시

fields 및 expansions 사용 방법

기본적으로 X API v2 데이터 객체는 fields 또는 expansions 파라미터를 사용하지 않고 요청하는 경우, 소수의 기본 필드만 포함합니다. 이 가이드에서는 응답에서 추가 객체와 필드를 받기 위해 요청에 fieldsexpansions 쿼리 파라미터를 사용하는 방법을 설명합니다. 이 가이드에서는 아래 Tweet 스크린샷을 예로 들어 여러 필드를 요청해 보겠습니다.   이 이미지는 @X 계정이 게시한 Tweet의 스크린샷입니다. Tweet 텍스트, 사용자 이름, 게시 날짜와 시간, 소스, 공개 지표를 볼 수 있으며, 동영상도 포함되어 있습니다. 스크린샷에서 볼 수 있듯이 Tweet 작성자, Tweet 메트릭, 생성 시각(timestamp), 동영상, 동영상 조회 수 등 Tweet과 관련된 여러 정보가 화면에 표시됩니다. 이 외에도 스크린샷에는 보이지 않지만, 요청을 통해 여전히 가져올 수 있는 데이터가 여러 가지 있습니다.  API에 요청을 보낼 때 기본 응답은 단순하며, 기본 Tweet 필드(idtext)만 포함합니다. 또한 사용 중인 엔드포인트에서 반환되는 기본(primary) 객체만 받게 되며, 기본 객체와 연관될 수 있는 기타 관련 데이터 객체는 기본적으로 포함되지 않습니다. 이러한 단순한 기본 응답과 fields, expansions 파라미터를 함께 사용하면, 사용 사례에 따라 필요한 필드만 선택적으로 요청할 수 있습니다.   

추가 필드 및 객체 요청

먼저 Tweet ID와 GET /tweets 엔드포인트를 사용하여 Tweet 객체를 요청합니다. 요청:
응답:
다음 단계별 가이드에서는 스크린샷에 표시된 추가 데이터를 가져오는 방법을 안내합니다.
  1. object model을 사용하거나 각 엔드포인트의 API 참조 문서 페이지에 있는 필드 목록을 검토하여 추가로 요청할 필드를 선택하세요. 이 경우 다음과 같은 추가 필드를 요청합니다: attachments, author_id, created_at, public_metrics.
  2. 위의 필드를 값으로 사용해 쉼표로 구분된 목록으로 tweet.fields 쿼리 매개변수를 구성하세요: ?tweet.fields=attachments,author_id,created_at,public_metrics
  3. 앞에서 호출한 GET /tweets 요청에 쿼리 매개변수를 추가합니다.
요청: curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969&tweet.fields=attachments,author_id,created_at,public_metrics' \ --header 'Authorization: Bearer $BEARER_TOKEN' 응답:
  1. 다음으로, Tweet에 포함된 동영상 관련 필드를 요청합니다. 이를 위해 expansions 매개변수에 attachments.media_keys 값을 지정하여 요청에 추가합니다.
?expansions=attachments.media_keys 요청:
includes 객체에 미디어 객체가 표현된 응답:
  1. 마지막으로 동영상의 조회수와 재생 시간을 요청하겠습니다. 이들은 기본 필드가 아니므로 명시적으로 요청해야 합니다. 요청 시 media.fields 매개변수에 쉼표로 구분된 값 public_metricsduration_ms를 지정하세요.
?media.fields=public_metrics,duration_ms 요청:   curl --request GET --url 'https://api.x.com/2/tweets?ids=1260294888811347969&tweet.fields=attachments,author_id,created_at,public_metrics&expansions=attachments.media_keys&media.fields=duration_ms,public_metrics' --header 'Authorization: Bearer $BEARER_TOKEN' 응답은 이제 Tweet 스크린샷에서 볼 수 있는 모든 데이터를 포함합니다:
이 예제에서 사용한 파라미터는 다음과 같습니다:
  • ids=1260294888811347969
  • tweet.fields=attachments,author_id,created_at,public_metrics
  • expansions=attachments.media_keys
  • media.fields=public_metrics,duration_ms  
이를 모두 조합하면, 전체 쿼리 문자열은 다음과 같습니다:

X API v2 페이로드 예제

Tweet

Tweet 답글

확장된 Tweet

미디어가 포함된 Tweet

인용 Tweet 리트윗