로컬 API 개요
TikMatrix는 프로그래밍 방식으로 작업을 관리할 수 있는 로컬 RESTful API를 제공합니다. 이는 TikMatrix를 자체 자동화 시스템과 통합하거나, 사용자 정의 워크플로우를 구축하거나, 일괄 작업을 생성하는 데 유용합니다.
요구 사항
로컬 API는 Pro, Team, Business 플랜 구독자만 사용할 수 있습니다. Starter 플랜은 API에 액세스할 수 없습니다.
기본 URL
API는 로컬 머신에서 실행됩니다:
http://localhost:50809/api/v1/
포트 50809는 기본 포트입니다. API 요청을 하기 전에 TikMatrix가 실행 중인지 확인하세요.
응답 형식
모든 API 응답은 다음 형식을 따릅니다:
{
"code": 0,
"message": "success",
"data": { ... }
}
응답 코드
| 코드 | 설명 |
|---|---|
| 0 | 성공 |
| 40001 | 잘못된 요청 - 유효하지 않은 매개변수(검증을 통과하지 못한 script_config 포함) |
| 40002 | 잘못된 요청 - script_name 누락 |
| 40003 | 잘못된 요청 - 이 빌드나 플랫폼에서 지원하지 않는 스크립트, 구현이 없거나, 작업 상태가 유효하지 않음 |
| 40004 | 잘못된 요청 - 실행 중인 작업만 중지할 수 있습니다 |
| 40005 | 잘못된 요청 - task_ids는 비워둘 수 없습니다 |
| 40301 | 금지 - API 액세스에는 Pro+ 플랜 필요 |
| 40401 | 찾을 수 없음 - 리소스를 찾을 수 없음 |
| 50001 | 내부 서버 오류 |
빠른 시작
1. API 액세스 확인
먼저 라이선스가 API 액세스를 지원하는지 확인합니다:
curl http://localhost:50809/api/v1/license/check
응답:
{
"code": 0,
"message": "success",
"data": {
"plan_name": "Pro",
"api_enabled": true,
"device_limit": 20,
"message": "API access enabled"
}
}
2. 스크립트와 매개변수 조회
GET /api/v1/schema는 이 빌드가 실행할 수 있는 모든 스크립트와 각각이 받는 script_config 필드를 정확히 알려줍니다. 이름, 타입, 기본값, 허용 값, 필수 여부까지 포함합니다. 서버가 검증에 사용하는 것과 같은 카탈로그에서 생성되므로 작업 생성이 실제로 받아들이는 내용과 어긋날 수 없습니다.
curl http://localhost:50809/api/v1/schema
선택적 쿼리 매개변수 두 가지:
| 매개변수 | 효과 |
|---|---|
platform | 목록을 tiktok 또는 instagram으로 제한합니다. 이 빌드에 없는 플랫폼은 40001로 거부됩니다. 기본값은 빌드가 제공하는 전체입니다. |
include_unavailable | true로 지정하면 API가 받아들이지만 동작하는 구현이 없는 스크립트 이름도 함께 나열합니다. 각 항목에 unavailable_reason이 붙습니다. |
응답(요약):
{
"code": 0,
"message": "success",
"data": {
"build": { "platforms": ["tiktok"] },
"scripts": [
{
"name": "follow",
"internal_name": "follow",
"summary": "Follow the given users. One task per target.",
"platforms": ["tiktok", "instagram"],
"available": true,
"fan_out": { "kind": "per_item", "key": "target_users", "alt_key": "target_user" },
"any_of": [["target_users", "target_user"]],
"fields": [
{
"key": "access_method",
"type": "string",
"required": false,
"default": "direct",
"choices": ["direct", "search"],
"description": "How to reach the profile: direct (via URL) or search."
}
]
}
]
}
}
fan_out은 요청 하나가 몇 개의 작업을 만드는지 알려줍니다. per_device는 기기당 하나(다중 계정 모드에서는 계정당 하나), per_item은 지정한 필드의 항목마다 기기당 하나씩 만듭니다.
3. 작업 생성
curl -X POST http://localhost:50809/api/v1/task \
-H "Content-Type: application/json" \
-d '{
"serials": ["device_serial_1", "device_serial_2"],
"script_name": "post",
"script_config": {
"content_type": 1,
"captions": "새 동영상을 확인하세요! #바이럴"
},
"enable_multi_account": false,
"start_time": "14:30"
}'
4. 작업 목록 조회
curl http://localhost:50809/api/v1/task?status=0&page=1&page_size=20
사용 가능한 스크립트
script_name 매개변수에서 허용하는 값:
| 스크립트 이름 | 설명 | API 지원 |
|---|---|---|
post | 콘텐츠 게시 | ✅ 지원됨 |
follow | 사용자 팔로우 | ✅ 지원됨 |
unfollow | 사용자 언팔로우 | ✅ 지원됨 |
account_warmup | 계정 워밍업 | ✅ 지원됨 |
comment | 게시물에 새 댓글 | ✅ 지원됨 |
boost_comment | 기존 댓글 좋아요/답글 | ✅ 지원됨 |
login | 계정 로그인 | ✅ 지원됨 |
profile | 프로필 업데이트 | ✅ 지원됨 |
match_account | 기기의 계정 매칭 | ✅ 지원됨 |
like | 게시물 좋아요 | ✅ 지원됨 |
view | 게시물을 일정 시간 동안 시청 | ✅ 지원됨 |
favorite | 게시물을 즐겨찾기에 저장 | ✅ 지원됨 |
repost | TikTok 동영상 리포스트 | ✅ 지원 — TikTok 전용 |
message | 다이렉트 메시지 | ❌ 사용 불가 § |
follow_suggested | 추천 계정 팔로우 | ✅ 지원 — TikTok 전용 |
super_marketing | 슈퍼 마케팅 캠페인 | ✅ 지원됨 † |
scrape_user | 사용자 데이터 스크래핑 | 🔜 출시 예정 |
슈퍼 마케팅 캠페인은 POST /api/v1/task를 통해 생성하지 않습니다. 재사용 가능한 타겟 데이터셋을 기반으로 실행되며 전용 엔드포인트가 있습니다 — 슈퍼 마케팅 스크립트 구성을 참고하세요.
message에는 구현이 없습니다message는 작업 생성 단계에서 받아들여졌지만, 스크립트 바이너리에 두 플랫폼 모두 처리 분기가 없어 이런 작업은 기기에서 "Unknown script"로 실패했습니다. 이제는 생성 시점에 그 이유와 함께 거부됩니다. 지금 다이렉트 메시지를 보내려면 대상 데이터셋을 통해 DM을 처리하는 super_marketing을 사용하세요.
repost와 follow_suggested는 TikTok용으로만 구현되어 있습니다. Instagram 대상으로 생성하면 대기열에 들어가지 않고 거부됩니다. 이전에는 작업이 생성된 뒤 기기에서 실패했습니다.
script_config 검증
작업 생성은 아무것도 기록하기 전에 위 스키마로 script_config를 검증합니다. 따라서 잘못된 매개변수는 나중에 휴대폰에서 실패하는 작업이 아니라, 필드 이름을 알려주는 400으로 돌아옵니다. 거부되는 경우는 세 가지입니다:
- 필수 필드가 없거나 비어 있음
- 택일 그룹에서 어느 것도 설정되지 않음(예:
follow는target_users/target_user중 하나가 필요) - 필드에 문서화된
choices범위를 벗어난 값
스키마에 없는 키는 거부가 아니라 무시됩니다. 데스크톱 앱도 같은 객체로 자체 키를 전달하며, 모르는 키를 거부하면 기존 연동이 깨지기 때문입니다. 서버 로그에는 남으므로 앱 로그에서 오타를 찾을 수 있습니다.
숫자는 문자열로 보내도 됩니다(20뿐 아니라 "20"도 가능). 스크립트가 이미 받아들이는 형식과 같습니다.
작업 상태
| 상태 코드 | 상태 텍스트 | 설명 |
|---|---|---|
| 0 | pending | 작업 실행 대기 중 |
| 1 | running | 작업 실행 중 |
| 2 | completed | 작업 성공적으로 완료 |
| 3 | failed | 작업 실패 |
다음 단계
- 작업 관리 API - 작업 생성, 조회 및 관리
- 활동 로그 API - 활동 로그 추적 및 관리
- 게시 스크립트 구성 - 게시 스크립트 매개변수 구성
- 팔로우 스크립트 구성 - 팔로우 스크립트 매개변수 구성
- 추천 팔로우 스크립트 구성 - 추천 팔로우 스크립트 매개변수 구성
- 언팔로우 스크립트 구성 - 언팔로우 스크립트 매개변수 구성
- 계정 워밍업 스크립트 구성 - 계정 워밍업 스크립트 매개변수 구성
- 댓글 스크립트 구성 - 게시물에 새 댓글
- 부스트 댓글 스크립트 구성 - 기존 댓글 좋아요/답글
- 좋아요 스크립트 구성 - 좋아요 스크립트 매개변수 구성
- 시청 스크립트 구성 - 설정한 시간 동안 게시물 시청
- 즐겨찾기 스크립트 구성 - 게시물을 즐겨찾기에 저장
- 메시지 스크립트 구성 - 메시지 스크립트 매개변수 구성
- 로그인 스크립트 구성 - 로그인 스크립트 매개변수 구성
- 프로필 스크립트 구성 - 프로필 스크립트 매개변수 구성
- 계정 매칭 스크립트 구성 - 계정 매칭 스크립트 매개변수 구성
- 슈퍼 마케팅 스크립트 구성 - 타겟 데이터셋 가져오기 및 캠페인 시작
- TCP 스캔 API - TCP/IP를 통해 Android 기기 스캔 및 연결
- 계정 상태 API - 계정 상태, 디바이스 연결 상태 및 로그인 상태 조회
- API 예제 - 다양한 언어의 코드 예제