로컬 API 개요
스크립트 업데이트\nPro의 Threads는 message, follow_back, scrape_users, repost를 지원하며 post의 content_type = 2는 텍스트 게시물입니다. TikTok/Instagram 단독 message는 사용할 수 없으므로 Super Marketing을 사용하세요.\n:::
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 또는 threads로 제한합니다. 이 빌드에 없는 플랫폼은 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", "threads"],
"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