twitterapi.io (읽기 전용)
twitterapi.io 팀이 유지 관리하는 읽기 전용 스킬입니다. 공개 X/트위터 데이터만 다룹니다: X 계정에 로그인하지 않으며, 쿠키, 비밀번호, 프록시를 처리하지 않고, 게시, 좋아요, 팔로우 또는 메시지를 보내지 않습니다.
twitterapi.io는 X Corp.와 제휴하지 않은 공개 X 데이터용 독립적인 타사 REST API입니다. X의 자체 API가 필요하다면 공식 API는 https://developer.x.com 에 있습니다.
이 스킬을 사용해야 할 때
- X 검색 연산자(
from:,since_time:,min_faves:,lang:…)를 사용하여 게시물 검색 - 사용자 프로필, 팔로워, 팔로잉 조회
- 사용자의 최근 게시물, 답글, 인용 게시물, 리트위터 사용자, 스레드 컨텍스트 가져오기
- 트렌드, 리스트, 커뮤니티
- 공개 데이터에 대한 대시보드, 연구 데이터셋 또는 모니터링 작업 구축
핵심 정보
| 기본 URL | https://api.twitterapi.io |
| 인증 헤더 | x-api-key: YOUR_KEY (https://twitterapi.io/dashboard 에서 발급) |
| 문서 | https://docs.twitterapi.io |
| 가격 | 호출당 과금, https://twitterapi.io/pricing 참조 |
| 호스팅 MCP 서버 | https://mcp.twitterapi.io/mcp (12개의 읽기 전용 도구) |
보안
환경 변수 TWITTERAPI_IO_KEY에서 API 키를 읽습니다. 절대 하드코딩, 출력 또는 커밋하지 마십시오. 키가 없으면 대시보드에서 키를 만들도록 사용자에게 요청하십시오.
최소 예제
curl -s "https://api.twitterapi.io/twitter/user/info?userName=jack" \
-H "x-api-key: $TWITTERAPI_IO_KEY"
import os, requests
BASE = "https://api.twitterapi.io"
HEADERS = {"x-api-key": os.environ["TWITTERAPI_IO_KEY"]}
r = requests.get(f"{BASE}/twitter/tweet/advanced_search",
headers=HEADERS,
params={"query": "from:jack", "queryType": "Latest"},
timeout=30)
r.raise_for_status()
for t in r.json().get("tweets", []):
print(t["createdAt"], t["text"][:80])
읽기 엔드포인트
엔드포인트마다 매개변수 이름이 다릅니다(일부는 camelCase, 일부는 snake_case). 표에 나온 대로 정확히 복사하십시오.
| 기능 | 메서드 | 경로 및 주요 매개변수 |
|---|---|---|
| 화면 이름으로 사용자 조회 | GET | /twitter/user/info?userName= |
| 확장 프로필 | GET | /twitter/user_about?userName= |
| ID로 사용자 조회 | GET | /twitter/user/batch_info_by_ids?userIds= |
| 사용자 검색 | GET | /twitter/user/search?query= |
| 최근 게시물 | GET | /twitter/user/last_tweets?userName= (또는 userId=) |
| 멘션 | GET | /twitter/user/mentions?userName= |
| 팔로워 | GET | /twitter/user/followers?userName=&pageSize=200 |
| 팔로잉 | GET | /twitter/user/followings?userName= |
| ID로 게시물 조회 | GET | /twitter/tweets?tweet_ids= |
| 답글 | GET | /twitter/tweet/replies?tweetId= |
| 인용 게시물 | GET | /twitter/tweet/quotes?tweetId= |
| 리트위터 사용자 | GET | /twitter/tweet/retweeters?tweetId= |
| 스레드 컨텍스트 | GET | /twitter/tweet/thread_context?tweetId= |
| 고급 검색 | GET | /twitter/tweet/advanced_search?query=&queryType=Latest |
| 트렌드 | GET | /twitter/trends?woeid=1 |
| 리스트 게시물 | GET | /twitter/list/tweets?listId= |
| 리스트 멤버 | GET | /twitter/list/members?list_id= |
| 커뮤니티 게시물 | GET | /twitter/community/tweets?community_id= |
| 계정 잔액 | GET | /oapi/my/info |
패턴
페이지네이션
리스트 엔드포인트는 has_next_page와 next_cursor를 반환합니다. next_cursor를 cursor로 전달하고 has_next_page가 false이면 중지하십시오. 버그로 인해 무한 페이지를 요청하지 않도록 항상 페이지 제한을 설정하십시오.
오류
400→ 필수 매개변수가 누락되었거나 검색 쿼리가 유효하지 않음(응답의detail에 수정할 내용이 명시됨)401/403→x-api-key누락 또는 잘못됨402→ 크레딧 부족; 중지하고 사용자에게 충전을 알림(재시도하지 않음)429→ 속도 제한; 백오프로 재시도5xx→ 일시적 오류; 백오프로 재시도
비용 인식
각 호출은 과금됩니다. 대규모 계정의 모든 팔로워 조회 또는 여러 달의 검색과 같이 오래 실행될 수 있는 루프 전에 호출 횟수를 추정하고 사용자에게 확인을 받으십시오.
안티 패턴
- 매개변수 이름을 정규화하지 말고 표에서 그대로 복사하십시오.
402오류 시 재시도하지 마십시오.- API 키를 로깅하거나 커밋하지 마십시오.