본문으로 건너뛰기
Twexapi
한국어
Esc
↑↓이동↵열기⌘J미리보기
이 페이지에서

Twitter API 오류 코드 및 HTTP 상태 참조

TwexAPI의 Twitter/X API 오류 해결: HTTP 401, 403, 429, 5xx, 유효하지 않은 auth_token, 중복 트윗, DM 한도, 안전한 재시도.

TwexAPI는 Twitter/X API 실패를 HTTP 상태 코드와, 제공되는 경우 업스트림 X 오류 코드로 알립니다. 401은 인증 정보를 수정해야 하고, 403은 접근 권한이나 계정 문제를 해결해야 하며, 429는 요청 제한이 해제될 때까지 기다려야 합니다. 재시도하기 전에 응답 본문을 확인하세요.

이 참조 문서에서 Twitter API 오류 코드, invalid auth_token, 중복 트윗, DM 한도의 해결 방법을 확인할 수 있습니다. 엔드포인트 경로는 현재 API 참조를 따릅니다. MCP 오류, 페이지네이션 복구, SDK 예제는 오류 처리를 참고하세요.

아래 메시지와 업스트림 코드는 문제 해결을 위한 예시입니다. 응답 구조와 HTTP 상태의 대응 관계는 엔드포인트마다 다를 수 있습니다. 엔드포인트 스키마와 실제 응답을 함께 확인하세요.

Twitter API 오류에 맞는 해결 방법 찾기

  • HTTP 401 / Invalid auth_token: TwexAPI API 키와 쓰기 엔드포인트에서 사용하는 X 세션 인증 정보를 모두 확인하세요. 인증을 참고하세요.
  • HTTP 403: 메시지를 살펴 크레딧 부족, 비공개 게시물, 계정 제한, Premium 요구 사항 중 무엇이 원인인지 확인하세요. 같은 요청을 반복해도 접근 권한은 복구되지 않습니다.
  • HTTP 429 / Too Many Requests: Retry-After 또는 retry_after를 따르고, 요청 빈도 제한과 X 계정의 일일 한도를 구분하세요. 요청 제한을 참고하세요.
  • HTTP 500 / 502 / 503: 일시적인 읽기 실패는 대기 시간에 상한을 둔 백오프로 재시도하세요. 쓰기를 반복하기 전에 이미 성공했는지 확인하세요.
  • X 코드 187, 344, 502: 업스트림 X 코드이며 HTTP 상태 코드와는 별개입니다. Twitter/X 코드 표와 재시도 관련 질문을 확인하세요.

오류 응답 형식

HTTP 상태와 전체 JSON 본문을 보존하세요. TwexAPI 응답에는 code와 msg가 포함될 수 있으며, 요청 검증 오류에는 detail이 사용됩니다.

{
  "code": 500,
  "msg": "Internal server error"
}
{
  "detail": [
    {
      "loc": ["body", "cookie"],
      "msg": "Field required",
      "type": "missing"
    }
  ]
}

응답에 추가 업스트림 메타데이터가 포함되어 있다면 함께 보존하세요.

  • error: 제공되는 경우 오류 메시지입니다. 모든 엔드포인트가 이 필드를 사용한다고 가정하지 마세요.
  • twitter_error_code: 제공되는 경우 X 오류 코드입니다. HTTP 상태와는 별개이며, 예를 들어 X 코드 502는 DM 한도를 나타냅니다.
  • retry_after: 제공되는 경우 기다려야 할 초 단위 시간입니다. HTTP Retry-After 헤더도 따르세요.

선택적 필드가 반드시 존재한다고 가정하거나 메시지의 정확한 문자열 일치만으로 분기하지 마세요. 본문에 다른 code가 포함되어 있더라도 HTTP 상태가 2xx가 아니면 실패입니다.

일반적인 오류(모든 엔드포인트)

모든 요청에서 다음 조건을 확인하세요. 실제 메시지는 다를 수 있습니다.

상태 메시지 의미 조치
401 Invalid or missing API key API 키가 없거나 잘못됨 Authorization: Bearer <key> 헤더 확인
400 Missing required … param: <x> 필수 필드나 매개변수가 없거나 유효하지 않음 요청 수정
429 Please try again shortly.(서비스 처리 용량)· Rate limit exceeded… · 또는 X 측 한도 메시지 너무 많은 요청, 서비스 처리 용량, 또는 X 계정 한도(예: 일일 DM/트윗 한도. twitter_error_code가 포함될 수 있음) retry_after / Retry-After 준수. 계정의 일일 한도는 더 오래 기다려야 함
403 크레딧 소진 또는 접근 거부 크레딧이나 계정 권한 부족 잔액 및 계정 접근 권한 확인
422 검증 오류(detail) 요청 필드가 스키마 검증에 실패함 detail에 나열된 필드 수정. 같은 입력으로 재시도하지 않음
500 Internal server error 일시적인 오류 발생 잠시 후 재시도

Twitter API HTTP 상태 코드

상태 의미
200 성공
202 접수됨. 엔드포인트가 이 상태를 반환하면 작업이 아직 완료되지 않음
400 잘못된 요청, 누락되거나 유효하지 않은 매개변수, 유효하지 않은 프록시 URL, 또는 너무 큰 미디어
401 인증되지 않음. 잘못된 API 키 또는 유효하지 않거나 만료된 auth_token
403 접근 금지. 크레딧 부족, 비공개이거나 정지된 대상 계정(게시물을 읽을 수 없음), 사용 중인 계정의 정지·잠금, 권한 제한, 또는 Premium 전용 작업
404 찾을 수 없음. 사용자, 트윗 또는 리소스가 존재하지 않음
409 충돌. 중복 트윗
410 리소스를 이용할 수 없음. 본문에서 계정 정지에 관한 세부 정보 확인
422 요청 검증 실패. detail을 확인하고 입력 수정
423 X가 반환한 경우: 계정이 잠겨 있거나 확인이 필요함
429 너무 많은 요청. 요청 제한에 도달함
500 / 502 / 503 일시적인 서버 또는 업스트림 오류. 재시도

Twitter/X API 오류 코드

응답에 업스트림 X 코드가 포함되어 있다면 다음 의미를 참고하세요. 이는 X 코드이며 HTTP 상태가 아닙니다. 모든 엔드포인트가 twitter_error_code를 노출하는 것은 아닙니다.

코드 의미 조치
32 인증하지 못함 cookie로 제공한 X 세션 인증 정보 갱신
63 대상 계정이 정지됨 접근 가능한 계정을 사용하거나 접근 권한이 복구될 때까지 대기
64 자신의 계정이 정지됨 다른 계정 사용
131 일시적인 X 내부 오류 재시도
139 이미 좋아요를 누름 현재 상태 확인. 작업을 반복하지 않음
144 해당 ID의 트윗을 찾을 수 없음 트윗이 삭제되었거나 ID가 잘못됨
187 중복 트윗 이전 게시물을 확인하고, 새 게시물을 작성하려는 경우 내용 변경
226 요청이 자동화된 것으로 판단됨 재시도
326 계정이 일시적으로 잠김 x.com/account/access에서 잠금을 해제한 뒤 재시도
327 이미 리트윗함 현재 상태 확인. 작업을 반복하지 않음
344 게시가 일시적으로 제한됨(계정이 아닌 네트워크/IP 제한) 백오프하고, 프록시를 제공했다면 확인. 재시도하기 전에 쓰기 결과 확인
349 이 사용자에게 메시지를 보낼 수 없음 수신자가 자신의 DM을 허용하지 않음
399 X 세션 로그인 실패 X 세션 인증 정보 확인
433 답글 제한 / Premium 필요 트윗의 답글 작성 대상이 제한되어 있거나 해당 작업에 X Premium이 필요함
465 오래된 트윗을 리트윗할 수 없음 리트윗하기에는 트윗이 너무 오래됨
476 메시지 요청을 보낼 권한이 없음 계정이 DM 요청을 보낼 수 없음
502 일일 DM(메시지 요청)한도에 도달함 24시간 기다리거나 더 높은 한도의 X Premium 계정 사용

트윗 읽기 및 검색

POST /twitter/{screen_name}/timeline/page, /twitter/tweets-replies/page, /twitter/advanced_search/page에 적용됩니다.

상태 메시지 조치
403 This account's posts are not available. The account is protected (private), suspended, or no longer active. 같은 요청을 재시도하지 않음. 요청이 성공하려면 접근 조건이 바뀌어야 함. 승인된 팔로워가 아닌 사람은 대상의 게시물을 읽을 수 없음. 공개 계정을 대상으로 요청.
403 This account is suspended, so its posts are not available. 대상 계정이 정지됨. 접근 가능한 계정을 사용하거나 접근 권한이 복구될 때까지 대기.
502 Upstream returned an unexpected response — please retry. 업스트림 장애. 대기 시간에 상한을 둔 백오프로 재시도하고 같은 커서를 유지.

게시 및 참여 작업

트윗 작성

POST /twitter/tweets/create

tweet_content, 선택적인 reply_tweet_id, 그리고 cookie에 X 인증 정보를 제공하세요. 트윗 또는 답글 작성을 참고하세요.

상태 코드 메시지 조치
409 187 Status is a duplicate. 게시물이 이미 존재하는지 확인. 새 게시물을 작성하려면 내용 변경
403 433 The original Tweet author restricted who can reply… 해당 트윗이 자신의 답글을 허용하지 않음
403 433 긴 글 / 긴 동영상에는 Premium이 필요함 Premium 계정을 사용하거나 콘텐츠를 짧게 조정
403 n/a 커뮤니티 회원이 아님 먼저 커뮤니티에 가입
429 344 게시가 일시적으로 제한됨(네트워크/IP 제한) 백오프하고 제공한 프록시를 확인한 뒤 게시물이 생성되었는지 확인
502 n/a X returned an empty result(결과 미확인) 재시도하기 전에 계정 타임라인 확인. 쓰기 결과가 확인되지 않음
400 n/a File size exceeds… 미디어 파일 크기 축소
503 226 This request looks automated 백오프하고 재시도하기 전에 쓰기 결과 확인
502 / 503 n/a 일시적인 연결 오류 재시도(proxy를 제공했다면 정상 작동 여부 확인)

좋아요 / 리트윗 / 북마크

POST /twitter/tweets/{tweet_id}/like · /twitter/tweets/{tweet_id}/retweet · /twitter/tweets/{tweet_id}/bookmark

DELETE /twitter/tweets/{tweet_id}/like · /twitter/tweets/{tweet_id}/retweet · /twitter/tweets/{tweet_id}/bookmark

상태 코드 메시지 조치
403 n/a User is suspended, deactivated or offboarded 계정을 이용할 수 없음. 다른 계정으로 전환
401 32 Could not authenticate you cookie로 제공한 X 세션 인증 정보 갱신
403 465 not permitted to retweet an outdated Tweet 리트윗하기에는 트윗이 너무 오래됨
상황에 따라 다름 139 / 327 이미 좋아요를 누름 / 이미 리트윗함 현재 상태 확인. 작업을 반복하지 않음
429 n/a 요청 제한 요청 빈도를 낮춘 뒤 재시도
502 / 503 n/a 일시적인 연결 오류 재시도

트윗 삭제

POST /twitter/tweets/delete-batch

트윗 하나를 삭제하려면 target_id를 제공하세요. 생략하면 일괄 삭제가 선택됩니다. 오류에서 복구할 때는 원래 요청의 필드를 보존하세요.

상태 메시지 조치
404 No status found with that ID 이미 삭제되었거나 ID가 잘못됨
403 작성자가 아님 자신의 트윗만 삭제할 수 있음
401 유효하지 않은 auth_token X 세션 인증 정보 갱신

팔로우 / 언팔로우

POST /twitter/user/follow · DELETE /twitter/user/follow

상태 메시지 조치
404 User not found 핸들/ID 확인
403 제한됨 계정 또는 대상이 해당 작업을 허용하지 않음
401 유효하지 않은 auth_token X 세션 인증 정보 갱신
429 팔로우 한도 기다린 뒤 재시도

프로필 / 아바타 / 배너 업데이트

POST /twitter/profile

이미지 URL에는 profile_image와 profile_banner를, X 인증 정보에는 cookie를 사용하세요.

상태 메시지 조치
401 Invalid auth_token - could not fetch credentials X 세션 인증 정보 갱신
400 너무 큰 이미지 / 잘못된 형식 이미지 수정

미디어 첨부

트윗을 작성하거나 DM을 보낼 때 미디어를 첨부하세요. 현재 참조 문서에는 별도의 미디어 업로드 경로가 없습니다. 트윗 작성 시 media_urls는 이미지 최대 4개, GIF 1개 또는 동영상 1개를 지원합니다. GIF/동영상을 다른 미디어와 함께 사용하지 마세요. 접근할 수 없는 URL, 지원되지 않는 형식, 허용되지 않는 파일 크기를 수정한 뒤 재시도하세요. 필드 이름과 제약 조건은 엔드포인트 스키마를 따르세요.

다이렉트 메시지

POST /v3/twitter/send-dm · /v3/twitter/dm-history · /v3/twitter/conversations

권한 확인에는 POST /v2/dm/status를 사용하세요. DM 보내기를 참고하세요.

상태 코드 메시지 조치
429 502 You've hit your daily message request limit. Subscribe to Premium for higher limits. 24시간 기다리거나 Premium 계정 사용
403 476 Sender is not verified to send message requests 계정이 DM 요청을 보낼 수 없음
403 349 Cannot send messages to this user 수신자가 자신의 DM을 허용하지 않음
401 32 Could not authenticate you X 세션 인증 정보 갱신
404 n/a 대화 / 사용자를 찾을 수 없음 수신자 확인

데이터 읽기

POST /v2/tweet/detail · /twitter/tweets/lookup · /twitter/users/by_ids · /v3/twitter/users/followers · /v3/twitter/users/following · /twitter/tweets/thread_by_id · /twitter/tweets/{tweet_id}/replies/page

GET /twitter/{screen_name}/about · /twitter/search-user/{keyword}/{target_count}

상태 메시지 조치
404 Tweet not found: <id> 트윗이 삭제되었거나 비공개이거나 ID가 잘못됨
404 Could not resolve userId for @<handle> 핸들이 존재하지 않거나 변경되었거나 계정이 정지됨
404 Could not find user with ID: <id> 사용자 ID 확인
400 Missing required query param: <x> 필수 매개변수 제공
429 요청 제한 retry_after만큼 기다린 뒤 재시도

아티클

POST /x/article · GET /x/article/{tweet_id}/markdown

쓰기 작업: POST /x/articles/draft · PUT /x/articles/{article_id}/cover · /x/articles/{article_id}/title · /x/articles/{article_id}/content · POST /x/articles/{article_id}/publish 또는 /x/articles/publish.

아래 Premium 요구 사항은 아티클 게시에 적용됩니다. article_id를 보존하고 실패한 단계만 재시도할 수 있도록 단계별 아티클 작성 흐름을 사용하는 것이 좋습니다.

상태 메시지 조치
403 Premium 필요 아티클 게시에는 X Premium 계정이 필요함
404 아티클을 찾을 수 없음 아티클 ID 확인
401 유효하지 않은 auth_token X 세션 인증 정보 갱신
400 유효하지 않은 콘텐츠 아티클 본문 수정

재시도 안내

발생한 오류 재시도 여부 참고 사항
429 ✅ 안내된 시간만큼 기다린 뒤 요청 빈도 제한과 함께 계정의 일일 한도도 준수
422 ❌ 검증 응답에 나열된 필드 수정
500 / 502 / 503 ✅ 일시적인 오류이므로 잠시 후 재시도
X 코드 226 쓰기 결과를 확인한 뒤 백오프하고 재시도하기 전에 계정 제한 확인
401 ❌ API 키를 수정하거나 X 세션 인증 정보 갱신
403(정지/잠금) ❌ 다른 계정을 사용하거나 먼저 잠금 해제
404 ❌ ID/핸들 확인
400 / 409 ❌ 요청 수정(매개변수, 미디어 크기, 중복 내용)

팁: 429와 일시적인 5xx에는 지터를 추가하고 대기 시간에 상한을 둔 백오프를 사용하세요. 400/401/403/404/409/422는 먼저 입력, 인증 정보 또는 계정 접근 권한을 수정하세요.

Twitter API 오류 및 재시도 질문

Twitter API가 401 또는 invalid auth_token을 반환하는 이유는 무엇인가요?

HTTP 401은 TwexAPI API 키가 없거나 유효하지 않다는 뜻일 수 있습니다. 쓰기 엔드포인트에서는 Invalid auth_token 또는 X 코드 32가 X 세션이 만료되었다는 뜻일 수도 있습니다. 재시도하기 전에 Bearer 헤더를 수정하거나 cookie로 제공한 X 인증 정보를 갱신하세요.

Twitter API 오류 403과 429는 어떻게 다른가요?

HTTP 403은 크레딧 부족, 비공개 콘텐츠, 제한된 계정, Premium 전용 작업 등의 접근 문제를 나타냅니다. HTTP 429는 요청 또는 계정 한도를 나타냅니다. 403의 원인을 해결하고, 429가 발생하면 안내된 한도가 초기화될 때까지 기다리세요.

Twitter API의 429 Too Many Requests 오류는 어떻게 해결하나요?

Retry-After 또는 retry_after가 제공되면 해당 시간만큼 기다린 뒤, 동시 요청 수를 줄이고 대기 시간에 상한을 둔 백오프로 재개하세요. 일일 트윗 또는 DM 한도는 잠깐 기다리는 것이 아니라 한도가 초기화될 때까지 기다려야 합니다. 읽기를 재시도할 때 실패한 페이지의 커서를 보존하세요.

Twitter 오류 코드 187은 무엇을 의미하나요?

X 오류 코드 187은 트윗 내용이 중복된다는 뜻입니다. 이전 쓰기 작업에서 이미 게시물이 생성되었는지 확인하세요. 다른 게시물을 게시하려는 경우 같은 요청을 반복하는 대신 tweet_content를 변경하세요.

Twitter 오류 코드 344는 무엇을 의미하나요?

X 오류 코드 344는 네트워크 또는 IP와 관련된 일시적인 게시 제한을 나타냅니다. 백오프하고 제공한 프록시를 확인한 뒤, 쓰기를 재시도하기 전에 계정 타임라인을 살펴보세요. 이는 X 오류 코드이며 HTTP 상태 코드가 아닙니다.

Twitter API 오류 500, 502, 503은 재시도해야 하나요?

일시적인 읽기 실패는 지터를 추가하고 대기 시간에 상한을 둔 백오프로 재시도하세요. 쓰기 작업이 시간 초과되거나 5xx를 반환하면 먼저 타임라인, DM 기록 또는 참여 상태를 확인하세요. 실패 응답은 쓰기가 적용되지 않았다는 증거가 아닙니다.

TwexAPI의 422 검증 오류는 재시도해야 하나요?

같은 입력으로 재시도하지 마세요. TwexAPI는 요청 검증 오류에 HTTP 422를 사용합니다. detail에서 실패한 필드, 위치, 유형을 확인하고 엔드포인트 스키마에 따라 요청을 수정하세요.

Twitter 오류 코드 502는 HTTP 502와 같은가요?

아닙니다. X 오류 코드 502는 일일 DM 요청 한도를 나타내며 HTTP 429와 함께 반환될 수 있습니다. HTTP 502는 업스트림 응답 실패를 나타냅니다. 재시도 정책을 선택하기 전에 HTTP 상태와, 제공되는 경우 twitter_error_code를 모두 확인하세요.

관련 페이지

마지막 업데이트 2026년 10월 8일

이 페이지가 도움이 되었나요?