@clawhub-justoneapi-256daef3f1
Analyze Kuaishou workflows with JustOneAPI, including user Search, user Published Videos, and video Details across 7 operations.
---
name: Kuaishou API
description: Analyze Kuaishou workflows with JustOneAPI, including user Search, user Published Videos, and video Details across 7 operations.
author: JustOneAPI
homepage: https://api.justoneapi.com
metadata: {"openclaw":{"homepage":"https://api.justoneapi.com","primaryEnv":"JUST_ONE_API_TOKEN","requires":{"bins":["node"],"env":["JUST_ONE_API_TOKEN"]},"skillKey":"justoneapi_kuaishou"}}
---
# Kuaishou
This skill wraps 7 Kuaishou operations exposed by JustOneAPI. It is strongest for user Search, user Published Videos, video Details, and video Search. Expect common inputs such as `keyword`, `page`, `pcursor`, `userId`, `videoId`.
## When To Use It
- The user needs user Search or user Published Videos on Kuaishou.
- The task lines up with video Details rather than a generic cross-platform workflow.
- The user can provide identifiers or filters such as `keyword`, `page`, `pcursor`, `userId`.
- The user wants an exact API-backed answer instead of a freeform summary.
## Representative Operations
- `searchKuaishouUserV2`: User Search — Get Kuaishou user Search data, including profile names, avatars, and follower counts, for creator discovery and account research
- `getKuaishouUserVideoListV2`: User Published Videos — Get Kuaishou user Published Videos data, including covers, publish times, and engagement metrics, for creator monitoring and content performance analysis
- `getVideoDetailsV2`: Video Details — Get Kuaishou video Details data, including video URL, caption, and author info, for in-depth content performance analysis and building databases of viral videos
- `searchKuaishouVideoV2`: Video Search — Get Kuaishou video Search data, including video ID, cover image, and description, for competitive analysis and market trends and keywords monitoring and brand tracking
## Request Pattern
- 7 operations are available in this skill.
- HTTP methods used here: `GET`.
- The most common non-token parameters are `keyword`, `page`, `pcursor`, `userId`, `videoId`.
- All operations in this skill are parameter-driven requests; none require a request body.
## How To Work
1. Read `generated/operations.md` before choosing an endpoint.
2. Start with one of these operations when it matches the user's request: `searchKuaishouUserV2`, `getKuaishouUserVideoListV2`, `getVideoDetailsV2`, `searchKuaishouVideoV2`.
3. Pick the smallest matching operation instead of guessing.
4. Ask the user for any missing required parameter. Do not invent values.
5. Call the helper with:
```bash
node {baseDir}/bin/run.mjs --operation "<operation-id>" --token "$JUST_ONE_API_TOKEN" --params-json '{"key":"value"}'
```
## Environment
- Required: `JUST_ONE_API_TOKEN`
- This skill uses `JUST_ONE_API_TOKEN` only for authenticated Just One API requests.
- Keep `JUST_ONE_API_TOKEN` private. Do not paste it into chat messages, screenshots, or logs.
- Get a token from [Just One API Dashboard](https://dashboard.justoneapi.com/en/login?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_kuaishou&utm_content=project_link).
- Authentication details: [Just One API Usage Guide](https://docs.justoneapi.com/en/?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_kuaishou&utm_content=project_link).
## Output Rules
- Start with a plain-language answer tied to the Kuaishou task the user asked for.
- Include the most decision-relevant fields from the selected endpoint before dumping raw JSON.
- When using `searchKuaishouUserV2`, explain why the returned fields answer the user's question.
- If the user gave filters such as `keyword`, `page`, `pcursor`, echo those back so the scope is explicit.
- If the backend errors, include the backend payload and the exact operation ID.
FILE:bin/run.mjs
#!/usr/bin/env node
const manifest = {
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Kuaishou workflows with JustOneAPI, including user Search, user Published Videos, and video Details across 7 operations.",
"displayName": "Kuaishou",
"openapi": "3.1.0",
"platformKey": "kuaishou",
"primaryTag": "Kuaishou",
"skillName": "justoneapi_kuaishou",
"slug": "justoneapi-kuaishou",
"sourceTitle": "OpenAPI definition",
"operations": [
{
"description": "Get Kuaishou user Profile data, including account metadata, audience metrics, and verification-related fields, for creator research and building creator profiles and monitoring audience growth and account status.",
"method": "GET",
"operationId": "getUserProfileV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique user ID on Kuaishou.",
"enumValues": [],
"location": "query",
"name": "userId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/kuaishou/get-user-detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Profile",
"tags": [
"Kuaishou"
]
},
{
"description": "Get Kuaishou user Published Videos data, including covers, publish times, and engagement metrics, for creator monitoring and content performance analysis.",
"method": "GET",
"operationId": "getKuaishouUserVideoListV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique user ID on Kuaishou.",
"enumValues": [],
"location": "query",
"name": "userId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Pagination cursor for subsequent pages.",
"enumValues": [],
"location": "query",
"name": "pcursor",
"required": false,
"schemaType": "string"
}
],
"path": "/api/kuaishou/get-user-video-list/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Published Videos",
"tags": [
"Kuaishou"
]
},
{
"description": "Retrieves public comments of a Kuaishou video, including comment content,\nauthor info, like count, and reply count.\n\nTypical use cases:\n- Sentiment analysis and community feedback monitoring\n- Gathering engagement data for specific videos",
"method": "GET",
"operationId": "getVideoCommentsV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique ID of the Kuaishou video, e.g. `3xbknvct79h46h9` or refer_photo_id `177012131237`",
"enumValues": [],
"location": "query",
"name": "videoId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Pagination cursor for subsequent pages.",
"enumValues": [],
"location": "query",
"name": "pcursor",
"required": false,
"schemaType": "string"
}
],
"path": "/api/kuaishou/get-video-comment/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Comments",
"tags": [
"Kuaishou"
]
},
{
"description": "Get Kuaishou video Details data, including video URL, caption, and author info, for in-depth content performance analysis and building databases of viral videos.",
"method": "GET",
"operationId": "getVideoDetailsV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique ID of the Kuaishou video, e.g. `3xg9avuebhtfcku`",
"enumValues": [],
"location": "query",
"name": "videoId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/kuaishou/get-video-detail/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Details",
"tags": [
"Kuaishou"
]
},
{
"description": "Get Kuaishou user Search data, including profile names, avatars, and follower counts, for creator discovery and account research.",
"method": "GET",
"operationId": "searchKuaishouUserV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The search keyword to find users.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": true,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for results, starting from 1.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/kuaishou/search-user/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Search",
"tags": [
"Kuaishou"
]
},
{
"description": "Get Kuaishou video Search data, including video ID, cover image, and description, for competitive analysis and market trends and keywords monitoring and brand tracking.",
"method": "GET",
"operationId": "searchKuaishouVideoV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The search keyword to find videos.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": true,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for results, starting from 1.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/kuaishou/search-video/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Search",
"tags": [
"Kuaishou"
]
},
{
"description": "Get Kuaishou share Link Resolution data, including resolved content identifier and target object data, for resolving shared links for automated content processing.",
"method": "GET",
"operationId": "shareLinkResolutionV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Kuaishou share URL (must start with 'https://v.kuaishou.com/').",
"enumValues": [],
"location": "query",
"name": "shareUrl",
"required": true,
"schemaType": "string"
}
],
"path": "/api/kuaishou/share-url-transfer/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Share Link Resolution",
"tags": [
"Kuaishou"
]
}
]
};
const args = parseArgs(process.argv.slice(2));
if (!args.operation) {
fail("Missing required --operation argument.");
}
const operation = manifest.operations.find((item) => item.operationId === args.operation);
if (!operation) {
fail(`Unknown operation "args.operation".`, { availableOperations: manifest.operations.map((item) => item.operationId) });
}
const params = parseParams(args.paramsJson);
applyDefaults(operation, params);
injectToken(operation, params, args.token);
validateRequired(operation, params);
const baseUrl = manifest.baseUrl;
const url = new URL(operation.path, ensureBaseUrl(baseUrl));
applyPathParams(operation, params, url);
applyQueryParams(operation, params, url);
const requestInit = {
headers: {
"accept": "application/json",
},
method: operation.method,
};
if (operation.requestBody && params.body !== undefined) {
requestInit.body = JSON.stringify(params.body);
requestInit.headers["content-type"] = operation.requestBody.contentType || "application/json";
}
let response;
try {
response = await fetch(url, requestInit);
} catch (error) {
fail("Network request failed.", {
cause: error instanceof Error ? error.message : String(error),
operationId: operation.operationId,
});
}
const rawBody = await response.text();
let parsedBody;
try {
parsedBody = rawBody ? JSON.parse(rawBody) : null;
} catch (error) {
if (!response.ok) {
fail("Backend returned a non-JSON error response.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
fail("Backend returned invalid JSON.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
if (!response.ok) {
fail("Backend request failed.", {
body: parsedBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
process.stdout.write(`JSON.stringify(parsedBody, null, 2)\n`);
function parseArgs(argv) {
const parsed = { operation: null, paramsJson: "{}", token: null };
for (let index = 0; index < argv.length; index += 1) {
const flag = argv[index];
const value = argv[index + 1];
if (flag === "--operation") {
parsed.operation = value;
index += 1;
continue;
}
if (flag === "--params-json") {
parsed.paramsJson = value;
index += 1;
continue;
}
if (flag === "--token") {
parsed.token = value;
index += 1;
continue;
}
fail(`Unknown argument "flag".`);
}
return parsed;
}
function parseParams(input) {
try {
const parsed = JSON.parse(input || "{}");
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
fail("--params-json must decode to a JSON object.");
}
return parsed;
} catch (error) {
fail("Failed to parse --params-json.", {
cause: error instanceof Error ? error.message : String(error),
});
}
}
function applyDefaults(operation, params) {
for (const parameter of operation.parameters) {
if (params[parameter.name] === undefined && parameter.defaultValue !== null) {
params[parameter.name] = parameter.defaultValue;
}
}
}
function injectToken(operation, params, cliToken) {
const tokenParam = operation.parameters.find((parameter) => parameter.name === "token");
if (!tokenParam || params.token !== undefined) {
return;
}
if (!cliToken) {
fail("--token is required for this operation.", {
operationId: operation.operationId,
});
}
params.token = cliToken;
}
function validateRequired(operation, params) {
const missing = [];
for (const parameter of operation.parameters) {
if (parameter.required && params[parameter.name] === undefined) {
missing.push(parameter.name);
}
}
if (operation.requestBody?.required && params.body === undefined) {
missing.push("body");
}
if (missing.length) {
fail("Missing required parameters.", {
missing,
operationId: operation.operationId,
});
}
}
function applyPathParams(operation, params, url) {
let pathname = url.pathname;
for (const parameter of operation.parameters.filter((item) => item.location === "path")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
pathname = pathname.replace(`{parameter.name}`, encodeURIComponent(String(value)));
}
url.pathname = pathname;
}
function applyQueryParams(operation, params, url) {
for (const parameter of operation.parameters.filter((item) => item.location === "query")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
appendValue(url.searchParams, parameter.name, value);
}
}
function appendValue(searchParams, name, value) {
if (Array.isArray(value)) {
for (const item of value) {
appendValue(searchParams, name, item);
}
return;
}
if (value && typeof value === "object") {
searchParams.append(name, JSON.stringify(value));
return;
}
searchParams.append(name, String(value));
}
function ensureBaseUrl(value) {
return value.endsWith("/") ? value : `value/`;
}
function fail(message, details = null) {
const payload = { message };
if (details) {
payload.details = details;
}
process.stderr.write(`JSON.stringify(payload, null, 2)\n`);
process.exit(1);
}
FILE:generated/operations.json
{
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Kuaishou workflows with JustOneAPI, including user Search, user Published Videos, and video Details across 7 operations.",
"displayName": "Kuaishou",
"openapi": "3.1.0",
"operations": [
{
"description": "Get Kuaishou user Profile data, including account metadata, audience metrics, and verification-related fields, for creator research and building creator profiles and monitoring audience growth and account status.",
"method": "GET",
"operationId": "getUserProfileV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique user ID on Kuaishou.",
"enumValues": [],
"location": "query",
"name": "userId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/kuaishou/get-user-detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Profile",
"tags": [
"Kuaishou"
]
},
{
"description": "Get Kuaishou user Published Videos data, including covers, publish times, and engagement metrics, for creator monitoring and content performance analysis.",
"method": "GET",
"operationId": "getKuaishouUserVideoListV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique user ID on Kuaishou.",
"enumValues": [],
"location": "query",
"name": "userId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Pagination cursor for subsequent pages.",
"enumValues": [],
"location": "query",
"name": "pcursor",
"required": false,
"schemaType": "string"
}
],
"path": "/api/kuaishou/get-user-video-list/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Published Videos",
"tags": [
"Kuaishou"
]
},
{
"description": "Retrieves public comments of a Kuaishou video, including comment content,\nauthor info, like count, and reply count.\n\nTypical use cases:\n- Sentiment analysis and community feedback monitoring\n- Gathering engagement data for specific videos",
"method": "GET",
"operationId": "getVideoCommentsV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique ID of the Kuaishou video, e.g. `3xbknvct79h46h9` or refer_photo_id `177012131237`",
"enumValues": [],
"location": "query",
"name": "videoId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Pagination cursor for subsequent pages.",
"enumValues": [],
"location": "query",
"name": "pcursor",
"required": false,
"schemaType": "string"
}
],
"path": "/api/kuaishou/get-video-comment/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Comments",
"tags": [
"Kuaishou"
]
},
{
"description": "Get Kuaishou video Details data, including video URL, caption, and author info, for in-depth content performance analysis and building databases of viral videos.",
"method": "GET",
"operationId": "getVideoDetailsV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique ID of the Kuaishou video, e.g. `3xg9avuebhtfcku`",
"enumValues": [],
"location": "query",
"name": "videoId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/kuaishou/get-video-detail/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Details",
"tags": [
"Kuaishou"
]
},
{
"description": "Get Kuaishou user Search data, including profile names, avatars, and follower counts, for creator discovery and account research.",
"method": "GET",
"operationId": "searchKuaishouUserV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The search keyword to find users.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": true,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for results, starting from 1.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/kuaishou/search-user/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Search",
"tags": [
"Kuaishou"
]
},
{
"description": "Get Kuaishou video Search data, including video ID, cover image, and description, for competitive analysis and market trends and keywords monitoring and brand tracking.",
"method": "GET",
"operationId": "searchKuaishouVideoV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The search keyword to find videos.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": true,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for results, starting from 1.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/kuaishou/search-video/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Search",
"tags": [
"Kuaishou"
]
},
{
"description": "Get Kuaishou share Link Resolution data, including resolved content identifier and target object data, for resolving shared links for automated content processing.",
"method": "GET",
"operationId": "shareLinkResolutionV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Kuaishou share URL (must start with 'https://v.kuaishou.com/').",
"enumValues": [],
"location": "query",
"name": "shareUrl",
"required": true,
"schemaType": "string"
}
],
"path": "/api/kuaishou/share-url-transfer/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Share Link Resolution",
"tags": [
"Kuaishou"
]
}
],
"platformKey": "kuaishou",
"primaryTag": "Kuaishou",
"skillName": "justoneapi_kuaishou",
"slug": "justoneapi-kuaishou",
"sourceTitle": "OpenAPI definition"
}
FILE:generated/operations.md
# Kuaishou operations
Generated from JustOneAPI OpenAPI for platform key `kuaishou`.
## `getUserProfileV1`
- Method: `GET`
- Path: `/api/kuaishou/get-user-detail/v1`
- Summary: User Profile
- Description: Get Kuaishou user Profile data, including account metadata, audience metrics, and verification-related fields, for creator research and building creator profiles and monitoring audience growth and account status.
- Tags: `Kuaishou`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `userId` | `query` | yes | `string` | n/a | The unique user ID on Kuaishou. |
### Request body
No request body.
### Responses
- `200`: OK
## `getKuaishouUserVideoListV2`
- Method: `GET`
- Path: `/api/kuaishou/get-user-video-list/v2`
- Summary: User Published Videos
- Description: Get Kuaishou user Published Videos data, including covers, publish times, and engagement metrics, for creator monitoring and content performance analysis.
- Tags: `Kuaishou`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `userId` | `query` | yes | `string` | n/a | The unique user ID on Kuaishou. |
| `pcursor` | `query` | no | `string` | n/a | Pagination cursor for subsequent pages. |
### Request body
No request body.
### Responses
- `200`: OK
## `getVideoCommentsV1`
- Method: `GET`
- Path: `/api/kuaishou/get-video-comment/v1`
- Summary: Video Comments
- Description: Retrieves public comments of a Kuaishou video, including comment content,
author info, like count, and reply count.
Typical use cases:
- Sentiment analysis and community feedback monitoring
- Gathering engagement data for specific videos
- Tags: `Kuaishou`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `videoId` | `query` | yes | `string` | n/a | The unique ID of the Kuaishou video, e.g. `3xbknvct79h46h9` or refer_photo_id `177012131237` |
| `pcursor` | `query` | no | `string` | n/a | Pagination cursor for subsequent pages. |
### Request body
No request body.
### Responses
- `200`: OK
## `getVideoDetailsV2`
- Method: `GET`
- Path: `/api/kuaishou/get-video-detail/v2`
- Summary: Video Details
- Description: Get Kuaishou video Details data, including video URL, caption, and author info, for in-depth content performance analysis and building databases of viral videos.
- Tags: `Kuaishou`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `videoId` | `query` | yes | `string` | n/a | The unique ID of the Kuaishou video, e.g. `3xg9avuebhtfcku` |
### Request body
No request body.
### Responses
- `200`: OK
## `searchKuaishouUserV2`
- Method: `GET`
- Path: `/api/kuaishou/search-user/v2`
- Summary: User Search
- Description: Get Kuaishou user Search data, including profile names, avatars, and follower counts, for creator discovery and account research.
- Tags: `Kuaishou`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `keyword` | `query` | yes | `string` | n/a | The search keyword to find users. |
| `page` | `query` | no | `integer` | `1` | Page number for results, starting from 1. |
### Request body
No request body.
### Responses
- `200`: OK
## `searchKuaishouVideoV2`
- Method: `GET`
- Path: `/api/kuaishou/search-video/v2`
- Summary: Video Search
- Description: Get Kuaishou video Search data, including video ID, cover image, and description, for competitive analysis and market trends and keywords monitoring and brand tracking.
- Tags: `Kuaishou`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `keyword` | `query` | yes | `string` | n/a | The search keyword to find videos. |
| `page` | `query` | no | `integer` | `1` | Page number for results, starting from 1. |
### Request body
No request body.
### Responses
- `200`: OK
## `shareLinkResolutionV1`
- Method: `GET`
- Path: `/api/kuaishou/share-url-transfer/v1`
- Summary: Share Link Resolution
- Description: Get Kuaishou share Link Resolution data, including resolved content identifier and target object data, for resolving shared links for automated content processing.
- Tags: `Kuaishou`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `shareUrl` | `query` | yes | `string` | n/a | Kuaishou share URL (must start with 'https://v.kuaishou.com/'). |
### Request body
No request body.
### Responses
- `200`: OK
Analyze JD.com workflows with JustOneAPI, including product Details, product Comments, and shop Product List.
---
name: JD.com API
description: Analyze JD.com workflows with JustOneAPI, including product Details, product Comments, and shop Product List.
author: JustOneAPI
homepage: https://api.justoneapi.com
metadata: {"openclaw":{"homepage":"https://api.justoneapi.com","primaryEnv":"JUST_ONE_API_TOKEN","requires":{"bins":["node"],"env":["JUST_ONE_API_TOKEN"]},"skillKey":"justoneapi_jd"}}
---
# JD.com
This skill wraps 3 JD.com operations exposed by JustOneAPI. It is strongest for product Details, product Comments, and shop Product List. Expect common inputs such as `itemId`, `page`, `shopId`.
## When To Use It
- The user needs product Details or product Comments on JD.com.
- The task lines up with shop Product List rather than a generic cross-platform workflow.
- The user can provide identifiers or filters such as `itemId`, `page`, `shopId`.
- The user wants an exact API-backed answer instead of a freeform summary.
## Representative Operations
- `getJdItemDetailV1`: Product Details — Get JD.com product Details data, including pricing, images, and shop information, for catalog analysis, product monitoring, and ecommerce research
- `getItemCommentsV1`: Product Comments — Get JD.com product Comments data, including ratings, timestamps, and reviewer signals, for customer feedback analysis and product research
- `getJdShopItemListV1`: Shop Product List — Get JD.com shop Product List data, including item titles, prices, and images, for catalog tracking and seller research
## Request Pattern
- 3 operations are available in this skill.
- HTTP methods used here: `GET`.
- The most common non-token parameters are `itemId`, `page`, `shopId`.
- All operations in this skill are parameter-driven requests; none require a request body.
## How To Work
1. Read `generated/operations.md` before choosing an endpoint.
2. Start with one of these operations when it matches the user's request: `getJdItemDetailV1`, `getItemCommentsV1`, `getJdShopItemListV1`.
3. Pick the smallest matching operation instead of guessing.
4. Ask the user for any missing required parameter. Do not invent values.
5. Call the helper with:
```bash
node {baseDir}/bin/run.mjs --operation "<operation-id>" --token "$JUST_ONE_API_TOKEN" --params-json '{"key":"value"}'
```
## Environment
- Required: `JUST_ONE_API_TOKEN`
- This skill uses `JUST_ONE_API_TOKEN` only for authenticated Just One API requests.
- Keep `JUST_ONE_API_TOKEN` private. Do not paste it into chat messages, screenshots, or logs.
- Get a token from [Just One API Dashboard](https://dashboard.justoneapi.com/en/login?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_jd&utm_content=project_link).
- Authentication details: [Just One API Usage Guide](https://docs.justoneapi.com/en/?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_jd&utm_content=project_link).
## Output Rules
- Start with a plain-language answer tied to the JD.com task the user asked for.
- Include the most decision-relevant fields from the selected endpoint before dumping raw JSON.
- When using `getJdItemDetailV1`, explain why the returned fields answer the user's question.
- If the user gave filters such as `itemId`, `page`, `shopId`, echo those back so the scope is explicit.
- If the backend errors, include the backend payload and the exact operation ID.
FILE:bin/run.mjs
#!/usr/bin/env node
const manifest = {
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze JD.com workflows with JustOneAPI, including product Details, product Comments, and shop Product List.",
"displayName": "JD.com",
"openapi": "3.1.0",
"platformKey": "jd",
"primaryTag": "JD.com",
"skillName": "justoneapi_jd",
"slug": "justoneapi-jd",
"sourceTitle": "OpenAPI definition",
"operations": [
{
"description": "Get JD.com product Comments data, including ratings, timestamps, and reviewer signals, for customer feedback analysis and product research.",
"method": "GET",
"operationId": "getItemCommentsV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "A unique product identifier on JD.com (item ID).",
"enumValues": [],
"location": "query",
"name": "itemId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Page number for paginated comments.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "string"
}
],
"path": "/api/jd/get-item-comments/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Product Comments",
"tags": [
"JD.com"
]
},
{
"description": "Get JD.com product Details data, including pricing, images, and shop information, for catalog analysis, product monitoring, and ecommerce research.",
"method": "GET",
"operationId": "getJdItemDetailV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "A unique product identifier on JD.com (item ID).",
"enumValues": [],
"location": "query",
"name": "itemId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/jd/get-item-detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Product Details",
"tags": [
"JD.com"
]
},
{
"description": "Get JD.com shop Product List data, including item titles, prices, and images, for catalog tracking and seller research.",
"method": "GET",
"operationId": "getJdShopItemListV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "A unique shop identifier on JD.com (Shop ID).",
"enumValues": [],
"location": "query",
"name": "shopId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Page number for paginated comments.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "string"
}
],
"path": "/api/jd/get-shop-item-list/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Shop Product List",
"tags": [
"JD.com"
]
}
]
};
const args = parseArgs(process.argv.slice(2));
if (!args.operation) {
fail("Missing required --operation argument.");
}
const operation = manifest.operations.find((item) => item.operationId === args.operation);
if (!operation) {
fail(`Unknown operation "args.operation".`, { availableOperations: manifest.operations.map((item) => item.operationId) });
}
const params = parseParams(args.paramsJson);
applyDefaults(operation, params);
injectToken(operation, params, args.token);
validateRequired(operation, params);
const baseUrl = manifest.baseUrl;
const url = new URL(operation.path, ensureBaseUrl(baseUrl));
applyPathParams(operation, params, url);
applyQueryParams(operation, params, url);
const requestInit = {
headers: {
"accept": "application/json",
},
method: operation.method,
};
if (operation.requestBody && params.body !== undefined) {
requestInit.body = JSON.stringify(params.body);
requestInit.headers["content-type"] = operation.requestBody.contentType || "application/json";
}
let response;
try {
response = await fetch(url, requestInit);
} catch (error) {
fail("Network request failed.", {
cause: error instanceof Error ? error.message : String(error),
operationId: operation.operationId,
});
}
const rawBody = await response.text();
let parsedBody;
try {
parsedBody = rawBody ? JSON.parse(rawBody) : null;
} catch (error) {
if (!response.ok) {
fail("Backend returned a non-JSON error response.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
fail("Backend returned invalid JSON.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
if (!response.ok) {
fail("Backend request failed.", {
body: parsedBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
process.stdout.write(`JSON.stringify(parsedBody, null, 2)\n`);
function parseArgs(argv) {
const parsed = { operation: null, paramsJson: "{}", token: null };
for (let index = 0; index < argv.length; index += 1) {
const flag = argv[index];
const value = argv[index + 1];
if (flag === "--operation") {
parsed.operation = value;
index += 1;
continue;
}
if (flag === "--params-json") {
parsed.paramsJson = value;
index += 1;
continue;
}
if (flag === "--token") {
parsed.token = value;
index += 1;
continue;
}
fail(`Unknown argument "flag".`);
}
return parsed;
}
function parseParams(input) {
try {
const parsed = JSON.parse(input || "{}");
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
fail("--params-json must decode to a JSON object.");
}
return parsed;
} catch (error) {
fail("Failed to parse --params-json.", {
cause: error instanceof Error ? error.message : String(error),
});
}
}
function applyDefaults(operation, params) {
for (const parameter of operation.parameters) {
if (params[parameter.name] === undefined && parameter.defaultValue !== null) {
params[parameter.name] = parameter.defaultValue;
}
}
}
function injectToken(operation, params, cliToken) {
const tokenParam = operation.parameters.find((parameter) => parameter.name === "token");
if (!tokenParam || params.token !== undefined) {
return;
}
if (!cliToken) {
fail("--token is required for this operation.", {
operationId: operation.operationId,
});
}
params.token = cliToken;
}
function validateRequired(operation, params) {
const missing = [];
for (const parameter of operation.parameters) {
if (parameter.required && params[parameter.name] === undefined) {
missing.push(parameter.name);
}
}
if (operation.requestBody?.required && params.body === undefined) {
missing.push("body");
}
if (missing.length) {
fail("Missing required parameters.", {
missing,
operationId: operation.operationId,
});
}
}
function applyPathParams(operation, params, url) {
let pathname = url.pathname;
for (const parameter of operation.parameters.filter((item) => item.location === "path")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
pathname = pathname.replace(`{parameter.name}`, encodeURIComponent(String(value)));
}
url.pathname = pathname;
}
function applyQueryParams(operation, params, url) {
for (const parameter of operation.parameters.filter((item) => item.location === "query")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
appendValue(url.searchParams, parameter.name, value);
}
}
function appendValue(searchParams, name, value) {
if (Array.isArray(value)) {
for (const item of value) {
appendValue(searchParams, name, item);
}
return;
}
if (value && typeof value === "object") {
searchParams.append(name, JSON.stringify(value));
return;
}
searchParams.append(name, String(value));
}
function ensureBaseUrl(value) {
return value.endsWith("/") ? value : `value/`;
}
function fail(message, details = null) {
const payload = { message };
if (details) {
payload.details = details;
}
process.stderr.write(`JSON.stringify(payload, null, 2)\n`);
process.exit(1);
}
FILE:generated/operations.json
{
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze JD.com workflows with JustOneAPI, including product Details, product Comments, and shop Product List.",
"displayName": "JD.com",
"openapi": "3.1.0",
"operations": [
{
"description": "Get JD.com product Comments data, including ratings, timestamps, and reviewer signals, for customer feedback analysis and product research.",
"method": "GET",
"operationId": "getItemCommentsV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "A unique product identifier on JD.com (item ID).",
"enumValues": [],
"location": "query",
"name": "itemId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Page number for paginated comments.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "string"
}
],
"path": "/api/jd/get-item-comments/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Product Comments",
"tags": [
"JD.com"
]
},
{
"description": "Get JD.com product Details data, including pricing, images, and shop information, for catalog analysis, product monitoring, and ecommerce research.",
"method": "GET",
"operationId": "getJdItemDetailV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "A unique product identifier on JD.com (item ID).",
"enumValues": [],
"location": "query",
"name": "itemId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/jd/get-item-detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Product Details",
"tags": [
"JD.com"
]
},
{
"description": "Get JD.com shop Product List data, including item titles, prices, and images, for catalog tracking and seller research.",
"method": "GET",
"operationId": "getJdShopItemListV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "A unique shop identifier on JD.com (Shop ID).",
"enumValues": [],
"location": "query",
"name": "shopId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Page number for paginated comments.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "string"
}
],
"path": "/api/jd/get-shop-item-list/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Shop Product List",
"tags": [
"JD.com"
]
}
],
"platformKey": "jd",
"primaryTag": "JD.com",
"skillName": "justoneapi_jd",
"slug": "justoneapi-jd",
"sourceTitle": "OpenAPI definition"
}
FILE:generated/operations.md
# JD.com operations
Generated from JustOneAPI OpenAPI for platform key `jd`.
## `getItemCommentsV1`
- Method: `GET`
- Path: `/api/jd/get-item-comments/v1`
- Summary: Product Comments
- Description: Get JD.com product Comments data, including ratings, timestamps, and reviewer signals, for customer feedback analysis and product research.
- Tags: `JD.com`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `itemId` | `query` | yes | `string` | n/a | A unique product identifier on JD.com (item ID). |
| `page` | `query` | no | `string` | n/a | Page number for paginated comments. |
### Request body
No request body.
### Responses
- `200`: OK
## `getJdItemDetailV1`
- Method: `GET`
- Path: `/api/jd/get-item-detail/v1`
- Summary: Product Details
- Description: Get JD.com product Details data, including pricing, images, and shop information, for catalog analysis, product monitoring, and ecommerce research.
- Tags: `JD.com`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `itemId` | `query` | yes | `string` | n/a | A unique product identifier on JD.com (item ID). |
### Request body
No request body.
### Responses
- `200`: OK
## `getJdShopItemListV1`
- Method: `GET`
- Path: `/api/jd/get-shop-item-list/v1`
- Summary: Shop Product List
- Description: Get JD.com shop Product List data, including item titles, prices, and images, for catalog tracking and seller research.
- Tags: `JD.com`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `shopId` | `query` | yes | `string` | n/a | A unique shop identifier on JD.com (Shop ID). |
| `page` | `query` | no | `string` | n/a | Page number for paginated comments. |
### Request body
No request body.
### Responses
- `200`: OK
Analyze Instagram workflows with JustOneAPI, including user Profile, post Details, and user Published Posts across 5 operations.
---
name: Instagram API
description: Analyze Instagram workflows with JustOneAPI, including user Profile, post Details, and user Published Posts across 5 operations.
author: JustOneAPI
homepage: https://api.justoneapi.com
metadata: {"openclaw":{"homepage":"https://api.justoneapi.com","primaryEnv":"JUST_ONE_API_TOKEN","requires":{"bins":["node"],"env":["JUST_ONE_API_TOKEN"]},"skillKey":"justoneapi_instagram"}}
---
# Instagram
This skill wraps 5 Instagram operations exposed by JustOneAPI. It is strongest for user Profile, post Details, user Published Posts, and reels Search. Expect common inputs such as `paginationToken`, `username`, `code`, `endCursor`, `hashtag`.
## When To Use It
- The user needs user Profile or post Details on Instagram.
- The task lines up with user Published Posts rather than a generic cross-platform workflow.
- The user can provide identifiers or filters such as `paginationToken`, `username`, `code`, `endCursor`.
- The user wants an exact API-backed answer instead of a freeform summary.
## Representative Operations
- `getInstagramUserDetailV1`: User Profile — Get Instagram user Profile data, including follower count, following count, and post count, for obtaining basic account metadata for influencer vetting, tracking follower growth and audience reach over time, and mapping user handles to specific profile stats
- `getInstagramPostDetailV1`: Post Details — Get Instagram post Details data, including post caption, media content (images/videos), and publish time, for analyzing engagement metrics (likes/comments) for a specific post and archiving post content and media assets for content analysis
- `getInstagramUserPostsV1`: User Published Posts — Get Instagram user Published Posts data, including post code, caption, and media type, for monitoring recent publishing activity of a specific user and building a historical record of content for auditing or analysis
- `searchReelsV1`: Reels Search — Get Instagram reels Search data, including post ID, caption, and author profile, for tracking trends and viral content via specific keywords or hashtags and discovering high-engagement reels within a particular niche
## Request Pattern
- 5 operations are available in this skill.
- HTTP methods used here: `GET`.
- The most common non-token parameters are `paginationToken`, `username`, `code`, `endCursor`, `hashtag`.
- All operations in this skill are parameter-driven requests; none require a request body.
## How To Work
1. Read `generated/operations.md` before choosing an endpoint.
2. Start with one of these operations when it matches the user's request: `getInstagramUserDetailV1`, `getInstagramPostDetailV1`, `getInstagramUserPostsV1`, `searchReelsV1`.
3. Pick the smallest matching operation instead of guessing.
4. Ask the user for any missing required parameter. Do not invent values.
5. Call the helper with:
```bash
node {baseDir}/bin/run.mjs --operation "<operation-id>" --token "$JUST_ONE_API_TOKEN" --params-json '{"key":"value"}'
```
## Environment
- Required: `JUST_ONE_API_TOKEN`
- This skill uses `JUST_ONE_API_TOKEN` only for authenticated Just One API requests.
- Keep `JUST_ONE_API_TOKEN` private. Do not paste it into chat messages, screenshots, or logs.
- Get a token from [Just One API Dashboard](https://dashboard.justoneapi.com/en/login?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_instagram&utm_content=project_link).
- Authentication details: [Just One API Usage Guide](https://docs.justoneapi.com/en/?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_instagram&utm_content=project_link).
## Output Rules
- Start with a plain-language answer tied to the Instagram task the user asked for.
- Include the most decision-relevant fields from the selected endpoint before dumping raw JSON.
- When using `getInstagramUserDetailV1`, explain why the returned fields answer the user's question.
- If the user gave filters such as `paginationToken`, `username`, `code`, echo those back so the scope is explicit.
- If the backend errors, include the backend payload and the exact operation ID.
FILE:bin/run.mjs
#!/usr/bin/env node
const manifest = {
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Instagram workflows with JustOneAPI, including user Profile, post Details, and user Published Posts across 5 operations.",
"displayName": "Instagram",
"openapi": "3.1.0",
"platformKey": "instagram",
"primaryTag": "Instagram",
"skillName": "justoneapi_instagram",
"slug": "justoneapi-instagram",
"sourceTitle": "OpenAPI definition",
"operations": [
{
"description": "Get Instagram post Details data, including post caption, media content (images/videos), and publish time, for analyzing engagement metrics (likes/comments) for a specific post and archiving post content and media assets for content analysis.",
"method": "GET",
"operationId": "getInstagramPostDetailV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique shortcode (slug) for the Instagram post (e.g., 'DRhvwVLAHAG').",
"enumValues": [],
"location": "query",
"name": "code",
"required": true,
"schemaType": "string"
}
],
"path": "/api/instagram/get-post-detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Post Details",
"tags": [
"Instagram"
]
},
{
"description": "Get Instagram user Profile data, including follower count, following count, and post count, for obtaining basic account metadata for influencer vetting, tracking follower growth and audience reach over time, and mapping user handles to specific profile stats.",
"method": "GET",
"operationId": "getInstagramUserDetailV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The Instagram username whose profile details are to be retrieved.",
"enumValues": [],
"location": "query",
"name": "username",
"required": true,
"schemaType": "string"
}
],
"path": "/api/instagram/get-user-detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Profile",
"tags": [
"Instagram"
]
},
{
"description": "Get Instagram user Published Posts data, including post code, caption, and media type, for monitoring recent publishing activity of a specific user and building a historical record of content for auditing or analysis.",
"method": "GET",
"operationId": "getInstagramUserPostsV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The Instagram username whose published posts are to be retrieved.",
"enumValues": [],
"location": "query",
"name": "username",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Token used for retrieving the next page of results.",
"enumValues": [],
"location": "query",
"name": "paginationToken",
"required": false,
"schemaType": "string"
}
],
"path": "/api/instagram/get-user-posts/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Published Posts",
"tags": [
"Instagram"
]
},
{
"description": "Get Instagram hashtag Posts Search data, including caption, author profile, and publish time, for competitive analysis of trending topics and hashtags and monitoring community discussions and public opinion on specific tags.",
"method": "GET",
"operationId": "searchHashtagPostsV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The hashtag or keyword to search for.",
"enumValues": [],
"location": "query",
"name": "hashtag",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Cursor used for retrieving the next page of results.",
"enumValues": [],
"location": "query",
"name": "endCursor",
"required": false,
"schemaType": "string"
}
],
"path": "/api/instagram/search-hashtag-posts/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Hashtag Posts Search",
"tags": [
"Instagram"
]
},
{
"description": "Get Instagram reels Search data, including post ID, caption, and author profile, for tracking trends and viral content via specific keywords or hashtags and discovering high-engagement reels within a particular niche.",
"method": "GET",
"operationId": "searchReelsV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The search keyword or hashtag to filter Reels.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Token used for retrieving the next page of results.",
"enumValues": [],
"location": "query",
"name": "paginationToken",
"required": false,
"schemaType": "string"
}
],
"path": "/api/instagram/search-reels/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Reels Search",
"tags": [
"Instagram"
]
}
]
};
const args = parseArgs(process.argv.slice(2));
if (!args.operation) {
fail("Missing required --operation argument.");
}
const operation = manifest.operations.find((item) => item.operationId === args.operation);
if (!operation) {
fail(`Unknown operation "args.operation".`, { availableOperations: manifest.operations.map((item) => item.operationId) });
}
const params = parseParams(args.paramsJson);
applyDefaults(operation, params);
injectToken(operation, params, args.token);
validateRequired(operation, params);
const baseUrl = manifest.baseUrl;
const url = new URL(operation.path, ensureBaseUrl(baseUrl));
applyPathParams(operation, params, url);
applyQueryParams(operation, params, url);
const requestInit = {
headers: {
"accept": "application/json",
},
method: operation.method,
};
if (operation.requestBody && params.body !== undefined) {
requestInit.body = JSON.stringify(params.body);
requestInit.headers["content-type"] = operation.requestBody.contentType || "application/json";
}
let response;
try {
response = await fetch(url, requestInit);
} catch (error) {
fail("Network request failed.", {
cause: error instanceof Error ? error.message : String(error),
operationId: operation.operationId,
});
}
const rawBody = await response.text();
let parsedBody;
try {
parsedBody = rawBody ? JSON.parse(rawBody) : null;
} catch (error) {
if (!response.ok) {
fail("Backend returned a non-JSON error response.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
fail("Backend returned invalid JSON.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
if (!response.ok) {
fail("Backend request failed.", {
body: parsedBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
process.stdout.write(`JSON.stringify(parsedBody, null, 2)\n`);
function parseArgs(argv) {
const parsed = { operation: null, paramsJson: "{}", token: null };
for (let index = 0; index < argv.length; index += 1) {
const flag = argv[index];
const value = argv[index + 1];
if (flag === "--operation") {
parsed.operation = value;
index += 1;
continue;
}
if (flag === "--params-json") {
parsed.paramsJson = value;
index += 1;
continue;
}
if (flag === "--token") {
parsed.token = value;
index += 1;
continue;
}
fail(`Unknown argument "flag".`);
}
return parsed;
}
function parseParams(input) {
try {
const parsed = JSON.parse(input || "{}");
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
fail("--params-json must decode to a JSON object.");
}
return parsed;
} catch (error) {
fail("Failed to parse --params-json.", {
cause: error instanceof Error ? error.message : String(error),
});
}
}
function applyDefaults(operation, params) {
for (const parameter of operation.parameters) {
if (params[parameter.name] === undefined && parameter.defaultValue !== null) {
params[parameter.name] = parameter.defaultValue;
}
}
}
function injectToken(operation, params, cliToken) {
const tokenParam = operation.parameters.find((parameter) => parameter.name === "token");
if (!tokenParam || params.token !== undefined) {
return;
}
if (!cliToken) {
fail("--token is required for this operation.", {
operationId: operation.operationId,
});
}
params.token = cliToken;
}
function validateRequired(operation, params) {
const missing = [];
for (const parameter of operation.parameters) {
if (parameter.required && params[parameter.name] === undefined) {
missing.push(parameter.name);
}
}
if (operation.requestBody?.required && params.body === undefined) {
missing.push("body");
}
if (missing.length) {
fail("Missing required parameters.", {
missing,
operationId: operation.operationId,
});
}
}
function applyPathParams(operation, params, url) {
let pathname = url.pathname;
for (const parameter of operation.parameters.filter((item) => item.location === "path")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
pathname = pathname.replace(`{parameter.name}`, encodeURIComponent(String(value)));
}
url.pathname = pathname;
}
function applyQueryParams(operation, params, url) {
for (const parameter of operation.parameters.filter((item) => item.location === "query")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
appendValue(url.searchParams, parameter.name, value);
}
}
function appendValue(searchParams, name, value) {
if (Array.isArray(value)) {
for (const item of value) {
appendValue(searchParams, name, item);
}
return;
}
if (value && typeof value === "object") {
searchParams.append(name, JSON.stringify(value));
return;
}
searchParams.append(name, String(value));
}
function ensureBaseUrl(value) {
return value.endsWith("/") ? value : `value/`;
}
function fail(message, details = null) {
const payload = { message };
if (details) {
payload.details = details;
}
process.stderr.write(`JSON.stringify(payload, null, 2)\n`);
process.exit(1);
}
FILE:generated/operations.json
{
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Instagram workflows with JustOneAPI, including user Profile, post Details, and user Published Posts across 5 operations.",
"displayName": "Instagram",
"openapi": "3.1.0",
"operations": [
{
"description": "Get Instagram post Details data, including post caption, media content (images/videos), and publish time, for analyzing engagement metrics (likes/comments) for a specific post and archiving post content and media assets for content analysis.",
"method": "GET",
"operationId": "getInstagramPostDetailV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique shortcode (slug) for the Instagram post (e.g., 'DRhvwVLAHAG').",
"enumValues": [],
"location": "query",
"name": "code",
"required": true,
"schemaType": "string"
}
],
"path": "/api/instagram/get-post-detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Post Details",
"tags": [
"Instagram"
]
},
{
"description": "Get Instagram user Profile data, including follower count, following count, and post count, for obtaining basic account metadata for influencer vetting, tracking follower growth and audience reach over time, and mapping user handles to specific profile stats.",
"method": "GET",
"operationId": "getInstagramUserDetailV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The Instagram username whose profile details are to be retrieved.",
"enumValues": [],
"location": "query",
"name": "username",
"required": true,
"schemaType": "string"
}
],
"path": "/api/instagram/get-user-detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Profile",
"tags": [
"Instagram"
]
},
{
"description": "Get Instagram user Published Posts data, including post code, caption, and media type, for monitoring recent publishing activity of a specific user and building a historical record of content for auditing or analysis.",
"method": "GET",
"operationId": "getInstagramUserPostsV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The Instagram username whose published posts are to be retrieved.",
"enumValues": [],
"location": "query",
"name": "username",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Token used for retrieving the next page of results.",
"enumValues": [],
"location": "query",
"name": "paginationToken",
"required": false,
"schemaType": "string"
}
],
"path": "/api/instagram/get-user-posts/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Published Posts",
"tags": [
"Instagram"
]
},
{
"description": "Get Instagram hashtag Posts Search data, including caption, author profile, and publish time, for competitive analysis of trending topics and hashtags and monitoring community discussions and public opinion on specific tags.",
"method": "GET",
"operationId": "searchHashtagPostsV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The hashtag or keyword to search for.",
"enumValues": [],
"location": "query",
"name": "hashtag",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Cursor used for retrieving the next page of results.",
"enumValues": [],
"location": "query",
"name": "endCursor",
"required": false,
"schemaType": "string"
}
],
"path": "/api/instagram/search-hashtag-posts/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Hashtag Posts Search",
"tags": [
"Instagram"
]
},
{
"description": "Get Instagram reels Search data, including post ID, caption, and author profile, for tracking trends and viral content via specific keywords or hashtags and discovering high-engagement reels within a particular niche.",
"method": "GET",
"operationId": "searchReelsV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The search keyword or hashtag to filter Reels.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Token used for retrieving the next page of results.",
"enumValues": [],
"location": "query",
"name": "paginationToken",
"required": false,
"schemaType": "string"
}
],
"path": "/api/instagram/search-reels/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Reels Search",
"tags": [
"Instagram"
]
}
],
"platformKey": "instagram",
"primaryTag": "Instagram",
"skillName": "justoneapi_instagram",
"slug": "justoneapi-instagram",
"sourceTitle": "OpenAPI definition"
}
FILE:generated/operations.md
# Instagram operations
Generated from JustOneAPI OpenAPI for platform key `instagram`.
## `getInstagramPostDetailV1`
- Method: `GET`
- Path: `/api/instagram/get-post-detail/v1`
- Summary: Post Details
- Description: Get Instagram post Details data, including post caption, media content (images/videos), and publish time, for analyzing engagement metrics (likes/comments) for a specific post and archiving post content and media assets for content analysis.
- Tags: `Instagram`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for the API service. |
| `code` | `query` | yes | `string` | n/a | The unique shortcode (slug) for the Instagram post (e.g., 'DRhvwVLAHAG'). |
### Request body
No request body.
### Responses
- `200`: OK
## `getInstagramUserDetailV1`
- Method: `GET`
- Path: `/api/instagram/get-user-detail/v1`
- Summary: User Profile
- Description: Get Instagram user Profile data, including follower count, following count, and post count, for obtaining basic account metadata for influencer vetting, tracking follower growth and audience reach over time, and mapping user handles to specific profile stats.
- Tags: `Instagram`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for the API service. |
| `username` | `query` | yes | `string` | n/a | The Instagram username whose profile details are to be retrieved. |
### Request body
No request body.
### Responses
- `200`: OK
## `getInstagramUserPostsV1`
- Method: `GET`
- Path: `/api/instagram/get-user-posts/v1`
- Summary: User Published Posts
- Description: Get Instagram user Published Posts data, including post code, caption, and media type, for monitoring recent publishing activity of a specific user and building a historical record of content for auditing or analysis.
- Tags: `Instagram`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for the API service. |
| `username` | `query` | yes | `string` | n/a | The Instagram username whose published posts are to be retrieved. |
| `paginationToken` | `query` | no | `string` | n/a | Token used for retrieving the next page of results. |
### Request body
No request body.
### Responses
- `200`: OK
## `searchHashtagPostsV1`
- Method: `GET`
- Path: `/api/instagram/search-hashtag-posts/v1`
- Summary: Hashtag Posts Search
- Description: Get Instagram hashtag Posts Search data, including caption, author profile, and publish time, for competitive analysis of trending topics and hashtags and monitoring community discussions and public opinion on specific tags.
- Tags: `Instagram`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for the API service. |
| `hashtag` | `query` | yes | `string` | n/a | The hashtag or keyword to search for. |
| `endCursor` | `query` | no | `string` | n/a | Cursor used for retrieving the next page of results. |
### Request body
No request body.
### Responses
- `200`: OK
## `searchReelsV1`
- Method: `GET`
- Path: `/api/instagram/search-reels/v1`
- Summary: Reels Search
- Description: Get Instagram reels Search data, including post ID, caption, and author profile, for tracking trends and viral content via specific keywords or hashtags and discovering high-engagement reels within a particular niche.
- Tags: `Instagram`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for the API service. |
| `keyword` | `query` | yes | `string` | n/a | The search keyword or hashtag to filter Reels. |
| `paginationToken` | `query` | no | `string` | n/a | Token used for retrieving the next page of results. |
### Request body
No request body.
### Responses
- `200`: OK
Analyze IMDb workflows with JustOneAPI, including release Expectation, extended Details, and top Cast and Crew across 19 operations.
---
name: IMDb API
description: Analyze IMDb workflows with JustOneAPI, including release Expectation, extended Details, and top Cast and Crew across 19 operations.
author: JustOneAPI
homepage: https://api.justoneapi.com
metadata: {"openclaw":{"homepage":"https://api.justoneapi.com","primaryEnv":"JUST_ONE_API_TOKEN","requires":{"bins":["node"],"env":["JUST_ONE_API_TOKEN"]},"skillKey":"justoneapi_imdb"}}
---
# IMDb
This skill wraps 19 IMDb operations exposed by JustOneAPI. It is strongest for release Expectation, extended Details, top Cast and Crew, and base Info. Expect common inputs such as `languageCountry`, `id`, `acceptCache`, `category`, `limit`.
## When To Use It
- The user needs release Expectation or extended Details on IMDb.
- The task lines up with top Cast and Crew rather than a generic cross-platform workflow.
- The user can provide identifiers or filters such as `languageCountry`, `id`, `acceptCache`, `category`.
- The user wants an exact API-backed answer instead of a freeform summary.
## Representative Operations
- `titleReleaseExpectationQuery`: Release Expectation — Get IMDb title Release Expectation data, including production status, release dates, and anticipation signals, for release monitoring and title research
- `titleExtendedDetailsQuery`: Extended Details — Get IMDb title Extended Details data, including title info, images, and genres, for title enrichment and catalog research
- `titleTopCastAndCrew`: Top Cast and Crew — Get IMDb title Top Cast and Crew data, including names, roles, and profile references, for talent research and title enrichment
- `titleBaseQuery`: Base Info — Get IMDb title Base Info data, including title text, release year, and type, for catalog enrichment and title lookup workflows
## Request Pattern
- 19 operations are available in this skill.
- HTTP methods used here: `GET`.
- The most common non-token parameters are `languageCountry`, `id`, `acceptCache`, `category`, `limit`.
- All operations in this skill are parameter-driven requests; none require a request body.
## How To Work
1. Read `generated/operations.md` before choosing an endpoint.
2. Start with one of these operations when it matches the user's request: `titleReleaseExpectationQuery`, `titleExtendedDetailsQuery`, `titleTopCastAndCrew`, `titleBaseQuery`.
3. Pick the smallest matching operation instead of guessing.
4. Ask the user for any missing required parameter. Do not invent values.
5. Call the helper with:
```bash
node {baseDir}/bin/run.mjs --operation "<operation-id>" --token "$JUST_ONE_API_TOKEN" --params-json '{"key":"value"}'
```
## Environment
- Required: `JUST_ONE_API_TOKEN`
- This skill uses `JUST_ONE_API_TOKEN` only for authenticated Just One API requests.
- Keep `JUST_ONE_API_TOKEN` private. Do not paste it into chat messages, screenshots, or logs.
- Get a token from [Just One API Dashboard](https://dashboard.justoneapi.com/en/login?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_imdb&utm_content=project_link).
- Authentication details: [Just One API Usage Guide](https://docs.justoneapi.com/en/?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_imdb&utm_content=project_link).
## Output Rules
- Start with a plain-language answer tied to the IMDb task the user asked for.
- Include the most decision-relevant fields from the selected endpoint before dumping raw JSON.
- When using `titleReleaseExpectationQuery`, explain why the returned fields answer the user's question.
- If the user gave filters such as `languageCountry`, `id`, `acceptCache`, echo those back so the scope is explicit.
- If the backend errors, include the backend payload and the exact operation ID.
FILE:bin/run.mjs
#!/usr/bin/env node
const manifest = {
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze IMDb workflows with JustOneAPI, including release Expectation, extended Details, and top Cast and Crew across 19 operations.",
"displayName": "IMDb",
"openapi": "3.1.0",
"platformKey": "imdb",
"primaryTag": "IMDb",
"skillName": "justoneapi_imdb",
"slug": "justoneapi-imdb",
"sourceTitle": "OpenAPI definition",
"operations": [
{
"description": "Get IMDb keyword Search data, including matched results, metadata, and ranking signals, for entity discovery and entertainment research.",
"method": "GET",
"operationId": "mainSearchQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The term to search for (e.g., 'fire').",
"enumValues": [],
"location": "query",
"name": "searchTerm",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "Top",
"description": "Category of results to include in search.\n\nAvailable Values:\n- `Top`: Top Results\n- `Movies`: Movies\n- `Shows`: TV Shows\n- `People`: People\n- `Interests`: Interests\n- `Episodes`: Episodes\n- `Podcast`: Podcasts\n- `Video_games`: Video Games",
"enumValues": [
"Top",
"Movies",
"Shows",
"People",
"Interests",
"Episodes",
"Podcast",
"Video_games"
],
"location": "query",
"name": "type",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 25,
"description": "Maximum number of results to return (1-300).",
"enumValues": [],
"location": "query",
"name": "limit",
"required": false,
"schemaType": "integer"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/main-search-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Keyword Search",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb news by Category data, including headlines, summaries, and source metadata, for media monitoring and news research.",
"method": "GET",
"operationId": "newsByCategoryQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "News category to filter by.\n\nAvailable Values:\n- `TOP`: Top News\n- `MOVIE`: Movie News\n- `TV`: TV News\n- `CELEBRITY`: Celebrity News",
"enumValues": [
"TOP",
"MOVIE",
"TV",
"CELEBRITY"
],
"location": "query",
"name": "category",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/news-by-category-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "News by Category",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb streaming Picks data, including curated titles available across streaming surfaces, for content discovery and watchlist research.",
"method": "GET",
"operationId": "streamingPicksQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/streaming-picks-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Streaming Picks",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Awards Summary data, including nominations, for title benchmarking and awards research.",
"method": "GET",
"operationId": "titleAwardsSummaryQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-awards-summary-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Awards Summary",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Base Info data, including title text, release year, and type, for catalog enrichment and title lookup workflows.",
"method": "GET",
"operationId": "titleBaseQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-base-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Base Info",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Box Office Summary data, including grosses and related performance indicators, for revenue tracking and title comparison.",
"method": "GET",
"operationId": "titleBoxOfficeSummary",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-box-office-summary/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Box Office Summary",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Chart Rankings data, including positions in lists such as Top 250 and related charts, for ranking monitoring and title benchmarking.",
"method": "GET",
"operationId": "titleChartRankings",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Type of rankings chart to retrieve.\n\nAvailable Values:\n- `TOP_250`: Top 250 Movies\n- `TOP_250_TV`: Top 250 TV Shows",
"enumValues": [
"TOP_250",
"TOP_250_TV"
],
"location": "query",
"name": "rankingsChartType",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-chart-rankings/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Chart Rankings",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Contribution Questions data, including specific IMDb title, for data maintenance workflows and title metadata review.",
"method": "GET",
"operationId": "titleContributionQuestions",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-contribution-questions/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Contribution Questions",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Countries of Origin data, including country names and regional metadata, for catalog enrichment and regional content analysis.",
"method": "GET",
"operationId": "titleCountriesOfOrigin",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-countries-of-origin/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Countries of Origin",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Critics Review Summary data, including review highlights, for review analysis and title comparison.",
"method": "GET",
"operationId": "titleCriticsReviewSummaryQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-critics-review-summary-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Critics Review Summary",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Details data, including metadata, release info, and cast, for deep title research and catalog enrichment.",
"method": "GET",
"operationId": "titleDetailsQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-details-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Details",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title 'Did You Know' Insights data, including trivia, for editorial research and title insight enrichment.",
"method": "GET",
"operationId": "titleDidYouKnowQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-did-you-know-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "'Did You Know' Insights",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Extended Details data, including title info, images, and genres, for title enrichment and catalog research.",
"method": "GET",
"operationId": "titleExtendedDetailsQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-extended-details-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Extended Details",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Recommendations data, including related titles and suggestion metadata, for content discovery and recommendation analysis.",
"method": "GET",
"operationId": "titleMoreLikeThisQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-more-like-this-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Recommendations",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Plot Summary data, including core metrics, trend signals, and performance indicators, for displaying a detailed description of the storyline for a movie or TV show.",
"method": "GET",
"operationId": "titlePlotQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-plot-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Plot Summary",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Redux Overview data, including key summary fields and linked metadata, for get a concise summary and overview of a movie or TV show's key attributes.",
"method": "GET",
"operationId": "titleReduxOverviewQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-redux-overview-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Redux Overview",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Release Expectation data, including production status, release dates, and anticipation signals, for release monitoring and title research.",
"method": "GET",
"operationId": "titleReleaseExpectationQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Whether to accept cached data.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/imdb/title-release-expectation-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Release Expectation",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Top Cast and Crew data, including names, roles, and profile references, for talent research and title enrichment.",
"method": "GET",
"operationId": "titleTopCastAndCrew",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-top-cast-and-crew/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Top Cast and Crew",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title User Reviews Summary data, including aggregated review content and counts, for audience sentiment analysis.",
"method": "GET",
"operationId": "titleUserReviewsSummaryQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-user-reviews-summary-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Reviews Summary",
"tags": [
"IMDb"
]
}
]
};
const args = parseArgs(process.argv.slice(2));
if (!args.operation) {
fail("Missing required --operation argument.");
}
const operation = manifest.operations.find((item) => item.operationId === args.operation);
if (!operation) {
fail(`Unknown operation "args.operation".`, { availableOperations: manifest.operations.map((item) => item.operationId) });
}
const params = parseParams(args.paramsJson);
applyDefaults(operation, params);
injectToken(operation, params, args.token);
validateRequired(operation, params);
const baseUrl = manifest.baseUrl;
const url = new URL(operation.path, ensureBaseUrl(baseUrl));
applyPathParams(operation, params, url);
applyQueryParams(operation, params, url);
const requestInit = {
headers: {
"accept": "application/json",
},
method: operation.method,
};
if (operation.requestBody && params.body !== undefined) {
requestInit.body = JSON.stringify(params.body);
requestInit.headers["content-type"] = operation.requestBody.contentType || "application/json";
}
let response;
try {
response = await fetch(url, requestInit);
} catch (error) {
fail("Network request failed.", {
cause: error instanceof Error ? error.message : String(error),
operationId: operation.operationId,
});
}
const rawBody = await response.text();
let parsedBody;
try {
parsedBody = rawBody ? JSON.parse(rawBody) : null;
} catch (error) {
if (!response.ok) {
fail("Backend returned a non-JSON error response.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
fail("Backend returned invalid JSON.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
if (!response.ok) {
fail("Backend request failed.", {
body: parsedBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
process.stdout.write(`JSON.stringify(parsedBody, null, 2)\n`);
function parseArgs(argv) {
const parsed = { operation: null, paramsJson: "{}", token: null };
for (let index = 0; index < argv.length; index += 1) {
const flag = argv[index];
const value = argv[index + 1];
if (flag === "--operation") {
parsed.operation = value;
index += 1;
continue;
}
if (flag === "--params-json") {
parsed.paramsJson = value;
index += 1;
continue;
}
if (flag === "--token") {
parsed.token = value;
index += 1;
continue;
}
fail(`Unknown argument "flag".`);
}
return parsed;
}
function parseParams(input) {
try {
const parsed = JSON.parse(input || "{}");
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
fail("--params-json must decode to a JSON object.");
}
return parsed;
} catch (error) {
fail("Failed to parse --params-json.", {
cause: error instanceof Error ? error.message : String(error),
});
}
}
function applyDefaults(operation, params) {
for (const parameter of operation.parameters) {
if (params[parameter.name] === undefined && parameter.defaultValue !== null) {
params[parameter.name] = parameter.defaultValue;
}
}
}
function injectToken(operation, params, cliToken) {
const tokenParam = operation.parameters.find((parameter) => parameter.name === "token");
if (!tokenParam || params.token !== undefined) {
return;
}
if (!cliToken) {
fail("--token is required for this operation.", {
operationId: operation.operationId,
});
}
params.token = cliToken;
}
function validateRequired(operation, params) {
const missing = [];
for (const parameter of operation.parameters) {
if (parameter.required && params[parameter.name] === undefined) {
missing.push(parameter.name);
}
}
if (operation.requestBody?.required && params.body === undefined) {
missing.push("body");
}
if (missing.length) {
fail("Missing required parameters.", {
missing,
operationId: operation.operationId,
});
}
}
function applyPathParams(operation, params, url) {
let pathname = url.pathname;
for (const parameter of operation.parameters.filter((item) => item.location === "path")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
pathname = pathname.replace(`{parameter.name}`, encodeURIComponent(String(value)));
}
url.pathname = pathname;
}
function applyQueryParams(operation, params, url) {
for (const parameter of operation.parameters.filter((item) => item.location === "query")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
appendValue(url.searchParams, parameter.name, value);
}
}
function appendValue(searchParams, name, value) {
if (Array.isArray(value)) {
for (const item of value) {
appendValue(searchParams, name, item);
}
return;
}
if (value && typeof value === "object") {
searchParams.append(name, JSON.stringify(value));
return;
}
searchParams.append(name, String(value));
}
function ensureBaseUrl(value) {
return value.endsWith("/") ? value : `value/`;
}
function fail(message, details = null) {
const payload = { message };
if (details) {
payload.details = details;
}
process.stderr.write(`JSON.stringify(payload, null, 2)\n`);
process.exit(1);
}
FILE:generated/operations.json
{
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze IMDb workflows with JustOneAPI, including release Expectation, extended Details, and top Cast and Crew across 19 operations.",
"displayName": "IMDb",
"openapi": "3.1.0",
"operations": [
{
"description": "Get IMDb keyword Search data, including matched results, metadata, and ranking signals, for entity discovery and entertainment research.",
"method": "GET",
"operationId": "mainSearchQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The term to search for (e.g., 'fire').",
"enumValues": [],
"location": "query",
"name": "searchTerm",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "Top",
"description": "Category of results to include in search.\n\nAvailable Values:\n- `Top`: Top Results\n- `Movies`: Movies\n- `Shows`: TV Shows\n- `People`: People\n- `Interests`: Interests\n- `Episodes`: Episodes\n- `Podcast`: Podcasts\n- `Video_games`: Video Games",
"enumValues": [
"Top",
"Movies",
"Shows",
"People",
"Interests",
"Episodes",
"Podcast",
"Video_games"
],
"location": "query",
"name": "type",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 25,
"description": "Maximum number of results to return (1-300).",
"enumValues": [],
"location": "query",
"name": "limit",
"required": false,
"schemaType": "integer"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/main-search-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Keyword Search",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb news by Category data, including headlines, summaries, and source metadata, for media monitoring and news research.",
"method": "GET",
"operationId": "newsByCategoryQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "News category to filter by.\n\nAvailable Values:\n- `TOP`: Top News\n- `MOVIE`: Movie News\n- `TV`: TV News\n- `CELEBRITY`: Celebrity News",
"enumValues": [
"TOP",
"MOVIE",
"TV",
"CELEBRITY"
],
"location": "query",
"name": "category",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/news-by-category-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "News by Category",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb streaming Picks data, including curated titles available across streaming surfaces, for content discovery and watchlist research.",
"method": "GET",
"operationId": "streamingPicksQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/streaming-picks-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Streaming Picks",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Awards Summary data, including nominations, for title benchmarking and awards research.",
"method": "GET",
"operationId": "titleAwardsSummaryQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-awards-summary-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Awards Summary",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Base Info data, including title text, release year, and type, for catalog enrichment and title lookup workflows.",
"method": "GET",
"operationId": "titleBaseQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-base-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Base Info",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Box Office Summary data, including grosses and related performance indicators, for revenue tracking and title comparison.",
"method": "GET",
"operationId": "titleBoxOfficeSummary",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-box-office-summary/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Box Office Summary",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Chart Rankings data, including positions in lists such as Top 250 and related charts, for ranking monitoring and title benchmarking.",
"method": "GET",
"operationId": "titleChartRankings",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Type of rankings chart to retrieve.\n\nAvailable Values:\n- `TOP_250`: Top 250 Movies\n- `TOP_250_TV`: Top 250 TV Shows",
"enumValues": [
"TOP_250",
"TOP_250_TV"
],
"location": "query",
"name": "rankingsChartType",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-chart-rankings/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Chart Rankings",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Contribution Questions data, including specific IMDb title, for data maintenance workflows and title metadata review.",
"method": "GET",
"operationId": "titleContributionQuestions",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-contribution-questions/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Contribution Questions",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Countries of Origin data, including country names and regional metadata, for catalog enrichment and regional content analysis.",
"method": "GET",
"operationId": "titleCountriesOfOrigin",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-countries-of-origin/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Countries of Origin",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Critics Review Summary data, including review highlights, for review analysis and title comparison.",
"method": "GET",
"operationId": "titleCriticsReviewSummaryQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-critics-review-summary-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Critics Review Summary",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Details data, including metadata, release info, and cast, for deep title research and catalog enrichment.",
"method": "GET",
"operationId": "titleDetailsQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-details-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Details",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title 'Did You Know' Insights data, including trivia, for editorial research and title insight enrichment.",
"method": "GET",
"operationId": "titleDidYouKnowQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-did-you-know-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "'Did You Know' Insights",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Extended Details data, including title info, images, and genres, for title enrichment and catalog research.",
"method": "GET",
"operationId": "titleExtendedDetailsQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-extended-details-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Extended Details",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Recommendations data, including related titles and suggestion metadata, for content discovery and recommendation analysis.",
"method": "GET",
"operationId": "titleMoreLikeThisQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-more-like-this-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Recommendations",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Plot Summary data, including core metrics, trend signals, and performance indicators, for displaying a detailed description of the storyline for a movie or TV show.",
"method": "GET",
"operationId": "titlePlotQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-plot-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Plot Summary",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Redux Overview data, including key summary fields and linked metadata, for get a concise summary and overview of a movie or TV show's key attributes.",
"method": "GET",
"operationId": "titleReduxOverviewQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-redux-overview-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Redux Overview",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Release Expectation data, including production status, release dates, and anticipation signals, for release monitoring and title research.",
"method": "GET",
"operationId": "titleReleaseExpectationQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Whether to accept cached data.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/imdb/title-release-expectation-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Release Expectation",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title Top Cast and Crew data, including names, roles, and profile references, for talent research and title enrichment.",
"method": "GET",
"operationId": "titleTopCastAndCrew",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-top-cast-and-crew/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Top Cast and Crew",
"tags": [
"IMDb"
]
},
{
"description": "Get IMDb title User Reviews Summary data, including aggregated review content and counts, for audience sentiment analysis.",
"method": "GET",
"operationId": "titleUserReviewsSummaryQuery",
"parameters": [
{
"defaultValue": null,
"description": "User's authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique IMDb ID of the title (e.g., tt12037194).",
"enumValues": [],
"location": "query",
"name": "id",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "en_US",
"description": "Language and country preferences.\n\nAvailable Values:\n- `en_US`: English (US)\n- `fr_CA`: French (Canada)\n- `fr_FR`: French (France)\n- `de_DE`: German (Germany)\n- `hi_IN`: Hindi (India)\n- `it_IT`: Italian (Italy)\n- `pt_BR`: Portuguese (Brazil)\n- `es_ES`: Spanish (Spain)\n- `es_US`: Spanish (US)\n- `es_MX`: Spanish (Mexico)",
"enumValues": [
"en_US",
"fr_CA",
"fr_FR",
"de_DE",
"hi_IN",
"it_IT",
"pt_BR",
"es_ES",
"es_US",
"es_MX"
],
"location": "query",
"name": "languageCountry",
"required": false,
"schemaType": "string"
}
],
"path": "/api/imdb/title-user-reviews-summary-query/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Reviews Summary",
"tags": [
"IMDb"
]
}
],
"platformKey": "imdb",
"primaryTag": "IMDb",
"skillName": "justoneapi_imdb",
"slug": "justoneapi-imdb",
"sourceTitle": "OpenAPI definition"
}
FILE:generated/operations.md
# IMDb operations
Generated from JustOneAPI OpenAPI for platform key `imdb`.
## `mainSearchQuery`
- Method: `GET`
- Path: `/api/imdb/main-search-query/v1`
- Summary: Keyword Search
- Description: Get IMDb keyword Search data, including matched results, metadata, and ranking signals, for entity discovery and entertainment research.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `searchTerm` | `query` | yes | `string` | n/a | The term to search for (e.g., 'fire'). |
| `type` | `query` | no | `string` | `Top` | Category of results to include in search.
Available Values:
- `Top`: Top Results
- `Movies`: Movies
- `Shows`: TV Shows
- `People`: People
- `Interests`: Interests
- `Episodes`: Episodes
- `Podcast`: Podcasts
- `Video_games`: Video Games |
| enum | values | no | n/a | n/a | `Top`, `Movies`, `Shows`, `People`, `Interests`, `Episodes`, `Podcast`, `Video_games` |
| `limit` | `query` | no | `integer` | `25` | Maximum number of results to return (1-300). |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `newsByCategoryQuery`
- Method: `GET`
- Path: `/api/imdb/news-by-category-query/v1`
- Summary: News by Category
- Description: Get IMDb news by Category data, including headlines, summaries, and source metadata, for media monitoring and news research.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `category` | `query` | yes | `string` | n/a | News category to filter by.
Available Values:
- `TOP`: Top News
- `MOVIE`: Movie News
- `TV`: TV News
- `CELEBRITY`: Celebrity News |
| enum | values | no | n/a | n/a | `TOP`, `MOVIE`, `TV`, `CELEBRITY` |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `streamingPicksQuery`
- Method: `GET`
- Path: `/api/imdb/streaming-picks-query/v1`
- Summary: Streaming Picks
- Description: Get IMDb streaming Picks data, including curated titles available across streaming surfaces, for content discovery and watchlist research.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `titleAwardsSummaryQuery`
- Method: `GET`
- Path: `/api/imdb/title-awards-summary-query/v1`
- Summary: Awards Summary
- Description: Get IMDb title Awards Summary data, including nominations, for title benchmarking and awards research.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `id` | `query` | yes | `string` | n/a | The unique IMDb ID of the title (e.g., tt12037194). |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `titleBaseQuery`
- Method: `GET`
- Path: `/api/imdb/title-base-query/v1`
- Summary: Base Info
- Description: Get IMDb title Base Info data, including title text, release year, and type, for catalog enrichment and title lookup workflows.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `id` | `query` | yes | `string` | n/a | The unique IMDb ID of the title (e.g., tt12037194). |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `titleBoxOfficeSummary`
- Method: `GET`
- Path: `/api/imdb/title-box-office-summary/v1`
- Summary: Box Office Summary
- Description: Get IMDb title Box Office Summary data, including grosses and related performance indicators, for revenue tracking and title comparison.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `id` | `query` | yes | `string` | n/a | The unique IMDb ID of the title (e.g., tt12037194). |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `titleChartRankings`
- Method: `GET`
- Path: `/api/imdb/title-chart-rankings/v1`
- Summary: Chart Rankings
- Description: Get IMDb title Chart Rankings data, including positions in lists such as Top 250 and related charts, for ranking monitoring and title benchmarking.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `rankingsChartType` | `query` | yes | `string` | n/a | Type of rankings chart to retrieve.
Available Values:
- `TOP_250`: Top 250 Movies
- `TOP_250_TV`: Top 250 TV Shows |
| enum | values | no | n/a | n/a | `TOP_250`, `TOP_250_TV` |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `titleContributionQuestions`
- Method: `GET`
- Path: `/api/imdb/title-contribution-questions/v1`
- Summary: Contribution Questions
- Description: Get IMDb title Contribution Questions data, including specific IMDb title, for data maintenance workflows and title metadata review.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `id` | `query` | yes | `string` | n/a | The unique IMDb ID of the title (e.g., tt12037194). |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `titleCountriesOfOrigin`
- Method: `GET`
- Path: `/api/imdb/title-countries-of-origin/v1`
- Summary: Countries of Origin
- Description: Get IMDb title Countries of Origin data, including country names and regional metadata, for catalog enrichment and regional content analysis.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `id` | `query` | yes | `string` | n/a | The unique IMDb ID of the title (e.g., tt12037194). |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `titleCriticsReviewSummaryQuery`
- Method: `GET`
- Path: `/api/imdb/title-critics-review-summary-query/v1`
- Summary: Critics Review Summary
- Description: Get IMDb title Critics Review Summary data, including review highlights, for review analysis and title comparison.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `id` | `query` | yes | `string` | n/a | The unique IMDb ID of the title (e.g., tt12037194). |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `titleDetailsQuery`
- Method: `GET`
- Path: `/api/imdb/title-details-query/v1`
- Summary: Details
- Description: Get IMDb title Details data, including metadata, release info, and cast, for deep title research and catalog enrichment.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `id` | `query` | yes | `string` | n/a | The unique IMDb ID of the title (e.g., tt12037194). |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `titleDidYouKnowQuery`
- Method: `GET`
- Path: `/api/imdb/title-did-you-know-query/v1`
- Summary: 'Did You Know' Insights
- Description: Get IMDb title 'Did You Know' Insights data, including trivia, for editorial research and title insight enrichment.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `id` | `query` | yes | `string` | n/a | The unique IMDb ID of the title (e.g., tt12037194). |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `titleExtendedDetailsQuery`
- Method: `GET`
- Path: `/api/imdb/title-extended-details-query/v1`
- Summary: Extended Details
- Description: Get IMDb title Extended Details data, including title info, images, and genres, for title enrichment and catalog research.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `id` | `query` | yes | `string` | n/a | The unique IMDb ID of the title (e.g., tt12037194). |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `titleMoreLikeThisQuery`
- Method: `GET`
- Path: `/api/imdb/title-more-like-this-query/v1`
- Summary: Recommendations
- Description: Get IMDb title Recommendations data, including related titles and suggestion metadata, for content discovery and recommendation analysis.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `id` | `query` | yes | `string` | n/a | The unique IMDb ID of the title (e.g., tt12037194). |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `titlePlotQuery`
- Method: `GET`
- Path: `/api/imdb/title-plot-query/v1`
- Summary: Plot Summary
- Description: Get IMDb title Plot Summary data, including core metrics, trend signals, and performance indicators, for displaying a detailed description of the storyline for a movie or TV show.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `id` | `query` | yes | `string` | n/a | The unique IMDb ID of the title (e.g., tt12037194). |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `titleReduxOverviewQuery`
- Method: `GET`
- Path: `/api/imdb/title-redux-overview-query/v1`
- Summary: Redux Overview
- Description: Get IMDb title Redux Overview data, including key summary fields and linked metadata, for get a concise summary and overview of a movie or TV show's key attributes.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `id` | `query` | yes | `string` | n/a | The unique IMDb ID of the title (e.g., tt12037194). |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `titleReleaseExpectationQuery`
- Method: `GET`
- Path: `/api/imdb/title-release-expectation-query/v1`
- Summary: Release Expectation
- Description: Get IMDb title Release Expectation data, including production status, release dates, and anticipation signals, for release monitoring and title research.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `id` | `query` | yes | `string` | n/a | The unique IMDb ID of the title (e.g., tt12037194). |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
| `acceptCache` | `query` | no | `boolean` | `false` | Whether to accept cached data. |
### Request body
No request body.
### Responses
- `200`: OK
## `titleTopCastAndCrew`
- Method: `GET`
- Path: `/api/imdb/title-top-cast-and-crew/v1`
- Summary: Top Cast and Crew
- Description: Get IMDb title Top Cast and Crew data, including names, roles, and profile references, for talent research and title enrichment.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `id` | `query` | yes | `string` | n/a | The unique IMDb ID of the title (e.g., tt12037194). |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
## `titleUserReviewsSummaryQuery`
- Method: `GET`
- Path: `/api/imdb/title-user-reviews-summary-query/v1`
- Summary: User Reviews Summary
- Description: Get IMDb title User Reviews Summary data, including aggregated review content and counts, for audience sentiment analysis.
- Tags: `IMDb`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User's authentication token. |
| `id` | `query` | yes | `string` | n/a | The unique IMDb ID of the title (e.g., tt12037194). |
| `languageCountry` | `query` | no | `string` | `en_US` | Language and country preferences.
Available Values:
- `en_US`: English (US)
- `fr_CA`: French (Canada)
- `fr_FR`: French (France)
- `de_DE`: German (Germany)
- `hi_IN`: Hindi (India)
- `it_IT`: Italian (Italy)
- `pt_BR`: Portuguese (Brazil)
- `es_ES`: Spanish (Spain)
- `es_US`: Spanish (US)
- `es_MX`: Spanish (Mexico) |
| enum | values | no | n/a | n/a | `en_US`, `fr_CA`, `fr_FR`, `de_DE`, `hi_IN`, `it_IT`, `pt_BR`, `es_ES`, `es_US`, `es_MX` |
### Request body
No request body.
### Responses
- `200`: OK
Analyze Facebook workflows with JustOneAPI, including post Search, get Profile ID, and get Profile Posts.
---
name: Facebook API
description: Analyze Facebook workflows with JustOneAPI, including post Search, get Profile ID, and get Profile Posts.
author: JustOneAPI
homepage: https://api.justoneapi.com
metadata: {"openclaw":{"homepage":"https://api.justoneapi.com","primaryEnv":"JUST_ONE_API_TOKEN","requires":{"bins":["node"],"env":["JUST_ONE_API_TOKEN"]},"skillKey":"justoneapi_facebook"}}
---
# Facebook
This skill wraps 3 Facebook operations exposed by JustOneAPI. It is strongest for post Search, get Profile ID, and get Profile Posts. Expect common inputs such as `cursor`, `endDate`, `keyword`, `profileId`, `startDate`.
## When To Use It
- The user needs post Search or get Profile ID on Facebook.
- The task lines up with get Profile Posts rather than a generic cross-platform workflow.
- The user can provide identifiers or filters such as `cursor`, `endDate`, `keyword`, `profileId`.
- The user wants an exact API-backed answer instead of a freeform summary.
## Representative Operations
- `searchFacebookPostsV1`: Post Search — Get Facebook post Search data, including matched results, metadata, and ranking signals, for discovering relevant public posts for specific keywords and analyzing engagement and reach of public content on facebook
- `getProfileIdV1`: Get Profile ID — Retrieve the unique Facebook profile ID from a given profile URL
- `getProfilePostsV1`: Get Profile Posts — Get public posts from a specific Facebook profile using its profile ID
## Request Pattern
- 3 operations are available in this skill.
- HTTP methods used here: `GET`.
- The most common non-token parameters are `cursor`, `endDate`, `keyword`, `profileId`, `startDate`.
- All operations in this skill are parameter-driven requests; none require a request body.
## How To Work
1. Read `generated/operations.md` before choosing an endpoint.
2. Start with one of these operations when it matches the user's request: `searchFacebookPostsV1`, `getProfileIdV1`, `getProfilePostsV1`.
3. Pick the smallest matching operation instead of guessing.
4. Ask the user for any missing required parameter. Do not invent values.
5. Call the helper with:
```bash
node {baseDir}/bin/run.mjs --operation "<operation-id>" --token "$JUST_ONE_API_TOKEN" --params-json '{"key":"value"}'
```
## Environment
- Required: `JUST_ONE_API_TOKEN`
- This skill uses `JUST_ONE_API_TOKEN` only for authenticated Just One API requests.
- Keep `JUST_ONE_API_TOKEN` private. Do not paste it into chat messages, screenshots, or logs.
- Get a token from [Just One API Dashboard](https://dashboard.justoneapi.com/en/login?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_facebook&utm_content=project_link).
- Authentication details: [Just One API Usage Guide](https://docs.justoneapi.com/en/?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_facebook&utm_content=project_link).
## Output Rules
- Start with a plain-language answer tied to the Facebook task the user asked for.
- Include the most decision-relevant fields from the selected endpoint before dumping raw JSON.
- When using `searchFacebookPostsV1`, explain why the returned fields answer the user's question.
- If the user gave filters such as `cursor`, `endDate`, `keyword`, echo those back so the scope is explicit.
- If the backend errors, include the backend payload and the exact operation ID.
FILE:bin/run.mjs
#!/usr/bin/env node
const manifest = {
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Facebook workflows with JustOneAPI, including post Search, get Profile ID, and get Profile Posts.",
"displayName": "Facebook",
"openapi": "3.1.0",
"platformKey": "facebook",
"primaryTag": "Facebook",
"skillName": "justoneapi_facebook",
"slug": "justoneapi-facebook",
"sourceTitle": "OpenAPI definition",
"operations": [
{
"description": "Retrieve the unique Facebook profile ID from a given profile URL.",
"method": "GET",
"operationId": "getProfileIdV1",
"parameters": [
{
"defaultValue": null,
"description": "User security token for API access authentication.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The path part of the Facebook profile URL. Do not include `https://www.facebook.com`. Example: `/people/To-Bite/pfbid021XLeDjjZjsoWse1H43VEgb3i1uCLTpBvXSvrnL2n118YPtMF5AZkBrZobhWWdHTHl/`",
"enumValues": [],
"location": "query",
"name": "url",
"required": true,
"schemaType": "string"
}
],
"path": "/api/facebook/get-profile-id/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Get Profile ID",
"tags": [
"Facebook"
]
},
{
"description": "Get public posts from a specific Facebook profile using its profile ID.",
"method": "GET",
"operationId": "getProfilePostsV1",
"parameters": [
{
"defaultValue": null,
"description": "User security token for API access authentication.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique Facebook profile ID.",
"enumValues": [],
"location": "query",
"name": "profileId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Pagination cursor for fetching the next set of results.",
"enumValues": [],
"location": "query",
"name": "cursor",
"required": false,
"schemaType": "string"
}
],
"path": "/api/facebook/get-profile-posts/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Get Profile Posts",
"tags": [
"Facebook"
]
},
{
"description": "Get Facebook post Search data, including matched results, metadata, and ranking signals, for discovering relevant public posts for specific keywords and analyzing engagement and reach of public content on facebook.",
"method": "GET",
"operationId": "searchFacebookPostsV1",
"parameters": [
{
"defaultValue": null,
"description": "User security token for API access authentication.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Keyword to search for in public posts. Supports basic text matching.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Start date for the search range (inclusive), formatted as yyyy-MM-dd.",
"enumValues": [],
"location": "query",
"name": "startDate",
"required": false,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "End date for the search range (inclusive), formatted as yyyy-MM-dd.",
"enumValues": [],
"location": "query",
"name": "endDate",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Pagination cursor for fetching the next set of results.",
"enumValues": [],
"location": "query",
"name": "cursor",
"required": false,
"schemaType": "string"
}
],
"path": "/api/facebook/search-post/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Post Search",
"tags": [
"Facebook"
]
}
]
};
const args = parseArgs(process.argv.slice(2));
if (!args.operation) {
fail("Missing required --operation argument.");
}
const operation = manifest.operations.find((item) => item.operationId === args.operation);
if (!operation) {
fail(`Unknown operation "args.operation".`, { availableOperations: manifest.operations.map((item) => item.operationId) });
}
const params = parseParams(args.paramsJson);
applyDefaults(operation, params);
injectToken(operation, params, args.token);
validateRequired(operation, params);
const baseUrl = manifest.baseUrl;
const url = new URL(operation.path, ensureBaseUrl(baseUrl));
applyPathParams(operation, params, url);
applyQueryParams(operation, params, url);
const requestInit = {
headers: {
"accept": "application/json",
},
method: operation.method,
};
if (operation.requestBody && params.body !== undefined) {
requestInit.body = JSON.stringify(params.body);
requestInit.headers["content-type"] = operation.requestBody.contentType || "application/json";
}
let response;
try {
response = await fetch(url, requestInit);
} catch (error) {
fail("Network request failed.", {
cause: error instanceof Error ? error.message : String(error),
operationId: operation.operationId,
});
}
const rawBody = await response.text();
let parsedBody;
try {
parsedBody = rawBody ? JSON.parse(rawBody) : null;
} catch (error) {
if (!response.ok) {
fail("Backend returned a non-JSON error response.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
fail("Backend returned invalid JSON.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
if (!response.ok) {
fail("Backend request failed.", {
body: parsedBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
process.stdout.write(`JSON.stringify(parsedBody, null, 2)\n`);
function parseArgs(argv) {
const parsed = { operation: null, paramsJson: "{}", token: null };
for (let index = 0; index < argv.length; index += 1) {
const flag = argv[index];
const value = argv[index + 1];
if (flag === "--operation") {
parsed.operation = value;
index += 1;
continue;
}
if (flag === "--params-json") {
parsed.paramsJson = value;
index += 1;
continue;
}
if (flag === "--token") {
parsed.token = value;
index += 1;
continue;
}
fail(`Unknown argument "flag".`);
}
return parsed;
}
function parseParams(input) {
try {
const parsed = JSON.parse(input || "{}");
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
fail("--params-json must decode to a JSON object.");
}
return parsed;
} catch (error) {
fail("Failed to parse --params-json.", {
cause: error instanceof Error ? error.message : String(error),
});
}
}
function applyDefaults(operation, params) {
for (const parameter of operation.parameters) {
if (params[parameter.name] === undefined && parameter.defaultValue !== null) {
params[parameter.name] = parameter.defaultValue;
}
}
}
function injectToken(operation, params, cliToken) {
const tokenParam = operation.parameters.find((parameter) => parameter.name === "token");
if (!tokenParam || params.token !== undefined) {
return;
}
if (!cliToken) {
fail("--token is required for this operation.", {
operationId: operation.operationId,
});
}
params.token = cliToken;
}
function validateRequired(operation, params) {
const missing = [];
for (const parameter of operation.parameters) {
if (parameter.required && params[parameter.name] === undefined) {
missing.push(parameter.name);
}
}
if (operation.requestBody?.required && params.body === undefined) {
missing.push("body");
}
if (missing.length) {
fail("Missing required parameters.", {
missing,
operationId: operation.operationId,
});
}
}
function applyPathParams(operation, params, url) {
let pathname = url.pathname;
for (const parameter of operation.parameters.filter((item) => item.location === "path")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
pathname = pathname.replace(`{parameter.name}`, encodeURIComponent(String(value)));
}
url.pathname = pathname;
}
function applyQueryParams(operation, params, url) {
for (const parameter of operation.parameters.filter((item) => item.location === "query")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
appendValue(url.searchParams, parameter.name, value);
}
}
function appendValue(searchParams, name, value) {
if (Array.isArray(value)) {
for (const item of value) {
appendValue(searchParams, name, item);
}
return;
}
if (value && typeof value === "object") {
searchParams.append(name, JSON.stringify(value));
return;
}
searchParams.append(name, String(value));
}
function ensureBaseUrl(value) {
return value.endsWith("/") ? value : `value/`;
}
function fail(message, details = null) {
const payload = { message };
if (details) {
payload.details = details;
}
process.stderr.write(`JSON.stringify(payload, null, 2)\n`);
process.exit(1);
}
FILE:generated/operations.json
{
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Facebook workflows with JustOneAPI, including post Search, get Profile ID, and get Profile Posts.",
"displayName": "Facebook",
"openapi": "3.1.0",
"operations": [
{
"description": "Retrieve the unique Facebook profile ID from a given profile URL.",
"method": "GET",
"operationId": "getProfileIdV1",
"parameters": [
{
"defaultValue": null,
"description": "User security token for API access authentication.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The path part of the Facebook profile URL. Do not include `https://www.facebook.com`. Example: `/people/To-Bite/pfbid021XLeDjjZjsoWse1H43VEgb3i1uCLTpBvXSvrnL2n118YPtMF5AZkBrZobhWWdHTHl/`",
"enumValues": [],
"location": "query",
"name": "url",
"required": true,
"schemaType": "string"
}
],
"path": "/api/facebook/get-profile-id/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Get Profile ID",
"tags": [
"Facebook"
]
},
{
"description": "Get public posts from a specific Facebook profile using its profile ID.",
"method": "GET",
"operationId": "getProfilePostsV1",
"parameters": [
{
"defaultValue": null,
"description": "User security token for API access authentication.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique Facebook profile ID.",
"enumValues": [],
"location": "query",
"name": "profileId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Pagination cursor for fetching the next set of results.",
"enumValues": [],
"location": "query",
"name": "cursor",
"required": false,
"schemaType": "string"
}
],
"path": "/api/facebook/get-profile-posts/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Get Profile Posts",
"tags": [
"Facebook"
]
},
{
"description": "Get Facebook post Search data, including matched results, metadata, and ranking signals, for discovering relevant public posts for specific keywords and analyzing engagement and reach of public content on facebook.",
"method": "GET",
"operationId": "searchFacebookPostsV1",
"parameters": [
{
"defaultValue": null,
"description": "User security token for API access authentication.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Keyword to search for in public posts. Supports basic text matching.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Start date for the search range (inclusive), formatted as yyyy-MM-dd.",
"enumValues": [],
"location": "query",
"name": "startDate",
"required": false,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "End date for the search range (inclusive), formatted as yyyy-MM-dd.",
"enumValues": [],
"location": "query",
"name": "endDate",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Pagination cursor for fetching the next set of results.",
"enumValues": [],
"location": "query",
"name": "cursor",
"required": false,
"schemaType": "string"
}
],
"path": "/api/facebook/search-post/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Post Search",
"tags": [
"Facebook"
]
}
],
"platformKey": "facebook",
"primaryTag": "Facebook",
"skillName": "justoneapi_facebook",
"slug": "justoneapi-facebook",
"sourceTitle": "OpenAPI definition"
}
FILE:generated/operations.md
# Facebook operations
Generated from JustOneAPI OpenAPI for platform key `facebook`.
## `getProfileIdV1`
- Method: `GET`
- Path: `/api/facebook/get-profile-id/v1`
- Summary: Get Profile ID
- Description: Retrieve the unique Facebook profile ID from a given profile URL.
- Tags: `Facebook`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User security token for API access authentication. |
| `url` | `query` | yes | `string` | n/a | The path part of the Facebook profile URL. Do not include `https://www.facebook.com`. Example: `/people/To-Bite/pfbid021XLeDjjZjsoWse1H43VEgb3i1uCLTpBvXSvrnL2n118YPtMF5AZkBrZobhWWdHTHl/` |
### Request body
No request body.
### Responses
- `200`: OK
## `getProfilePostsV1`
- Method: `GET`
- Path: `/api/facebook/get-profile-posts/v1`
- Summary: Get Profile Posts
- Description: Get public posts from a specific Facebook profile using its profile ID.
- Tags: `Facebook`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User security token for API access authentication. |
| `profileId` | `query` | yes | `string` | n/a | The unique Facebook profile ID. |
| `cursor` | `query` | no | `string` | n/a | Pagination cursor for fetching the next set of results. |
### Request body
No request body.
### Responses
- `200`: OK
## `searchFacebookPostsV1`
- Method: `GET`
- Path: `/api/facebook/search-post/v1`
- Summary: Post Search
- Description: Get Facebook post Search data, including matched results, metadata, and ranking signals, for discovering relevant public posts for specific keywords and analyzing engagement and reach of public content on facebook.
- Tags: `Facebook`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User security token for API access authentication. |
| `keyword` | `query` | yes | `string` | n/a | Keyword to search for in public posts. Supports basic text matching. |
| `startDate` | `query` | no | `string` | n/a | Start date for the search range (inclusive), formatted as yyyy-MM-dd. |
| `endDate` | `query` | no | `string` | n/a | End date for the search range (inclusive), formatted as yyyy-MM-dd. |
| `cursor` | `query` | no | `string` | n/a | Pagination cursor for fetching the next set of results. |
### Request body
No request body.
### Responses
- `200`: OK
Analyze Douyin Creator Marketplace (Xingtu) workflows with JustOneAPI, including creator Profile, creator Link Structure, and creator Visibility Status acros...
---
name: Douyin Creator Marketplace (Xingtu) API
description: Analyze Douyin Creator Marketplace (Xingtu) workflows with JustOneAPI, including creator Profile, creator Link Structure, and creator Visibility Status across 46 operations.
author: JustOneAPI
homepage: https://api.justoneapi.com
metadata: {"openclaw":{"homepage":"https://api.justoneapi.com","primaryEnv":"JUST_ONE_API_TOKEN","requires":{"bins":["node"],"env":["JUST_ONE_API_TOKEN"]},"skillKey":"justoneapi_douyin_xingtu"}}
---
# Douyin Creator Marketplace (Xingtu)
This skill wraps 46 Douyin Creator Marketplace (Xingtu) operations exposed by JustOneAPI. It is strongest for creator Profile, creator Link Structure, creator Visibility Status, and creator Channel Metrics. Expect common inputs such as `oAuthorId`, `acceptCache`, `kolId`, `platform`, `range`.
## When To Use It
- The user needs creator Profile or creator Link Structure on Douyin Creator Marketplace (Xingtu).
- The task lines up with creator Visibility Status rather than a generic cross-platform workflow.
- The user can provide identifiers or filters such as `oAuthorId`, `acceptCache`, `kolId`, `platform`.
- The user wants an exact API-backed answer instead of a freeform summary.
## Representative Operations
- `gwApiAuthorGetAuthorBaseInfoV1`: Creator Profile — Get Douyin Creator Marketplace (Xingtu) creator Profile data, including audience and pricing data, for influencer vetting, benchmark analysis, and campaign planning
- `gwApiDataSpAuthorLinkStructV1`: Creator Link Structure — Get Douyin Creator Marketplace (Xingtu) creator Link Structure data, including engagement and conversion metrics, for creator performance analysis
- `gwApiDataSpCheckAuthorDisplayV1`: Creator Visibility Status — Get Douyin Creator Marketplace (Xingtu) creator Visibility Status data, including availability status, discovery eligibility, and campaign display signals, for creator evaluation, campaign planning, and marketplace research
- `gwApiAuthorGetAuthorPlatformChannelInfoV2V1`: Creator Channel Metrics — Get Douyin Creator Marketplace (Xingtu) creator Channel Metrics data, including platform distribution and channel performance data used, for creator evaluation
## Request Pattern
- 46 operations are available in this skill.
- HTTP methods used here: `GET`.
- The most common non-token parameters are `oAuthorId`, `acceptCache`, `kolId`, `platform`, `range`.
- All operations in this skill are parameter-driven requests; none require a request body.
## How To Work
1. Read `generated/operations.md` before choosing an endpoint.
2. Start with one of these operations when it matches the user's request: `gwApiAuthorGetAuthorBaseInfoV1`, `gwApiDataSpAuthorLinkStructV1`, `gwApiDataSpCheckAuthorDisplayV1`, `gwApiAuthorGetAuthorPlatformChannelInfoV2V1`.
3. Pick the smallest matching operation instead of guessing.
4. Ask the user for any missing required parameter. Do not invent values.
5. Call the helper with:
```bash
node {baseDir}/bin/run.mjs --operation "<operation-id>" --token "$JUST_ONE_API_TOKEN" --params-json '{"key":"value"}'
```
## Environment
- Required: `JUST_ONE_API_TOKEN`
- This skill uses `JUST_ONE_API_TOKEN` only for authenticated Just One API requests.
- Keep `JUST_ONE_API_TOKEN` private. Do not paste it into chat messages, screenshots, or logs.
- Get a token from [Just One API Dashboard](https://dashboard.justoneapi.com/en/login?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_douyin_xingtu&utm_content=project_link).
- Authentication details: [Just One API Usage Guide](https://docs.justoneapi.com/en/?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_douyin_xingtu&utm_content=project_link).
## Output Rules
- Start with a plain-language answer tied to the Douyin Creator Marketplace (Xingtu) task the user asked for.
- Include the most decision-relevant fields from the selected endpoint before dumping raw JSON.
- When using `gwApiAuthorGetAuthorBaseInfoV1`, explain why the returned fields answer the user's question.
- If the user gave filters such as `oAuthorId`, `acceptCache`, `kolId`, echo those back so the scope is explicit.
- If the backend errors, include the backend payload and the exact operation ID.
FILE:bin/run.mjs
#!/usr/bin/env node
const manifest = {
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Douyin Creator Marketplace (Xingtu) workflows with JustOneAPI, including creator Profile, creator Link Structure, and creator Visibility Status across 46 operations.",
"displayName": "Douyin Creator Marketplace (Xingtu)",
"openapi": "3.1.0",
"platformKey": "douyin-xingtu",
"primaryTag": "Douyin Creator Marketplace (Xingtu)",
"skillName": "justoneapi_douyin_xingtu",
"slug": "justoneapi-douyin-xingtu",
"sourceTitle": "OpenAPI definition",
"operations": [
{
"description": "Get Douyin Creator Marketplace (Xingtu) author Commerce Seeding Base Info data, including baseline metrics, commercial signals, and seeding indicators, for product seeding analysis, creator vetting, and campaign planning.",
"method": "GET",
"operationId": "getAuthorCommerceSeedingBaseInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Time range.",
"enumValues": [],
"location": "query",
"name": "range",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-author-commerce-seed-base-info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Author Commerce Seeding Base Info",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) author Commerce Spread Info data, including spread metrics, for creator evaluation for campaign planning and media buying.",
"method": "GET",
"operationId": "getAuthorCommerceSpreadInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-author-commerce-spread-info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Author Commerce Spread Info",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) kOL Content Keyword Analysis data, including core metrics, trend signals, and performance indicators, for content theme analysis and creator positioning research.",
"method": "GET",
"operationId": "getAuthorContentHotKeywordsV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "0",
"description": "Type of keywords.",
"enumValues": [],
"location": "query",
"name": "keywordType",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-author-content-hot-keywords/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "KOL Content Keyword Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) kOL Comment Keyword Analysis data, including core metrics, trend signals, and performance indicators, for audience language analysis and comment-topic research.",
"method": "GET",
"operationId": "getAuthorHotCommentTokensV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-author-hot-comment-tokens/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "KOL Comment Keyword Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) audience Distribution data, including demographic and interest-based audience segmentation, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolAudienceDistributionV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-audience-distribution/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Audience Distribution",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) conversion Analysis data, including conversion efficiency and commercial performance indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolConvertAbilityV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Time range.\n\nAvailable Values:\n- `_1`: Last 7 days\n- `_2`: Last 30 days\n- `_3`: Last 90 days",
"enumValues": [
"_1",
"_2",
"_3"
],
"location": "query",
"name": "range",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-convert-ability/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Conversion Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) conversion Resources data, including products tied to a Douyin Xingtu creator's conversion activity, for commerce analysis and campaign optimization.",
"method": "GET",
"operationId": "getKolConvertVideosOrProductsV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Resource type.\n\nAvailable Values:\n- `_1`: Video Data\n- `_2`: Product Data",
"enumValues": [
"_1",
"_2"
],
"location": "query",
"name": "detailType",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Page number.",
"enumValues": [],
"location": "query",
"name": "page",
"required": true,
"schemaType": "integer"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-convert-videos-or-products/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Conversion Resources",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) cost Performance Analysis data, including pricing, exposure, and engagement efficiency indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolCpInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-cp-info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Cost Performance Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) follower Growth Trend data, including historical audience changes over time, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolDailyFansV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Start Date (yyyy-MM-dd).",
"enumValues": [],
"location": "query",
"name": "startDate",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "End Date (yyyy-MM-dd).",
"enumValues": [],
"location": "query",
"name": "endDate",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-daily-fans/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Follower Growth Trend",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) follower distribution data, including audience demographics, interests, and distribution metrics, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolFansDistributionV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "_1",
"description": "Fans type.\n\nAvailable Values:\n- `_1`: Fans Portrait\n- `_2`: Fans Group Portrait\n- `_5`: Iron Fans Portrait",
"enumValues": [
"_1",
"_2",
"_5"
],
"location": "query",
"name": "fansType",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-fans-distribution/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Follower Distribution",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Profile data, including audience and pricing data, for influencer vetting, benchmark analysis, and campaign planning.",
"method": "GET",
"operationId": "getDouyinXingtuKolInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "_1",
"description": "Platform channel.\n\nAvailable Values:\n- `_1`: Short Video\n- `_10`: Live Streaming",
"enumValues": [
"_1",
"_10"
],
"location": "query",
"name": "platformChannel",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Profile",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Link Metrics data, including creator ranking, traffic structure, and related performance indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolLinkInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Industry Tag.",
"enumValues": [],
"location": "query",
"name": "industryTag",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-link-info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Link Metrics",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Link Structure data, including engagement and conversion metrics, for creator performance analysis.",
"method": "GET",
"operationId": "getKolLinkStructV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-link-struct/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Link Structure",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) marketing metrics data, including rate card details and commercial service metrics, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolMarketingInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "_1",
"description": "Platform channel.\n\nAvailable Values:\n- `_1`: Short Video\n- `_10`: Live Streaming",
"enumValues": [
"_1",
"_10"
],
"location": "query",
"name": "platformChannel",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-marketing-info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Marketing Metrics",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) recommended videos data, including video performance metrics, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolRecVideosV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-rec-videos/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Recommended Videos",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) showcase items data, including core metrics, trend signals, and performance indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolShowItemsV2V1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Whether true is Xingtu video, false is personal video.",
"enumValues": [],
"location": "query",
"name": "onlyAssign",
"required": false,
"schemaType": "boolean"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-show-items-v2/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Showcase Items",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) spread metrics data, including audience, content performance, and commercial indicators, for quick evaluation.",
"method": "GET",
"operationId": "getKolSpreadInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "_1",
"description": "Spread info type.\n\nAvailable Values:\n- `_1`: Personal Video\n- `_2`: Xingtu Video",
"enumValues": [
"_1",
"_2"
],
"location": "query",
"name": "type",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "_2",
"description": "Time range.\n\nAvailable Values:\n- `_2`: Last 30 days\n- `_3`: Last 90 days",
"enumValues": [
"_2",
"_3"
],
"location": "query",
"name": "range",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "1",
"description": "Flow type.",
"enumValues": [],
"location": "query",
"name": "flowType",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Only assigned notes.",
"enumValues": [],
"location": "query",
"name": "onlyAssign",
"required": false,
"schemaType": "boolean"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-spread-info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Spread Metrics",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) audience touchpoint distribution data, including segment breakdowns, audience composition, and distribution signals, for traffic analysis and existing integration compatibility.",
"method": "GET",
"operationId": "getKolTouchDistributionV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-touch-distribution/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Audience Touchpoint Distribution",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) video Details data, including performance fields from the legacy Douyin Xingtu endpoint, for content review and integration compatibility.",
"method": "GET",
"operationId": "getDouyinXingtuVideoDetailV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Video detail ID.",
"enumValues": [],
"location": "query",
"name": "detailId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-video-detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Details",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) author Commerce Seeding Base Info data, including baseline metrics, commercial signals, and seeding indicators, for product seeding analysis, creator vetting, and campaign planning.",
"method": "GET",
"operationId": "gwApiAggregatorGetAuthorCommerceSeedBaseInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "DAY_90",
"description": "Time range.\n\nAvailable Values:\n- `DAY_30`: Last 30 days\n- `DAY_90`: Last 90 days",
"enumValues": [
"DAY_30",
"DAY_90"
],
"location": "query",
"name": "range",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/aggregator/get_author_commerce_seed_base_info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Author Commerce Seeding Base Info",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) author Commerce Spread Info data, including spread metrics, for creator evaluation for campaign planning and media buying.",
"method": "GET",
"operationId": "gwApiAggregatorGetAuthorCommerceSpreadInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/aggregator/get_author_commerce_spread_info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Author Commerce Spread Info",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Order Experience data, including commercial history and transaction-related indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiAggregatorGetAuthorOrderExperienceV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "DAY_30",
"description": "Time period.\n\nAvailable Values:\n- `DAY_30`: Last 30 days\n- `DAY_90`: Last 90 days",
"enumValues": [
"DAY_30",
"DAY_90"
],
"location": "query",
"name": "period",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/aggregator/get_author_order_experience/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Order Experience",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Profile data, including audience and pricing data, for influencer vetting, benchmark analysis, and campaign planning.",
"method": "GET",
"operationId": "gwApiAuthorGetAuthorBaseInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/author/get_author_base_info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Profile",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) marketing metrics data, including rate card details and commercial service metrics, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiAuthorGetAuthorMarketingInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/author/get_author_marketing_info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Marketing Metrics",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Channel Metrics data, including platform distribution and channel performance data used, for creator evaluation.",
"method": "GET",
"operationId": "gwApiAuthorGetAuthorPlatformChannelInfoV2V1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/author/get_author_platform_channel_info_v2/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Channel Metrics",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) showcase Items data, including products and videos associated with the account, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiAuthorGetAuthorShowItemsV2V1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Whether to only include assigned items.",
"enumValues": [],
"location": "query",
"name": "onlyAssign",
"required": false,
"schemaType": "boolean"
},
{
"defaultValue": "EXCLUDE",
"description": "Flow type filter.\n\nAvailable Values:\n- `EXCLUDE`: Exclude\n- `INCLUDE`: Include",
"enumValues": [
"EXCLUDE",
"INCLUDE"
],
"location": "query",
"name": "flowType",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/author/get_author_show_items_v2/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Showcase Items",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) audience Distribution data, including demographic and interest-based audience segmentation, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpAuthorAudienceDistributionV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "CONNECTED",
"description": "Link type filter.\n\nAvailable Values:\n- `CONNECTED`: Connected\n- `AWARE`: Aware\n- `INTERESTED`: Interested\n- `LIKE`: Like\n- `FOLLOW`: Follow",
"enumValues": [
"CONNECTED",
"AWARE",
"INTERESTED",
"LIKE",
"FOLLOW"
],
"location": "query",
"name": "linkType",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/author_audience_distribution/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Audience Distribution",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) cost Performance Analysis data, including pricing, exposure, and engagement efficiency indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpAuthorCpInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/author_cp_info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Cost Performance Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Link Structure data, including engagement and conversion metrics, for creator performance analysis.",
"method": "GET",
"operationId": "gwApiDataSpAuthorLinkStructV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/author_link_struct/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Link Structure",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) recommended Videos data, including content references used, for creator evaluation.",
"method": "GET",
"operationId": "gwApiDataSpAuthorRecVideosV2V1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/author_rec_videos_v2/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Recommended Videos",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) audience Touchpoint Distribution data, including segment breakdowns, audience composition, and distribution signals, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpAuthorTouchDistributionV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/author_touch_distribution/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Audience Touchpoint Distribution",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) video Distribution data, including content performance breakdowns across published videos, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpAuthorVideoDistributionV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/author_video_distribution/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Distribution",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Visibility Status data, including availability status, discovery eligibility, and campaign display signals, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpCheckAuthorDisplayV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/check_author_display/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Visibility Status",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) conversion Analysis data, including conversion efficiency and commercial performance indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpGetAuthorConvertAbilityV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "DAY_30",
"description": "Time range.\n\nAvailable Values:\n- `DAY_30`: Last 30 days\n- `DAY_90`: Last 90 days",
"enumValues": [
"DAY_30",
"DAY_90"
],
"location": "query",
"name": "range",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/get_author_convert_ability/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Conversion Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) conversion Resources data, including products tied to a Douyin Xingtu creator's conversion activity, for commerce analysis and campaign optimization.",
"method": "GET",
"operationId": "gwApiDataSpGetAuthorConvertVideosOrProductsV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "ALL",
"description": "Industry category.\n\nAvailable Values:\n- `ALL`: All\n- `ELECTRONICS_AND_APPLIANCES`: Electronics and Appliances\n- `FOOD_AND_BEVERAGE`: Food and Beverage\n- `CLOTHING_AND_ACCESSORIES`: Clothing and Accessories\n- `HEALTHCARE_AND_MEDICAL`: Healthcare and Medical\n- `BUSINESS_SERVICES`: Business Services\n- `LOCAL_SERVICES`: Local Services\n- `REAL_ESTATE`: Real Estate\n- `HOME_AND_BUILDING_MATERIALS`: Home and Building Materials\n- `EDUCATION_AND_TRAINING`: Education and Training\n- `TRAVEL_AND_TOURISM`: Travel and Tourism\n- `PUBLIC_SERVICES`: Public Services\n- `GAMES`: Games\n- `RETAIL`: Retail\n- `TRANSPORTATION_EQUIPMENT`: Transportation Equipment\n- `AUTOMOTIVE`: Automotive\n- `AGRICULTURE_FORESTRY_FISHERY`: Agriculture Forestry Fishery\n- `CHEMICAL_AND_ENERGY`: Chemical and Energy\n- `ELECTRONICS_AND_ELECTRICAL`: Electronics and Electrical\n- `MACHINERY_EQUIPMENT`: Machinery Equipment\n- `CULTURE_SPORTS_ENTERTAINMENT`: Culture Sports Entertainment\n- `MEDIA_AND_INFORMATION`: Media and Information\n- `LOGISTICS`: Logistics\n- `TELECOMMUNICATIONS`: Telecommunications\n- `FINANCIAL_SERVICES`: Financial Services\n- `CATERING_SERVICES`: Catering Services\n- `SOFTWARE_TOOLS`: Software Tools\n- `FRANCHISING_AND_INVESTMENT`: Franchising and Investment\n- `BEAUTY_AND_COSMETICS`: Beauty and Cosmetics\n- `MOTHER_BABY_AND_PET`: Mother Baby and Pet\n- `DAILY_CHEMICALS`: Daily Chemicals\n- `PHYSICAL_BOOKS`: Physical Books\n- `SOCIAL_AND_COMMUNICATION`: Social and Communication\n- `MEDICAL_INSTITUTIONS`: Medical Institutions",
"enumValues": [
"ALL",
"ELECTRONICS_AND_APPLIANCES",
"FOOD_AND_BEVERAGE",
"CLOTHING_AND_ACCESSORIES",
"HEALTHCARE_AND_MEDICAL",
"BUSINESS_SERVICES",
"LOCAL_SERVICES",
"REAL_ESTATE",
"HOME_AND_BUILDING_MATERIALS",
"EDUCATION_AND_TRAINING",
"TRAVEL_AND_TOURISM",
"PUBLIC_SERVICES",
"GAMES",
"RETAIL",
"TRANSPORTATION_EQUIPMENT",
"AUTOMOTIVE",
"AGRICULTURE_FORESTRY_FISHERY",
"CHEMICAL_AND_ENERGY",
"ELECTRONICS_AND_ELECTRICAL",
"MACHINERY_EQUIPMENT",
"CULTURE_SPORTS_ENTERTAINMENT",
"MEDIA_AND_INFORMATION",
"LOGISTICS",
"TELECOMMUNICATIONS",
"FINANCIAL_SERVICES",
"CATERING_SERVICES",
"SOFTWARE_TOOLS",
"FRANCHISING_AND_INVESTMENT",
"BEAUTY_AND_COSMETICS",
"MOTHER_BABY_AND_PET",
"DAILY_CHEMICALS",
"PHYSICAL_BOOKS",
"SOCIAL_AND_COMMUNICATION",
"MEDICAL_INSTITUTIONS"
],
"location": "query",
"name": "industryId",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "DAY_30",
"description": "Time range.\n\nAvailable Values:\n- `DAY_30`: Last 30 days\n- `DAY_90`: Last 90 days",
"enumValues": [
"DAY_30",
"DAY_90"
],
"location": "query",
"name": "range",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "VIDEO",
"description": "Resource type.\n\nAvailable Values:\n- `VIDEO`: Video\n- `PRODUCT`: Product",
"enumValues": [
"VIDEO",
"PRODUCT"
],
"location": "query",
"name": "detailType",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/get_author_convert_videos_or_products/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Conversion Resources",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) follower Growth Trend data, including historical audience changes over time, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpGetAuthorDailyFansV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Start Date (yyyy-MM-dd).",
"enumValues": [],
"location": "query",
"name": "startDate",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "End Date (yyyy-MM-dd).",
"enumValues": [],
"location": "query",
"name": "endDate",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/get_author_daily_fans/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Follower Growth Trend",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) follower Distribution data, including audience segmentation and location and demographic breakdowns, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpGetAuthorFansDistributionV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "FAN",
"description": "Author type filter.\n\nAvailable Values:\n- `FAN`: Fan\n- `DIE_HARD_FAN`: Die Hard Fan",
"enumValues": [
"FAN",
"DIE_HARD_FAN"
],
"location": "query",
"name": "authorType",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/get_author_fans_distribution/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Follower Distribution",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Link Metrics data, including creator ranking, traffic structure, and related performance indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpGetAuthorLinkInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "ALL",
"description": "Industry tag.\n\nAvailable Values:\n- `ALL`: All\n- `ELECTRONICS_AND_APPLIANCES`: Electronics and Appliances\n- `FOOD_AND_BEVERAGE`: Food and Beverage\n- `CLOTHING_AND_ACCESSORIES`: Clothing and Accessories\n- `HEALTHCARE_AND_MEDICAL`: Healthcare and Medical\n- `BUSINESS_SERVICES`: Business Services\n- `LOCAL_SERVICES`: Local Services\n- `REAL_ESTATE`: Real Estate\n- `HOME_AND_BUILDING_MATERIALS`: Home and Building Materials\n- `EDUCATION_AND_TRAINING`: Education and Training\n- `TRAVEL_AND_TOURISM`: Travel and Tourism\n- `PUBLIC_SERVICES`: Public Services\n- `GAMES`: Games\n- `RETAIL`: Retail\n- `TRANSPORTATION_EQUIPMENT`: Transportation Equipment\n- `AUTOMOTIVE`: Automotive\n- `AGRICULTURE_FORESTRY_FISHERY`: Agriculture Forestry Fishery\n- `CHEMICAL_AND_ENERGY`: Chemical and Energy\n- `ELECTRONICS_AND_ELECTRICAL`: Electronics and Electrical\n- `MACHINERY_EQUIPMENT`: Machinery Equipment\n- `CULTURE_SPORTS_ENTERTAINMENT`: Culture Sports Entertainment\n- `MEDIA_AND_INFORMATION`: Media and Information\n- `LOGISTICS`: Logistics\n- `TELECOMMUNICATIONS`: Telecommunications\n- `FINANCIAL_SERVICES`: Financial Services\n- `CATERING_SERVICES`: Catering Services\n- `SOFTWARE_TOOLS`: Software Tools\n- `FRANCHISING_AND_INVESTMENT`: Franchising and Investment\n- `BEAUTY_AND_COSMETICS`: Beauty and Cosmetics\n- `MOTHER_BABY_AND_PET`: Mother Baby and Pet\n- `DAILY_CHEMICALS`: Daily Chemicals\n- `PHYSICAL_BOOKS`: Physical Books\n- `SOCIAL_AND_COMMUNICATION`: Social and Communication\n- `MEDICAL_INSTITUTIONS`: Medical Institutions",
"enumValues": [
"ALL",
"ELECTRONICS_AND_APPLIANCES",
"FOOD_AND_BEVERAGE",
"CLOTHING_AND_ACCESSORIES",
"HEALTHCARE_AND_MEDICAL",
"BUSINESS_SERVICES",
"LOCAL_SERVICES",
"REAL_ESTATE",
"HOME_AND_BUILDING_MATERIALS",
"EDUCATION_AND_TRAINING",
"TRAVEL_AND_TOURISM",
"PUBLIC_SERVICES",
"GAMES",
"RETAIL",
"TRANSPORTATION_EQUIPMENT",
"AUTOMOTIVE",
"AGRICULTURE_FORESTRY_FISHERY",
"CHEMICAL_AND_ENERGY",
"ELECTRONICS_AND_ELECTRICAL",
"MACHINERY_EQUIPMENT",
"CULTURE_SPORTS_ENTERTAINMENT",
"MEDIA_AND_INFORMATION",
"LOGISTICS",
"TELECOMMUNICATIONS",
"FINANCIAL_SERVICES",
"CATERING_SERVICES",
"SOFTWARE_TOOLS",
"FRANCHISING_AND_INVESTMENT",
"BEAUTY_AND_COSMETICS",
"MOTHER_BABY_AND_PET",
"DAILY_CHEMICALS",
"PHYSICAL_BOOKS",
"SOCIAL_AND_COMMUNICATION",
"MEDICAL_INSTITUTIONS"
],
"location": "query",
"name": "industryTag",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/get_author_link_info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Link Metrics",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) spread metrics data, including exposure, spread, and related performance indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpGetAuthorSpreadInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "DAY_30",
"description": "Time range.\n\nAvailable Values:\n- `DAY_30`: Last 30 days\n- `DAY_90`: Last 90 days",
"enumValues": [
"DAY_30",
"DAY_90"
],
"location": "query",
"name": "range",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "PERSONAL_VIDEO",
"description": "Video type.\n\nAvailable Values:\n- `PERSONAL_VIDEO`: Personal video\n- `XINTU_VIDEO`: Xingtu video",
"enumValues": [
"PERSONAL_VIDEO",
"XINTU_VIDEO"
],
"location": "query",
"name": "type",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Whether to only include assigned videos.",
"enumValues": [],
"location": "query",
"name": "onlyAssign",
"required": false,
"schemaType": "boolean"
},
{
"defaultValue": "EXCLUDE",
"description": "Flow type filter.\n\nAvailable Values:\n- `EXCLUDE`: Exclude\n- `INCLUDE`: Include",
"enumValues": [
"EXCLUDE",
"INCLUDE"
],
"location": "query",
"name": "flowType",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/get_author_spread_info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Spread Metrics",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) item Report Details data, including key metrics and report fields used, for item performance analysis.",
"method": "GET",
"operationId": "gwApiDataSpItemReportDetailV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Item's unique ID.",
"enumValues": [],
"location": "query",
"name": "itemId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/item_report_detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Item Report Details",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) item Report Analysis data, including performance interpretation, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpItemReportThAnalysisV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Item's unique ID.",
"enumValues": [],
"location": "query",
"name": "itemId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/item_report_th_analysis/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Item Report Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) item Report Trend data, including time-based changes in item performance metrics, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpItemReportTrendV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Item's unique ID.",
"enumValues": [],
"location": "query",
"name": "itemId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/item_report_trend/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Item Report Trends",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) kOL Comment Keyword Analysis data, including core metrics, trend signals, and performance indicators, for audience language analysis and comment-topic research.",
"method": "GET",
"operationId": "gwApiDataGetAuthorHotCommentTokensV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data/get_author_hot_comment_tokens/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "KOL Comment Keyword Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) kOL Content Keyword Analysis data, including core metrics, trend signals, and performance indicators, for content theme analysis and creator positioning research.",
"method": "GET",
"operationId": "gwApiGauthorGetAuthorContentHotKeywordsV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/gauthor/get_author_content_hot_keywords/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "KOL Content Keyword Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Search data, including filters, returning profile, and audience, for discovery, comparison, and shortlist building.",
"method": "GET",
"operationId": "gwApiGsearchSearchForAuthorSquareV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Search keyword.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
},
{
"defaultValue": "NICKNAME",
"description": "Search criteria type.\n\nAvailable Values:\n- `NICKNAME`: By Nickname\n- `CONTENT`: By Content",
"enumValues": [
"NICKNAME",
"CONTENT"
],
"location": "query",
"name": "searchType",
"required": false,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Follower range (e.g., 10-100).",
"enumValues": [],
"location": "query",
"name": "followerRange",
"required": false,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL price type.\n\nAvailable Values:\n- `视频1_20s`: Video 1-20s\n- `视频21_60s`: Video 21-60s\n- `视频60s以上`: Video > 60s\n- `定制短剧单集`: Mini-drama episode\n- `千次自然播放量`: CPM naturally\n- `短直种草视频`: Short-live seeding video\n- `短直预热视频`: Short-live warm-up video\n- `短直明星种草`: Celebrity short-live seeding\n- `短直明星预热`: Celebrity short-live warm-up\n- `明星视频`: Celebrity video\n- `合集视频`: Collection video\n- `抖音短视频共创_主投稿达人`: Douyin short video co-creation - main creator\n- `抖音短视频共创_参与达人`: Douyin short video co-creation - participant",
"enumValues": [
"视频1_20s",
"视频21_60s",
"视频60s以上",
"定制短剧单集",
"千次自然播放量",
"短直种草视频",
"短直预热视频",
"短直明星种草",
"短直明星预热",
"明星视频",
"合集视频",
"抖音短视频共创_主投稿达人",
"抖音短视频共创_参与达人"
],
"location": "query",
"name": "kolPriceType",
"required": false,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL price range (e.g., 10000-50000).",
"enumValues": [],
"location": "query",
"name": "kolPriceRange",
"required": false,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Content tag filter.",
"enumValues": [],
"location": "query",
"name": "contentTag",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/gsearch/search_for_author_square/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Search",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) kOL Keyword Search data, including matching creators and discovery data, for creator sourcing and shortlist building.",
"method": "GET",
"operationId": "searchKolSimpleV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Search keywords.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Platform source.\n\nAvailable Values:\n- `_1`: Douyin\n- `_2`: Toutiao\n- `_3`: Xigua",
"enumValues": [
"_1",
"_2",
"_3"
],
"location": "query",
"name": "platformSource",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Page number.",
"enumValues": [],
"location": "query",
"name": "page",
"required": true,
"schemaType": "integer"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/search-kol-simple/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "KOL Keyword Search",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
}
]
};
const args = parseArgs(process.argv.slice(2));
if (!args.operation) {
fail("Missing required --operation argument.");
}
const operation = manifest.operations.find((item) => item.operationId === args.operation);
if (!operation) {
fail(`Unknown operation "args.operation".`, { availableOperations: manifest.operations.map((item) => item.operationId) });
}
const params = parseParams(args.paramsJson);
applyDefaults(operation, params);
injectToken(operation, params, args.token);
validateRequired(operation, params);
const baseUrl = manifest.baseUrl;
const url = new URL(operation.path, ensureBaseUrl(baseUrl));
applyPathParams(operation, params, url);
applyQueryParams(operation, params, url);
const requestInit = {
headers: {
"accept": "application/json",
},
method: operation.method,
};
if (operation.requestBody && params.body !== undefined) {
requestInit.body = JSON.stringify(params.body);
requestInit.headers["content-type"] = operation.requestBody.contentType || "application/json";
}
let response;
try {
response = await fetch(url, requestInit);
} catch (error) {
fail("Network request failed.", {
cause: error instanceof Error ? error.message : String(error),
operationId: operation.operationId,
});
}
const rawBody = await response.text();
let parsedBody;
try {
parsedBody = rawBody ? JSON.parse(rawBody) : null;
} catch (error) {
if (!response.ok) {
fail("Backend returned a non-JSON error response.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
fail("Backend returned invalid JSON.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
if (!response.ok) {
fail("Backend request failed.", {
body: parsedBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
process.stdout.write(`JSON.stringify(parsedBody, null, 2)\n`);
function parseArgs(argv) {
const parsed = { operation: null, paramsJson: "{}", token: null };
for (let index = 0; index < argv.length; index += 1) {
const flag = argv[index];
const value = argv[index + 1];
if (flag === "--operation") {
parsed.operation = value;
index += 1;
continue;
}
if (flag === "--params-json") {
parsed.paramsJson = value;
index += 1;
continue;
}
if (flag === "--token") {
parsed.token = value;
index += 1;
continue;
}
fail(`Unknown argument "flag".`);
}
return parsed;
}
function parseParams(input) {
try {
const parsed = JSON.parse(input || "{}");
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
fail("--params-json must decode to a JSON object.");
}
return parsed;
} catch (error) {
fail("Failed to parse --params-json.", {
cause: error instanceof Error ? error.message : String(error),
});
}
}
function applyDefaults(operation, params) {
for (const parameter of operation.parameters) {
if (params[parameter.name] === undefined && parameter.defaultValue !== null) {
params[parameter.name] = parameter.defaultValue;
}
}
}
function injectToken(operation, params, cliToken) {
const tokenParam = operation.parameters.find((parameter) => parameter.name === "token");
if (!tokenParam || params.token !== undefined) {
return;
}
if (!cliToken) {
fail("--token is required for this operation.", {
operationId: operation.operationId,
});
}
params.token = cliToken;
}
function validateRequired(operation, params) {
const missing = [];
for (const parameter of operation.parameters) {
if (parameter.required && params[parameter.name] === undefined) {
missing.push(parameter.name);
}
}
if (operation.requestBody?.required && params.body === undefined) {
missing.push("body");
}
if (missing.length) {
fail("Missing required parameters.", {
missing,
operationId: operation.operationId,
});
}
}
function applyPathParams(operation, params, url) {
let pathname = url.pathname;
for (const parameter of operation.parameters.filter((item) => item.location === "path")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
pathname = pathname.replace(`{parameter.name}`, encodeURIComponent(String(value)));
}
url.pathname = pathname;
}
function applyQueryParams(operation, params, url) {
for (const parameter of operation.parameters.filter((item) => item.location === "query")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
appendValue(url.searchParams, parameter.name, value);
}
}
function appendValue(searchParams, name, value) {
if (Array.isArray(value)) {
for (const item of value) {
appendValue(searchParams, name, item);
}
return;
}
if (value && typeof value === "object") {
searchParams.append(name, JSON.stringify(value));
return;
}
searchParams.append(name, String(value));
}
function ensureBaseUrl(value) {
return value.endsWith("/") ? value : `value/`;
}
function fail(message, details = null) {
const payload = { message };
if (details) {
payload.details = details;
}
process.stderr.write(`JSON.stringify(payload, null, 2)\n`);
process.exit(1);
}
FILE:generated/operations.json
{
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Douyin Creator Marketplace (Xingtu) workflows with JustOneAPI, including creator Profile, creator Link Structure, and creator Visibility Status across 46 operations.",
"displayName": "Douyin Creator Marketplace (Xingtu)",
"openapi": "3.1.0",
"operations": [
{
"description": "Get Douyin Creator Marketplace (Xingtu) author Commerce Seeding Base Info data, including baseline metrics, commercial signals, and seeding indicators, for product seeding analysis, creator vetting, and campaign planning.",
"method": "GET",
"operationId": "getAuthorCommerceSeedingBaseInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Time range.",
"enumValues": [],
"location": "query",
"name": "range",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-author-commerce-seed-base-info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Author Commerce Seeding Base Info",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) author Commerce Spread Info data, including spread metrics, for creator evaluation for campaign planning and media buying.",
"method": "GET",
"operationId": "getAuthorCommerceSpreadInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-author-commerce-spread-info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Author Commerce Spread Info",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) kOL Content Keyword Analysis data, including core metrics, trend signals, and performance indicators, for content theme analysis and creator positioning research.",
"method": "GET",
"operationId": "getAuthorContentHotKeywordsV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "0",
"description": "Type of keywords.",
"enumValues": [],
"location": "query",
"name": "keywordType",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-author-content-hot-keywords/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "KOL Content Keyword Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) kOL Comment Keyword Analysis data, including core metrics, trend signals, and performance indicators, for audience language analysis and comment-topic research.",
"method": "GET",
"operationId": "getAuthorHotCommentTokensV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-author-hot-comment-tokens/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "KOL Comment Keyword Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) audience Distribution data, including demographic and interest-based audience segmentation, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolAudienceDistributionV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-audience-distribution/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Audience Distribution",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) conversion Analysis data, including conversion efficiency and commercial performance indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolConvertAbilityV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Time range.\n\nAvailable Values:\n- `_1`: Last 7 days\n- `_2`: Last 30 days\n- `_3`: Last 90 days",
"enumValues": [
"_1",
"_2",
"_3"
],
"location": "query",
"name": "range",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-convert-ability/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Conversion Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) conversion Resources data, including products tied to a Douyin Xingtu creator's conversion activity, for commerce analysis and campaign optimization.",
"method": "GET",
"operationId": "getKolConvertVideosOrProductsV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Resource type.\n\nAvailable Values:\n- `_1`: Video Data\n- `_2`: Product Data",
"enumValues": [
"_1",
"_2"
],
"location": "query",
"name": "detailType",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Page number.",
"enumValues": [],
"location": "query",
"name": "page",
"required": true,
"schemaType": "integer"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-convert-videos-or-products/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Conversion Resources",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) cost Performance Analysis data, including pricing, exposure, and engagement efficiency indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolCpInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-cp-info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Cost Performance Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) follower Growth Trend data, including historical audience changes over time, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolDailyFansV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Start Date (yyyy-MM-dd).",
"enumValues": [],
"location": "query",
"name": "startDate",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "End Date (yyyy-MM-dd).",
"enumValues": [],
"location": "query",
"name": "endDate",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-daily-fans/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Follower Growth Trend",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) follower distribution data, including audience demographics, interests, and distribution metrics, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolFansDistributionV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "_1",
"description": "Fans type.\n\nAvailable Values:\n- `_1`: Fans Portrait\n- `_2`: Fans Group Portrait\n- `_5`: Iron Fans Portrait",
"enumValues": [
"_1",
"_2",
"_5"
],
"location": "query",
"name": "fansType",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-fans-distribution/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Follower Distribution",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Profile data, including audience and pricing data, for influencer vetting, benchmark analysis, and campaign planning.",
"method": "GET",
"operationId": "getDouyinXingtuKolInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "_1",
"description": "Platform channel.\n\nAvailable Values:\n- `_1`: Short Video\n- `_10`: Live Streaming",
"enumValues": [
"_1",
"_10"
],
"location": "query",
"name": "platformChannel",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Profile",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Link Metrics data, including creator ranking, traffic structure, and related performance indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolLinkInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Industry Tag.",
"enumValues": [],
"location": "query",
"name": "industryTag",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-link-info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Link Metrics",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Link Structure data, including engagement and conversion metrics, for creator performance analysis.",
"method": "GET",
"operationId": "getKolLinkStructV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-link-struct/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Link Structure",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) marketing metrics data, including rate card details and commercial service metrics, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolMarketingInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "_1",
"description": "Platform channel.\n\nAvailable Values:\n- `_1`: Short Video\n- `_10`: Live Streaming",
"enumValues": [
"_1",
"_10"
],
"location": "query",
"name": "platformChannel",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-marketing-info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Marketing Metrics",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) recommended videos data, including video performance metrics, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolRecVideosV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-rec-videos/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Recommended Videos",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) showcase items data, including core metrics, trend signals, and performance indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "getKolShowItemsV2V1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Whether true is Xingtu video, false is personal video.",
"enumValues": [],
"location": "query",
"name": "onlyAssign",
"required": false,
"schemaType": "boolean"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-show-items-v2/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Showcase Items",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) spread metrics data, including audience, content performance, and commercial indicators, for quick evaluation.",
"method": "GET",
"operationId": "getKolSpreadInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "_1",
"description": "Spread info type.\n\nAvailable Values:\n- `_1`: Personal Video\n- `_2`: Xingtu Video",
"enumValues": [
"_1",
"_2"
],
"location": "query",
"name": "type",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "_2",
"description": "Time range.\n\nAvailable Values:\n- `_2`: Last 30 days\n- `_3`: Last 90 days",
"enumValues": [
"_2",
"_3"
],
"location": "query",
"name": "range",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "1",
"description": "Flow type.",
"enumValues": [],
"location": "query",
"name": "flowType",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Only assigned notes.",
"enumValues": [],
"location": "query",
"name": "onlyAssign",
"required": false,
"schemaType": "boolean"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-spread-info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Spread Metrics",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) audience touchpoint distribution data, including segment breakdowns, audience composition, and distribution signals, for traffic analysis and existing integration compatibility.",
"method": "GET",
"operationId": "getKolTouchDistributionV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL ID.",
"enumValues": [],
"location": "query",
"name": "kolId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-kol-touch-distribution/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Audience Touchpoint Distribution",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) video Details data, including performance fields from the legacy Douyin Xingtu endpoint, for content review and integration compatibility.",
"method": "GET",
"operationId": "getDouyinXingtuVideoDetailV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Video detail ID.",
"enumValues": [],
"location": "query",
"name": "detailId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/get-video-detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Details",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) author Commerce Seeding Base Info data, including baseline metrics, commercial signals, and seeding indicators, for product seeding analysis, creator vetting, and campaign planning.",
"method": "GET",
"operationId": "gwApiAggregatorGetAuthorCommerceSeedBaseInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "DAY_90",
"description": "Time range.\n\nAvailable Values:\n- `DAY_30`: Last 30 days\n- `DAY_90`: Last 90 days",
"enumValues": [
"DAY_30",
"DAY_90"
],
"location": "query",
"name": "range",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/aggregator/get_author_commerce_seed_base_info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Author Commerce Seeding Base Info",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) author Commerce Spread Info data, including spread metrics, for creator evaluation for campaign planning and media buying.",
"method": "GET",
"operationId": "gwApiAggregatorGetAuthorCommerceSpreadInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/aggregator/get_author_commerce_spread_info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Author Commerce Spread Info",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Order Experience data, including commercial history and transaction-related indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiAggregatorGetAuthorOrderExperienceV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "DAY_30",
"description": "Time period.\n\nAvailable Values:\n- `DAY_30`: Last 30 days\n- `DAY_90`: Last 90 days",
"enumValues": [
"DAY_30",
"DAY_90"
],
"location": "query",
"name": "period",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/aggregator/get_author_order_experience/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Order Experience",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Profile data, including audience and pricing data, for influencer vetting, benchmark analysis, and campaign planning.",
"method": "GET",
"operationId": "gwApiAuthorGetAuthorBaseInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/author/get_author_base_info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Profile",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) marketing metrics data, including rate card details and commercial service metrics, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiAuthorGetAuthorMarketingInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/author/get_author_marketing_info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Marketing Metrics",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Channel Metrics data, including platform distribution and channel performance data used, for creator evaluation.",
"method": "GET",
"operationId": "gwApiAuthorGetAuthorPlatformChannelInfoV2V1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/author/get_author_platform_channel_info_v2/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Channel Metrics",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) showcase Items data, including products and videos associated with the account, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiAuthorGetAuthorShowItemsV2V1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Whether to only include assigned items.",
"enumValues": [],
"location": "query",
"name": "onlyAssign",
"required": false,
"schemaType": "boolean"
},
{
"defaultValue": "EXCLUDE",
"description": "Flow type filter.\n\nAvailable Values:\n- `EXCLUDE`: Exclude\n- `INCLUDE`: Include",
"enumValues": [
"EXCLUDE",
"INCLUDE"
],
"location": "query",
"name": "flowType",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/author/get_author_show_items_v2/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Showcase Items",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) audience Distribution data, including demographic and interest-based audience segmentation, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpAuthorAudienceDistributionV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "CONNECTED",
"description": "Link type filter.\n\nAvailable Values:\n- `CONNECTED`: Connected\n- `AWARE`: Aware\n- `INTERESTED`: Interested\n- `LIKE`: Like\n- `FOLLOW`: Follow",
"enumValues": [
"CONNECTED",
"AWARE",
"INTERESTED",
"LIKE",
"FOLLOW"
],
"location": "query",
"name": "linkType",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/author_audience_distribution/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Audience Distribution",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) cost Performance Analysis data, including pricing, exposure, and engagement efficiency indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpAuthorCpInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/author_cp_info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Cost Performance Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Link Structure data, including engagement and conversion metrics, for creator performance analysis.",
"method": "GET",
"operationId": "gwApiDataSpAuthorLinkStructV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/author_link_struct/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Link Structure",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) recommended Videos data, including content references used, for creator evaluation.",
"method": "GET",
"operationId": "gwApiDataSpAuthorRecVideosV2V1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/author_rec_videos_v2/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Recommended Videos",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) audience Touchpoint Distribution data, including segment breakdowns, audience composition, and distribution signals, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpAuthorTouchDistributionV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/author_touch_distribution/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Audience Touchpoint Distribution",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) video Distribution data, including content performance breakdowns across published videos, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpAuthorVideoDistributionV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/author_video_distribution/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Distribution",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Visibility Status data, including availability status, discovery eligibility, and campaign display signals, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpCheckAuthorDisplayV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/check_author_display/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Visibility Status",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) conversion Analysis data, including conversion efficiency and commercial performance indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpGetAuthorConvertAbilityV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "DAY_30",
"description": "Time range.\n\nAvailable Values:\n- `DAY_30`: Last 30 days\n- `DAY_90`: Last 90 days",
"enumValues": [
"DAY_30",
"DAY_90"
],
"location": "query",
"name": "range",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/get_author_convert_ability/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Conversion Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) conversion Resources data, including products tied to a Douyin Xingtu creator's conversion activity, for commerce analysis and campaign optimization.",
"method": "GET",
"operationId": "gwApiDataSpGetAuthorConvertVideosOrProductsV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "ALL",
"description": "Industry category.\n\nAvailable Values:\n- `ALL`: All\n- `ELECTRONICS_AND_APPLIANCES`: Electronics and Appliances\n- `FOOD_AND_BEVERAGE`: Food and Beverage\n- `CLOTHING_AND_ACCESSORIES`: Clothing and Accessories\n- `HEALTHCARE_AND_MEDICAL`: Healthcare and Medical\n- `BUSINESS_SERVICES`: Business Services\n- `LOCAL_SERVICES`: Local Services\n- `REAL_ESTATE`: Real Estate\n- `HOME_AND_BUILDING_MATERIALS`: Home and Building Materials\n- `EDUCATION_AND_TRAINING`: Education and Training\n- `TRAVEL_AND_TOURISM`: Travel and Tourism\n- `PUBLIC_SERVICES`: Public Services\n- `GAMES`: Games\n- `RETAIL`: Retail\n- `TRANSPORTATION_EQUIPMENT`: Transportation Equipment\n- `AUTOMOTIVE`: Automotive\n- `AGRICULTURE_FORESTRY_FISHERY`: Agriculture Forestry Fishery\n- `CHEMICAL_AND_ENERGY`: Chemical and Energy\n- `ELECTRONICS_AND_ELECTRICAL`: Electronics and Electrical\n- `MACHINERY_EQUIPMENT`: Machinery Equipment\n- `CULTURE_SPORTS_ENTERTAINMENT`: Culture Sports Entertainment\n- `MEDIA_AND_INFORMATION`: Media and Information\n- `LOGISTICS`: Logistics\n- `TELECOMMUNICATIONS`: Telecommunications\n- `FINANCIAL_SERVICES`: Financial Services\n- `CATERING_SERVICES`: Catering Services\n- `SOFTWARE_TOOLS`: Software Tools\n- `FRANCHISING_AND_INVESTMENT`: Franchising and Investment\n- `BEAUTY_AND_COSMETICS`: Beauty and Cosmetics\n- `MOTHER_BABY_AND_PET`: Mother Baby and Pet\n- `DAILY_CHEMICALS`: Daily Chemicals\n- `PHYSICAL_BOOKS`: Physical Books\n- `SOCIAL_AND_COMMUNICATION`: Social and Communication\n- `MEDICAL_INSTITUTIONS`: Medical Institutions",
"enumValues": [
"ALL",
"ELECTRONICS_AND_APPLIANCES",
"FOOD_AND_BEVERAGE",
"CLOTHING_AND_ACCESSORIES",
"HEALTHCARE_AND_MEDICAL",
"BUSINESS_SERVICES",
"LOCAL_SERVICES",
"REAL_ESTATE",
"HOME_AND_BUILDING_MATERIALS",
"EDUCATION_AND_TRAINING",
"TRAVEL_AND_TOURISM",
"PUBLIC_SERVICES",
"GAMES",
"RETAIL",
"TRANSPORTATION_EQUIPMENT",
"AUTOMOTIVE",
"AGRICULTURE_FORESTRY_FISHERY",
"CHEMICAL_AND_ENERGY",
"ELECTRONICS_AND_ELECTRICAL",
"MACHINERY_EQUIPMENT",
"CULTURE_SPORTS_ENTERTAINMENT",
"MEDIA_AND_INFORMATION",
"LOGISTICS",
"TELECOMMUNICATIONS",
"FINANCIAL_SERVICES",
"CATERING_SERVICES",
"SOFTWARE_TOOLS",
"FRANCHISING_AND_INVESTMENT",
"BEAUTY_AND_COSMETICS",
"MOTHER_BABY_AND_PET",
"DAILY_CHEMICALS",
"PHYSICAL_BOOKS",
"SOCIAL_AND_COMMUNICATION",
"MEDICAL_INSTITUTIONS"
],
"location": "query",
"name": "industryId",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "DAY_30",
"description": "Time range.\n\nAvailable Values:\n- `DAY_30`: Last 30 days\n- `DAY_90`: Last 90 days",
"enumValues": [
"DAY_30",
"DAY_90"
],
"location": "query",
"name": "range",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "VIDEO",
"description": "Resource type.\n\nAvailable Values:\n- `VIDEO`: Video\n- `PRODUCT`: Product",
"enumValues": [
"VIDEO",
"PRODUCT"
],
"location": "query",
"name": "detailType",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/get_author_convert_videos_or_products/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Conversion Resources",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) follower Growth Trend data, including historical audience changes over time, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpGetAuthorDailyFansV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Start Date (yyyy-MM-dd).",
"enumValues": [],
"location": "query",
"name": "startDate",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "End Date (yyyy-MM-dd).",
"enumValues": [],
"location": "query",
"name": "endDate",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/get_author_daily_fans/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Follower Growth Trend",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) follower Distribution data, including audience segmentation and location and demographic breakdowns, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpGetAuthorFansDistributionV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "FAN",
"description": "Author type filter.\n\nAvailable Values:\n- `FAN`: Fan\n- `DIE_HARD_FAN`: Die Hard Fan",
"enumValues": [
"FAN",
"DIE_HARD_FAN"
],
"location": "query",
"name": "authorType",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/get_author_fans_distribution/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Follower Distribution",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Link Metrics data, including creator ranking, traffic structure, and related performance indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpGetAuthorLinkInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "ALL",
"description": "Industry tag.\n\nAvailable Values:\n- `ALL`: All\n- `ELECTRONICS_AND_APPLIANCES`: Electronics and Appliances\n- `FOOD_AND_BEVERAGE`: Food and Beverage\n- `CLOTHING_AND_ACCESSORIES`: Clothing and Accessories\n- `HEALTHCARE_AND_MEDICAL`: Healthcare and Medical\n- `BUSINESS_SERVICES`: Business Services\n- `LOCAL_SERVICES`: Local Services\n- `REAL_ESTATE`: Real Estate\n- `HOME_AND_BUILDING_MATERIALS`: Home and Building Materials\n- `EDUCATION_AND_TRAINING`: Education and Training\n- `TRAVEL_AND_TOURISM`: Travel and Tourism\n- `PUBLIC_SERVICES`: Public Services\n- `GAMES`: Games\n- `RETAIL`: Retail\n- `TRANSPORTATION_EQUIPMENT`: Transportation Equipment\n- `AUTOMOTIVE`: Automotive\n- `AGRICULTURE_FORESTRY_FISHERY`: Agriculture Forestry Fishery\n- `CHEMICAL_AND_ENERGY`: Chemical and Energy\n- `ELECTRONICS_AND_ELECTRICAL`: Electronics and Electrical\n- `MACHINERY_EQUIPMENT`: Machinery Equipment\n- `CULTURE_SPORTS_ENTERTAINMENT`: Culture Sports Entertainment\n- `MEDIA_AND_INFORMATION`: Media and Information\n- `LOGISTICS`: Logistics\n- `TELECOMMUNICATIONS`: Telecommunications\n- `FINANCIAL_SERVICES`: Financial Services\n- `CATERING_SERVICES`: Catering Services\n- `SOFTWARE_TOOLS`: Software Tools\n- `FRANCHISING_AND_INVESTMENT`: Franchising and Investment\n- `BEAUTY_AND_COSMETICS`: Beauty and Cosmetics\n- `MOTHER_BABY_AND_PET`: Mother Baby and Pet\n- `DAILY_CHEMICALS`: Daily Chemicals\n- `PHYSICAL_BOOKS`: Physical Books\n- `SOCIAL_AND_COMMUNICATION`: Social and Communication\n- `MEDICAL_INSTITUTIONS`: Medical Institutions",
"enumValues": [
"ALL",
"ELECTRONICS_AND_APPLIANCES",
"FOOD_AND_BEVERAGE",
"CLOTHING_AND_ACCESSORIES",
"HEALTHCARE_AND_MEDICAL",
"BUSINESS_SERVICES",
"LOCAL_SERVICES",
"REAL_ESTATE",
"HOME_AND_BUILDING_MATERIALS",
"EDUCATION_AND_TRAINING",
"TRAVEL_AND_TOURISM",
"PUBLIC_SERVICES",
"GAMES",
"RETAIL",
"TRANSPORTATION_EQUIPMENT",
"AUTOMOTIVE",
"AGRICULTURE_FORESTRY_FISHERY",
"CHEMICAL_AND_ENERGY",
"ELECTRONICS_AND_ELECTRICAL",
"MACHINERY_EQUIPMENT",
"CULTURE_SPORTS_ENTERTAINMENT",
"MEDIA_AND_INFORMATION",
"LOGISTICS",
"TELECOMMUNICATIONS",
"FINANCIAL_SERVICES",
"CATERING_SERVICES",
"SOFTWARE_TOOLS",
"FRANCHISING_AND_INVESTMENT",
"BEAUTY_AND_COSMETICS",
"MOTHER_BABY_AND_PET",
"DAILY_CHEMICALS",
"PHYSICAL_BOOKS",
"SOCIAL_AND_COMMUNICATION",
"MEDICAL_INSTITUTIONS"
],
"location": "query",
"name": "industryTag",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/get_author_link_info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Link Metrics",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) spread metrics data, including exposure, spread, and related performance indicators, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpGetAuthorSpreadInfoV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "SHORT_VIDEO",
"description": "Platform type.\n\nAvailable Values:\n- `SHORT_VIDEO`: Short video\n- `LIVE_STREAMING`: Live streaming\n- `PICTURE_TEXT`: Picture and text\n- `SHORT_DRAMA`: Short drama",
"enumValues": [
"SHORT_VIDEO",
"LIVE_STREAMING",
"PICTURE_TEXT",
"SHORT_DRAMA"
],
"location": "query",
"name": "platform",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "DAY_30",
"description": "Time range.\n\nAvailable Values:\n- `DAY_30`: Last 30 days\n- `DAY_90`: Last 90 days",
"enumValues": [
"DAY_30",
"DAY_90"
],
"location": "query",
"name": "range",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "PERSONAL_VIDEO",
"description": "Video type.\n\nAvailable Values:\n- `PERSONAL_VIDEO`: Personal video\n- `XINTU_VIDEO`: Xingtu video",
"enumValues": [
"PERSONAL_VIDEO",
"XINTU_VIDEO"
],
"location": "query",
"name": "type",
"required": false,
"schemaType": "string"
},
{
"defaultValue": false,
"description": "Whether to only include assigned videos.",
"enumValues": [],
"location": "query",
"name": "onlyAssign",
"required": false,
"schemaType": "boolean"
},
{
"defaultValue": "EXCLUDE",
"description": "Flow type filter.\n\nAvailable Values:\n- `EXCLUDE`: Exclude\n- `INCLUDE`: Include",
"enumValues": [
"EXCLUDE",
"INCLUDE"
],
"location": "query",
"name": "flowType",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/get_author_spread_info/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Spread Metrics",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) item Report Details data, including key metrics and report fields used, for item performance analysis.",
"method": "GET",
"operationId": "gwApiDataSpItemReportDetailV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Item's unique ID.",
"enumValues": [],
"location": "query",
"name": "itemId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/item_report_detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Item Report Details",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) item Report Analysis data, including performance interpretation, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpItemReportThAnalysisV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Item's unique ID.",
"enumValues": [],
"location": "query",
"name": "itemId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/item_report_th_analysis/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Item Report Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) item Report Trend data, including time-based changes in item performance metrics, for creator evaluation, campaign planning, and marketplace research.",
"method": "GET",
"operationId": "gwApiDataSpItemReportTrendV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Item's unique ID.",
"enumValues": [],
"location": "query",
"name": "itemId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data_sp/item_report_trend/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Item Report Trends",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) kOL Comment Keyword Analysis data, including core metrics, trend signals, and performance indicators, for audience language analysis and comment-topic research.",
"method": "GET",
"operationId": "gwApiDataGetAuthorHotCommentTokensV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/data/get_author_hot_comment_tokens/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "KOL Comment Keyword Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) kOL Content Keyword Analysis data, including core metrics, trend signals, and performance indicators, for content theme analysis and creator positioning research.",
"method": "GET",
"operationId": "gwApiGauthorGetAuthorContentHotKeywordsV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Author's unique ID.",
"enumValues": [],
"location": "query",
"name": "oAuthorId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/gauthor/get_author_content_hot_keywords/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "KOL Content Keyword Analysis",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) creator Search data, including filters, returning profile, and audience, for discovery, comparison, and shortlist building.",
"method": "GET",
"operationId": "gwApiGsearchSearchForAuthorSquareV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Search keyword.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
},
{
"defaultValue": "NICKNAME",
"description": "Search criteria type.\n\nAvailable Values:\n- `NICKNAME`: By Nickname\n- `CONTENT`: By Content",
"enumValues": [
"NICKNAME",
"CONTENT"
],
"location": "query",
"name": "searchType",
"required": false,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Follower range (e.g., 10-100).",
"enumValues": [],
"location": "query",
"name": "followerRange",
"required": false,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL price type.\n\nAvailable Values:\n- `视频1_20s`: Video 1-20s\n- `视频21_60s`: Video 21-60s\n- `视频60s以上`: Video > 60s\n- `定制短剧单集`: Mini-drama episode\n- `千次自然播放量`: CPM naturally\n- `短直种草视频`: Short-live seeding video\n- `短直预热视频`: Short-live warm-up video\n- `短直明星种草`: Celebrity short-live seeding\n- `短直明星预热`: Celebrity short-live warm-up\n- `明星视频`: Celebrity video\n- `合集视频`: Collection video\n- `抖音短视频共创_主投稿达人`: Douyin short video co-creation - main creator\n- `抖音短视频共创_参与达人`: Douyin short video co-creation - participant",
"enumValues": [
"视频1_20s",
"视频21_60s",
"视频60s以上",
"定制短剧单集",
"千次自然播放量",
"短直种草视频",
"短直预热视频",
"短直明星种草",
"短直明星预热",
"明星视频",
"合集视频",
"抖音短视频共创_主投稿达人",
"抖音短视频共创_参与达人"
],
"location": "query",
"name": "kolPriceType",
"required": false,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "KOL price range (e.g., 10000-50000).",
"enumValues": [],
"location": "query",
"name": "kolPriceRange",
"required": false,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Content tag filter.",
"enumValues": [],
"location": "query",
"name": "contentTag",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin-xingtu/gw/api/gsearch/search_for_author_square/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Creator Search",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
},
{
"description": "Get Douyin Creator Marketplace (Xingtu) kOL Keyword Search data, including matching creators and discovery data, for creator sourcing and shortlist building.",
"method": "GET",
"operationId": "searchKolSimpleV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Search keywords.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Platform source.\n\nAvailable Values:\n- `_1`: Douyin\n- `_2`: Toutiao\n- `_3`: Xigua",
"enumValues": [
"_1",
"_2",
"_3"
],
"location": "query",
"name": "platformSource",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Page number.",
"enumValues": [],
"location": "query",
"name": "page",
"required": true,
"schemaType": "integer"
},
{
"defaultValue": false,
"description": "Enable cache.",
"enumValues": [],
"location": "query",
"name": "acceptCache",
"required": false,
"schemaType": "boolean"
}
],
"path": "/api/douyin-xingtu/search-kol-simple/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "KOL Keyword Search",
"tags": [
"Douyin Creator Marketplace (Xingtu)"
]
}
],
"platformKey": "douyin-xingtu",
"primaryTag": "Douyin Creator Marketplace (Xingtu)",
"skillName": "justoneapi_douyin_xingtu",
"slug": "justoneapi-douyin-xingtu",
"sourceTitle": "OpenAPI definition"
}
FILE:generated/operations.md
# Douyin Creator Marketplace (Xingtu) operations
Generated from JustOneAPI OpenAPI for platform key `douyin-xingtu`.
## `getAuthorCommerceSeedingBaseInfoV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-author-commerce-seed-base-info/v1`
- Summary: Author Commerce Seeding Base Info
- Description: Get Douyin Creator Marketplace (Xingtu) author Commerce Seeding Base Info data, including baseline metrics, commercial signals, and seeding indicators, for product seeding analysis, creator vetting, and campaign planning.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `range` | `query` | yes | `string` | n/a | Time range. |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getAuthorCommerceSpreadInfoV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-author-commerce-spread-info/v1`
- Summary: Author Commerce Spread Info
- Description: Get Douyin Creator Marketplace (Xingtu) author Commerce Spread Info data, including spread metrics, for creator evaluation for campaign planning and media buying.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getAuthorContentHotKeywordsV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-author-content-hot-keywords/v1`
- Summary: KOL Content Keyword Analysis
- Description: Get Douyin Creator Marketplace (Xingtu) kOL Content Keyword Analysis data, including core metrics, trend signals, and performance indicators, for content theme analysis and creator positioning research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `keywordType` | `query` | no | `string` | `0` | Type of keywords. |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getAuthorHotCommentTokensV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-author-hot-comment-tokens/v1`
- Summary: KOL Comment Keyword Analysis
- Description: Get Douyin Creator Marketplace (Xingtu) kOL Comment Keyword Analysis data, including core metrics, trend signals, and performance indicators, for audience language analysis and comment-topic research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getKolAudienceDistributionV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-kol-audience-distribution/v1`
- Summary: Audience Distribution
- Description: Get Douyin Creator Marketplace (Xingtu) audience Distribution data, including demographic and interest-based audience segmentation, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getKolConvertAbilityV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-kol-convert-ability/v1`
- Summary: Conversion Analysis
- Description: Get Douyin Creator Marketplace (Xingtu) conversion Analysis data, including conversion efficiency and commercial performance indicators, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `range` | `query` | yes | `string` | n/a | Time range.
Available Values:
- `_1`: Last 7 days
- `_2`: Last 30 days
- `_3`: Last 90 days |
| enum | values | no | n/a | n/a | `_1`, `_2`, `_3` |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getKolConvertVideosOrProductsV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-kol-convert-videos-or-products/v1`
- Summary: Conversion Resources
- Description: Get Douyin Creator Marketplace (Xingtu) conversion Resources data, including products tied to a Douyin Xingtu creator's conversion activity, for commerce analysis and campaign optimization.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `detailType` | `query` | yes | `string` | n/a | Resource type.
Available Values:
- `_1`: Video Data
- `_2`: Product Data |
| enum | values | no | n/a | n/a | `_1`, `_2` |
| `page` | `query` | yes | `integer` | n/a | Page number. |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getKolCpInfoV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-kol-cp-info/v1`
- Summary: Cost Performance Analysis
- Description: Get Douyin Creator Marketplace (Xingtu) cost Performance Analysis data, including pricing, exposure, and engagement efficiency indicators, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getKolDailyFansV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-kol-daily-fans/v1`
- Summary: Follower Growth Trend
- Description: Get Douyin Creator Marketplace (Xingtu) follower Growth Trend data, including historical audience changes over time, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `startDate` | `query` | yes | `string` | n/a | Start Date (yyyy-MM-dd). |
| `endDate` | `query` | yes | `string` | n/a | End Date (yyyy-MM-dd). |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getKolFansDistributionV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-kol-fans-distribution/v1`
- Summary: Follower Distribution
- Description: Get Douyin Creator Marketplace (Xingtu) follower distribution data, including audience demographics, interests, and distribution metrics, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `fansType` | `query` | no | `string` | `_1` | Fans type.
Available Values:
- `_1`: Fans Portrait
- `_2`: Fans Group Portrait
- `_5`: Iron Fans Portrait |
| enum | values | no | n/a | n/a | `_1`, `_2`, `_5` |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getDouyinXingtuKolInfoV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-kol-info/v1`
- Summary: Creator Profile
- Description: Get Douyin Creator Marketplace (Xingtu) creator Profile data, including audience and pricing data, for influencer vetting, benchmark analysis, and campaign planning.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `platformChannel` | `query` | no | `string` | `_1` | Platform channel.
Available Values:
- `_1`: Short Video
- `_10`: Live Streaming |
| enum | values | no | n/a | n/a | `_1`, `_10` |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getKolLinkInfoV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-kol-link-info/v1`
- Summary: Creator Link Metrics
- Description: Get Douyin Creator Marketplace (Xingtu) creator Link Metrics data, including creator ranking, traffic structure, and related performance indicators, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `industryTag` | `query` | no | `string` | n/a | Industry Tag. |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getKolLinkStructV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-kol-link-struct/v1`
- Summary: Creator Link Structure
- Description: Get Douyin Creator Marketplace (Xingtu) creator Link Structure data, including engagement and conversion metrics, for creator performance analysis.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getKolMarketingInfoV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-kol-marketing-info/v1`
- Summary: Marketing Metrics
- Description: Get Douyin Creator Marketplace (Xingtu) marketing metrics data, including rate card details and commercial service metrics, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `platformChannel` | `query` | no | `string` | `_1` | Platform channel.
Available Values:
- `_1`: Short Video
- `_10`: Live Streaming |
| enum | values | no | n/a | n/a | `_1`, `_10` |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getKolRecVideosV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-kol-rec-videos/v1`
- Summary: Recommended Videos
- Description: Get Douyin Creator Marketplace (Xingtu) recommended videos data, including video performance metrics, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getKolShowItemsV2V1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-kol-show-items-v2/v1`
- Summary: Showcase Items
- Description: Get Douyin Creator Marketplace (Xingtu) showcase items data, including core metrics, trend signals, and performance indicators, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `onlyAssign` | `query` | no | `boolean` | `false` | Whether true is Xingtu video, false is personal video. |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getKolSpreadInfoV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-kol-spread-info/v1`
- Summary: Spread Metrics
- Description: Get Douyin Creator Marketplace (Xingtu) spread metrics data, including audience, content performance, and commercial indicators, for quick evaluation.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `type` | `query` | no | `string` | `_1` | Spread info type.
Available Values:
- `_1`: Personal Video
- `_2`: Xingtu Video |
| enum | values | no | n/a | n/a | `_1`, `_2` |
| `range` | `query` | no | `string` | `_2` | Time range.
Available Values:
- `_2`: Last 30 days
- `_3`: Last 90 days |
| enum | values | no | n/a | n/a | `_2`, `_3` |
| `flowType` | `query` | no | `string` | `1` | Flow type. |
| `onlyAssign` | `query` | no | `boolean` | `false` | Only assigned notes. |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getKolTouchDistributionV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-kol-touch-distribution/v1`
- Summary: Audience Touchpoint Distribution
- Description: Get Douyin Creator Marketplace (Xingtu) audience touchpoint distribution data, including segment breakdowns, audience composition, and distribution signals, for traffic analysis and existing integration compatibility.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `kolId` | `query` | yes | `string` | n/a | KOL ID. |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `getDouyinXingtuVideoDetailV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/get-video-detail/v1`
- Summary: Video Details
- Description: Get Douyin Creator Marketplace (Xingtu) video Details data, including performance fields from the legacy Douyin Xingtu endpoint, for content review and integration compatibility.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `detailId` | `query` | yes | `string` | n/a | Video detail ID. |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiAggregatorGetAuthorCommerceSeedBaseInfoV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/aggregator/get_author_commerce_seed_base_info/v1`
- Summary: Author Commerce Seeding Base Info
- Description: Get Douyin Creator Marketplace (Xingtu) author Commerce Seeding Base Info data, including baseline metrics, commercial signals, and seeding indicators, for product seeding analysis, creator vetting, and campaign planning.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `range` | `query` | no | `string` | `DAY_90` | Time range.
Available Values:
- `DAY_30`: Last 30 days
- `DAY_90`: Last 90 days |
| enum | values | no | n/a | n/a | `DAY_30`, `DAY_90` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiAggregatorGetAuthorCommerceSpreadInfoV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/aggregator/get_author_commerce_spread_info/v1`
- Summary: Author Commerce Spread Info
- Description: Get Douyin Creator Marketplace (Xingtu) author Commerce Spread Info data, including spread metrics, for creator evaluation for campaign planning and media buying.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiAggregatorGetAuthorOrderExperienceV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/aggregator/get_author_order_experience/v1`
- Summary: Creator Order Experience
- Description: Get Douyin Creator Marketplace (Xingtu) creator Order Experience data, including commercial history and transaction-related indicators, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `period` | `query` | no | `string` | `DAY_30` | Time period.
Available Values:
- `DAY_30`: Last 30 days
- `DAY_90`: Last 90 days |
| enum | values | no | n/a | n/a | `DAY_30`, `DAY_90` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiAuthorGetAuthorBaseInfoV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/author/get_author_base_info/v1`
- Summary: Creator Profile
- Description: Get Douyin Creator Marketplace (Xingtu) creator Profile data, including audience and pricing data, for influencer vetting, benchmark analysis, and campaign planning.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `platform` | `query` | no | `string` | `SHORT_VIDEO` | Platform type.
Available Values:
- `SHORT_VIDEO`: Short video
- `LIVE_STREAMING`: Live streaming
- `PICTURE_TEXT`: Picture and text
- `SHORT_DRAMA`: Short drama |
| enum | values | no | n/a | n/a | `SHORT_VIDEO`, `LIVE_STREAMING`, `PICTURE_TEXT`, `SHORT_DRAMA` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiAuthorGetAuthorMarketingInfoV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/author/get_author_marketing_info/v1`
- Summary: Marketing Metrics
- Description: Get Douyin Creator Marketplace (Xingtu) marketing metrics data, including rate card details and commercial service metrics, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `platform` | `query` | no | `string` | `SHORT_VIDEO` | Platform type.
Available Values:
- `SHORT_VIDEO`: Short video
- `LIVE_STREAMING`: Live streaming
- `PICTURE_TEXT`: Picture and text
- `SHORT_DRAMA`: Short drama |
| enum | values | no | n/a | n/a | `SHORT_VIDEO`, `LIVE_STREAMING`, `PICTURE_TEXT`, `SHORT_DRAMA` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiAuthorGetAuthorPlatformChannelInfoV2V1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/author/get_author_platform_channel_info_v2/v1`
- Summary: Creator Channel Metrics
- Description: Get Douyin Creator Marketplace (Xingtu) creator Channel Metrics data, including platform distribution and channel performance data used, for creator evaluation.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `platform` | `query` | no | `string` | `SHORT_VIDEO` | Platform type.
Available Values:
- `SHORT_VIDEO`: Short video
- `LIVE_STREAMING`: Live streaming
- `PICTURE_TEXT`: Picture and text
- `SHORT_DRAMA`: Short drama |
| enum | values | no | n/a | n/a | `SHORT_VIDEO`, `LIVE_STREAMING`, `PICTURE_TEXT`, `SHORT_DRAMA` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiAuthorGetAuthorShowItemsV2V1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/author/get_author_show_items_v2/v1`
- Summary: Showcase Items
- Description: Get Douyin Creator Marketplace (Xingtu) showcase Items data, including products and videos associated with the account, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `platform` | `query` | no | `string` | `SHORT_VIDEO` | Platform type.
Available Values:
- `SHORT_VIDEO`: Short video
- `LIVE_STREAMING`: Live streaming
- `PICTURE_TEXT`: Picture and text
- `SHORT_DRAMA`: Short drama |
| enum | values | no | n/a | n/a | `SHORT_VIDEO`, `LIVE_STREAMING`, `PICTURE_TEXT`, `SHORT_DRAMA` |
| `onlyAssign` | `query` | no | `boolean` | `false` | Whether to only include assigned items. |
| `flowType` | `query` | no | `string` | `EXCLUDE` | Flow type filter.
Available Values:
- `EXCLUDE`: Exclude
- `INCLUDE`: Include |
| enum | values | no | n/a | n/a | `EXCLUDE`, `INCLUDE` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataSpAuthorAudienceDistributionV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data_sp/author_audience_distribution/v1`
- Summary: Audience Distribution
- Description: Get Douyin Creator Marketplace (Xingtu) audience Distribution data, including demographic and interest-based audience segmentation, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `platform` | `query` | no | `string` | `SHORT_VIDEO` | Platform type.
Available Values:
- `SHORT_VIDEO`: Short video
- `LIVE_STREAMING`: Live streaming
- `PICTURE_TEXT`: Picture and text
- `SHORT_DRAMA`: Short drama |
| enum | values | no | n/a | n/a | `SHORT_VIDEO`, `LIVE_STREAMING`, `PICTURE_TEXT`, `SHORT_DRAMA` |
| `linkType` | `query` | no | `string` | `CONNECTED` | Link type filter.
Available Values:
- `CONNECTED`: Connected
- `AWARE`: Aware
- `INTERESTED`: Interested
- `LIKE`: Like
- `FOLLOW`: Follow |
| enum | values | no | n/a | n/a | `CONNECTED`, `AWARE`, `INTERESTED`, `LIKE`, `FOLLOW` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataSpAuthorCpInfoV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data_sp/author_cp_info/v1`
- Summary: Cost Performance Analysis
- Description: Get Douyin Creator Marketplace (Xingtu) cost Performance Analysis data, including pricing, exposure, and engagement efficiency indicators, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `platform` | `query` | no | `string` | `SHORT_VIDEO` | Platform type.
Available Values:
- `SHORT_VIDEO`: Short video
- `LIVE_STREAMING`: Live streaming
- `PICTURE_TEXT`: Picture and text
- `SHORT_DRAMA`: Short drama |
| enum | values | no | n/a | n/a | `SHORT_VIDEO`, `LIVE_STREAMING`, `PICTURE_TEXT`, `SHORT_DRAMA` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataSpAuthorLinkStructV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data_sp/author_link_struct/v1`
- Summary: Creator Link Structure
- Description: Get Douyin Creator Marketplace (Xingtu) creator Link Structure data, including engagement and conversion metrics, for creator performance analysis.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `platform` | `query` | no | `string` | `SHORT_VIDEO` | Platform type.
Available Values:
- `SHORT_VIDEO`: Short video
- `LIVE_STREAMING`: Live streaming
- `PICTURE_TEXT`: Picture and text
- `SHORT_DRAMA`: Short drama |
| enum | values | no | n/a | n/a | `SHORT_VIDEO`, `LIVE_STREAMING`, `PICTURE_TEXT`, `SHORT_DRAMA` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataSpAuthorRecVideosV2V1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data_sp/author_rec_videos_v2/v1`
- Summary: Recommended Videos
- Description: Get Douyin Creator Marketplace (Xingtu) recommended Videos data, including content references used, for creator evaluation.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `platform` | `query` | no | `string` | `SHORT_VIDEO` | Platform type.
Available Values:
- `SHORT_VIDEO`: Short video
- `LIVE_STREAMING`: Live streaming
- `PICTURE_TEXT`: Picture and text
- `SHORT_DRAMA`: Short drama |
| enum | values | no | n/a | n/a | `SHORT_VIDEO`, `LIVE_STREAMING`, `PICTURE_TEXT`, `SHORT_DRAMA` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataSpAuthorTouchDistributionV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data_sp/author_touch_distribution/v1`
- Summary: Audience Touchpoint Distribution
- Description: Get Douyin Creator Marketplace (Xingtu) audience Touchpoint Distribution data, including segment breakdowns, audience composition, and distribution signals, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `platform` | `query` | no | `string` | `SHORT_VIDEO` | Platform type.
Available Values:
- `SHORT_VIDEO`: Short video
- `LIVE_STREAMING`: Live streaming
- `PICTURE_TEXT`: Picture and text
- `SHORT_DRAMA`: Short drama |
| enum | values | no | n/a | n/a | `SHORT_VIDEO`, `LIVE_STREAMING`, `PICTURE_TEXT`, `SHORT_DRAMA` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataSpAuthorVideoDistributionV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data_sp/author_video_distribution/v1`
- Summary: Video Distribution
- Description: Get Douyin Creator Marketplace (Xingtu) video Distribution data, including content performance breakdowns across published videos, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `platform` | `query` | no | `string` | `SHORT_VIDEO` | Platform type.
Available Values:
- `SHORT_VIDEO`: Short video
- `LIVE_STREAMING`: Live streaming
- `PICTURE_TEXT`: Picture and text
- `SHORT_DRAMA`: Short drama |
| enum | values | no | n/a | n/a | `SHORT_VIDEO`, `LIVE_STREAMING`, `PICTURE_TEXT`, `SHORT_DRAMA` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataSpCheckAuthorDisplayV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data_sp/check_author_display/v1`
- Summary: Creator Visibility Status
- Description: Get Douyin Creator Marketplace (Xingtu) creator Visibility Status data, including availability status, discovery eligibility, and campaign display signals, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `platform` | `query` | no | `string` | `SHORT_VIDEO` | Platform type.
Available Values:
- `SHORT_VIDEO`: Short video
- `LIVE_STREAMING`: Live streaming
- `PICTURE_TEXT`: Picture and text
- `SHORT_DRAMA`: Short drama |
| enum | values | no | n/a | n/a | `SHORT_VIDEO`, `LIVE_STREAMING`, `PICTURE_TEXT`, `SHORT_DRAMA` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataSpGetAuthorConvertAbilityV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data_sp/get_author_convert_ability/v1`
- Summary: Conversion Analysis
- Description: Get Douyin Creator Marketplace (Xingtu) conversion Analysis data, including conversion efficiency and commercial performance indicators, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `platform` | `query` | no | `string` | `SHORT_VIDEO` | Platform type.
Available Values:
- `SHORT_VIDEO`: Short video
- `LIVE_STREAMING`: Live streaming
- `PICTURE_TEXT`: Picture and text
- `SHORT_DRAMA`: Short drama |
| enum | values | no | n/a | n/a | `SHORT_VIDEO`, `LIVE_STREAMING`, `PICTURE_TEXT`, `SHORT_DRAMA` |
| `range` | `query` | no | `string` | `DAY_30` | Time range.
Available Values:
- `DAY_30`: Last 30 days
- `DAY_90`: Last 90 days |
| enum | values | no | n/a | n/a | `DAY_30`, `DAY_90` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataSpGetAuthorConvertVideosOrProductsV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data_sp/get_author_convert_videos_or_products/v1`
- Summary: Conversion Resources
- Description: Get Douyin Creator Marketplace (Xingtu) conversion Resources data, including products tied to a Douyin Xingtu creator's conversion activity, for commerce analysis and campaign optimization.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `platform` | `query` | no | `string` | `SHORT_VIDEO` | Platform type.
Available Values:
- `SHORT_VIDEO`: Short video
- `LIVE_STREAMING`: Live streaming
- `PICTURE_TEXT`: Picture and text
- `SHORT_DRAMA`: Short drama |
| enum | values | no | n/a | n/a | `SHORT_VIDEO`, `LIVE_STREAMING`, `PICTURE_TEXT`, `SHORT_DRAMA` |
| `industryId` | `query` | no | `string` | `ALL` | Industry category.
Available Values:
- `ALL`: All
- `ELECTRONICS_AND_APPLIANCES`: Electronics and Appliances
- `FOOD_AND_BEVERAGE`: Food and Beverage
- `CLOTHING_AND_ACCESSORIES`: Clothing and Accessories
- `HEALTHCARE_AND_MEDICAL`: Healthcare and Medical
- `BUSINESS_SERVICES`: Business Services
- `LOCAL_SERVICES`: Local Services
- `REAL_ESTATE`: Real Estate
- `HOME_AND_BUILDING_MATERIALS`: Home and Building Materials
- `EDUCATION_AND_TRAINING`: Education and Training
- `TRAVEL_AND_TOURISM`: Travel and Tourism
- `PUBLIC_SERVICES`: Public Services
- `GAMES`: Games
- `RETAIL`: Retail
- `TRANSPORTATION_EQUIPMENT`: Transportation Equipment
- `AUTOMOTIVE`: Automotive
- `AGRICULTURE_FORESTRY_FISHERY`: Agriculture Forestry Fishery
- `CHEMICAL_AND_ENERGY`: Chemical and Energy
- `ELECTRONICS_AND_ELECTRICAL`: Electronics and Electrical
- `MACHINERY_EQUIPMENT`: Machinery Equipment
- `CULTURE_SPORTS_ENTERTAINMENT`: Culture Sports Entertainment
- `MEDIA_AND_INFORMATION`: Media and Information
- `LOGISTICS`: Logistics
- `TELECOMMUNICATIONS`: Telecommunications
- `FINANCIAL_SERVICES`: Financial Services
- `CATERING_SERVICES`: Catering Services
- `SOFTWARE_TOOLS`: Software Tools
- `FRANCHISING_AND_INVESTMENT`: Franchising and Investment
- `BEAUTY_AND_COSMETICS`: Beauty and Cosmetics
- `MOTHER_BABY_AND_PET`: Mother Baby and Pet
- `DAILY_CHEMICALS`: Daily Chemicals
- `PHYSICAL_BOOKS`: Physical Books
- `SOCIAL_AND_COMMUNICATION`: Social and Communication
- `MEDICAL_INSTITUTIONS`: Medical Institutions |
| enum | values | no | n/a | n/a | `ALL`, `ELECTRONICS_AND_APPLIANCES`, `FOOD_AND_BEVERAGE`, `CLOTHING_AND_ACCESSORIES`, `HEALTHCARE_AND_MEDICAL`, `BUSINESS_SERVICES`, `LOCAL_SERVICES`, `REAL_ESTATE`, `HOME_AND_BUILDING_MATERIALS`, `EDUCATION_AND_TRAINING`, `TRAVEL_AND_TOURISM`, `PUBLIC_SERVICES`, `GAMES`, `RETAIL`, `TRANSPORTATION_EQUIPMENT`, `AUTOMOTIVE`, `AGRICULTURE_FORESTRY_FISHERY`, `CHEMICAL_AND_ENERGY`, `ELECTRONICS_AND_ELECTRICAL`, `MACHINERY_EQUIPMENT`, `CULTURE_SPORTS_ENTERTAINMENT`, `MEDIA_AND_INFORMATION`, `LOGISTICS`, `TELECOMMUNICATIONS`, `FINANCIAL_SERVICES`, `CATERING_SERVICES`, `SOFTWARE_TOOLS`, `FRANCHISING_AND_INVESTMENT`, `BEAUTY_AND_COSMETICS`, `MOTHER_BABY_AND_PET`, `DAILY_CHEMICALS`, `PHYSICAL_BOOKS`, `SOCIAL_AND_COMMUNICATION`, `MEDICAL_INSTITUTIONS` |
| `range` | `query` | no | `string` | `DAY_30` | Time range.
Available Values:
- `DAY_30`: Last 30 days
- `DAY_90`: Last 90 days |
| enum | values | no | n/a | n/a | `DAY_30`, `DAY_90` |
| `detailType` | `query` | no | `string` | `VIDEO` | Resource type.
Available Values:
- `VIDEO`: Video
- `PRODUCT`: Product |
| enum | values | no | n/a | n/a | `VIDEO`, `PRODUCT` |
| `page` | `query` | no | `integer` | `1` | Page number. |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataSpGetAuthorDailyFansV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data_sp/get_author_daily_fans/v1`
- Summary: Follower Growth Trend
- Description: Get Douyin Creator Marketplace (Xingtu) follower Growth Trend data, including historical audience changes over time, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `startDate` | `query` | yes | `string` | n/a | Start Date (yyyy-MM-dd). |
| `endDate` | `query` | yes | `string` | n/a | End Date (yyyy-MM-dd). |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataSpGetAuthorFansDistributionV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data_sp/get_author_fans_distribution/v1`
- Summary: Follower Distribution
- Description: Get Douyin Creator Marketplace (Xingtu) follower Distribution data, including audience segmentation and location and demographic breakdowns, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `authorType` | `query` | no | `string` | `FAN` | Author type filter.
Available Values:
- `FAN`: Fan
- `DIE_HARD_FAN`: Die Hard Fan |
| enum | values | no | n/a | n/a | `FAN`, `DIE_HARD_FAN` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataSpGetAuthorLinkInfoV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data_sp/get_author_link_info/v1`
- Summary: Creator Link Metrics
- Description: Get Douyin Creator Marketplace (Xingtu) creator Link Metrics data, including creator ranking, traffic structure, and related performance indicators, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `platform` | `query` | no | `string` | `SHORT_VIDEO` | Platform type.
Available Values:
- `SHORT_VIDEO`: Short video
- `LIVE_STREAMING`: Live streaming
- `PICTURE_TEXT`: Picture and text
- `SHORT_DRAMA`: Short drama |
| enum | values | no | n/a | n/a | `SHORT_VIDEO`, `LIVE_STREAMING`, `PICTURE_TEXT`, `SHORT_DRAMA` |
| `industryTag` | `query` | no | `string` | `ALL` | Industry tag.
Available Values:
- `ALL`: All
- `ELECTRONICS_AND_APPLIANCES`: Electronics and Appliances
- `FOOD_AND_BEVERAGE`: Food and Beverage
- `CLOTHING_AND_ACCESSORIES`: Clothing and Accessories
- `HEALTHCARE_AND_MEDICAL`: Healthcare and Medical
- `BUSINESS_SERVICES`: Business Services
- `LOCAL_SERVICES`: Local Services
- `REAL_ESTATE`: Real Estate
- `HOME_AND_BUILDING_MATERIALS`: Home and Building Materials
- `EDUCATION_AND_TRAINING`: Education and Training
- `TRAVEL_AND_TOURISM`: Travel and Tourism
- `PUBLIC_SERVICES`: Public Services
- `GAMES`: Games
- `RETAIL`: Retail
- `TRANSPORTATION_EQUIPMENT`: Transportation Equipment
- `AUTOMOTIVE`: Automotive
- `AGRICULTURE_FORESTRY_FISHERY`: Agriculture Forestry Fishery
- `CHEMICAL_AND_ENERGY`: Chemical and Energy
- `ELECTRONICS_AND_ELECTRICAL`: Electronics and Electrical
- `MACHINERY_EQUIPMENT`: Machinery Equipment
- `CULTURE_SPORTS_ENTERTAINMENT`: Culture Sports Entertainment
- `MEDIA_AND_INFORMATION`: Media and Information
- `LOGISTICS`: Logistics
- `TELECOMMUNICATIONS`: Telecommunications
- `FINANCIAL_SERVICES`: Financial Services
- `CATERING_SERVICES`: Catering Services
- `SOFTWARE_TOOLS`: Software Tools
- `FRANCHISING_AND_INVESTMENT`: Franchising and Investment
- `BEAUTY_AND_COSMETICS`: Beauty and Cosmetics
- `MOTHER_BABY_AND_PET`: Mother Baby and Pet
- `DAILY_CHEMICALS`: Daily Chemicals
- `PHYSICAL_BOOKS`: Physical Books
- `SOCIAL_AND_COMMUNICATION`: Social and Communication
- `MEDICAL_INSTITUTIONS`: Medical Institutions |
| enum | values | no | n/a | n/a | `ALL`, `ELECTRONICS_AND_APPLIANCES`, `FOOD_AND_BEVERAGE`, `CLOTHING_AND_ACCESSORIES`, `HEALTHCARE_AND_MEDICAL`, `BUSINESS_SERVICES`, `LOCAL_SERVICES`, `REAL_ESTATE`, `HOME_AND_BUILDING_MATERIALS`, `EDUCATION_AND_TRAINING`, `TRAVEL_AND_TOURISM`, `PUBLIC_SERVICES`, `GAMES`, `RETAIL`, `TRANSPORTATION_EQUIPMENT`, `AUTOMOTIVE`, `AGRICULTURE_FORESTRY_FISHERY`, `CHEMICAL_AND_ENERGY`, `ELECTRONICS_AND_ELECTRICAL`, `MACHINERY_EQUIPMENT`, `CULTURE_SPORTS_ENTERTAINMENT`, `MEDIA_AND_INFORMATION`, `LOGISTICS`, `TELECOMMUNICATIONS`, `FINANCIAL_SERVICES`, `CATERING_SERVICES`, `SOFTWARE_TOOLS`, `FRANCHISING_AND_INVESTMENT`, `BEAUTY_AND_COSMETICS`, `MOTHER_BABY_AND_PET`, `DAILY_CHEMICALS`, `PHYSICAL_BOOKS`, `SOCIAL_AND_COMMUNICATION`, `MEDICAL_INSTITUTIONS` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataSpGetAuthorSpreadInfoV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data_sp/get_author_spread_info/v1`
- Summary: Spread Metrics
- Description: Get Douyin Creator Marketplace (Xingtu) spread metrics data, including exposure, spread, and related performance indicators, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
| `platform` | `query` | no | `string` | `SHORT_VIDEO` | Platform type.
Available Values:
- `SHORT_VIDEO`: Short video
- `LIVE_STREAMING`: Live streaming
- `PICTURE_TEXT`: Picture and text
- `SHORT_DRAMA`: Short drama |
| enum | values | no | n/a | n/a | `SHORT_VIDEO`, `LIVE_STREAMING`, `PICTURE_TEXT`, `SHORT_DRAMA` |
| `range` | `query` | no | `string` | `DAY_30` | Time range.
Available Values:
- `DAY_30`: Last 30 days
- `DAY_90`: Last 90 days |
| enum | values | no | n/a | n/a | `DAY_30`, `DAY_90` |
| `type` | `query` | no | `string` | `PERSONAL_VIDEO` | Video type.
Available Values:
- `PERSONAL_VIDEO`: Personal video
- `XINTU_VIDEO`: Xingtu video |
| enum | values | no | n/a | n/a | `PERSONAL_VIDEO`, `XINTU_VIDEO` |
| `onlyAssign` | `query` | no | `boolean` | `false` | Whether to only include assigned videos. |
| `flowType` | `query` | no | `string` | `EXCLUDE` | Flow type filter.
Available Values:
- `EXCLUDE`: Exclude
- `INCLUDE`: Include |
| enum | values | no | n/a | n/a | `EXCLUDE`, `INCLUDE` |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataSpItemReportDetailV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data_sp/item_report_detail/v1`
- Summary: Item Report Details
- Description: Get Douyin Creator Marketplace (Xingtu) item Report Details data, including key metrics and report fields used, for item performance analysis.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `itemId` | `query` | yes | `string` | n/a | Item's unique ID. |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataSpItemReportThAnalysisV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data_sp/item_report_th_analysis/v1`
- Summary: Item Report Analysis
- Description: Get Douyin Creator Marketplace (Xingtu) item Report Analysis data, including performance interpretation, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `itemId` | `query` | yes | `string` | n/a | Item's unique ID. |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataSpItemReportTrendV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data_sp/item_report_trend/v1`
- Summary: Item Report Trends
- Description: Get Douyin Creator Marketplace (Xingtu) item Report Trend data, including time-based changes in item performance metrics, for creator evaluation, campaign planning, and marketplace research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `itemId` | `query` | yes | `string` | n/a | Item's unique ID. |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiDataGetAuthorHotCommentTokensV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/data/get_author_hot_comment_tokens/v1`
- Summary: KOL Comment Keyword Analysis
- Description: Get Douyin Creator Marketplace (Xingtu) kOL Comment Keyword Analysis data, including core metrics, trend signals, and performance indicators, for audience language analysis and comment-topic research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiGauthorGetAuthorContentHotKeywordsV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/gauthor/get_author_content_hot_keywords/v1`
- Summary: KOL Content Keyword Analysis
- Description: Get Douyin Creator Marketplace (Xingtu) kOL Content Keyword Analysis data, including core metrics, trend signals, and performance indicators, for content theme analysis and creator positioning research.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `oAuthorId` | `query` | yes | `string` | n/a | Author's unique ID. |
### Request body
No request body.
### Responses
- `200`: OK
## `gwApiGsearchSearchForAuthorSquareV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/gw/api/gsearch/search_for_author_square/v1`
- Summary: Creator Search
- Description: Get Douyin Creator Marketplace (Xingtu) creator Search data, including filters, returning profile, and audience, for discovery, comparison, and shortlist building.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `keyword` | `query` | no | `string` | n/a | Search keyword. |
| `page` | `query` | no | `integer` | `1` | Page number for pagination. |
| `searchType` | `query` | no | `string` | `NICKNAME` | Search criteria type.
Available Values:
- `NICKNAME`: By Nickname
- `CONTENT`: By Content |
| enum | values | no | n/a | n/a | `NICKNAME`, `CONTENT` |
| `followerRange` | `query` | no | `string` | n/a | Follower range (e.g., 10-100). |
| `kolPriceType` | `query` | no | `string` | n/a | KOL price type.
Available Values:
- `视频1_20s`: Video 1-20s
- `视频21_60s`: Video 21-60s
- `视频60s以上`: Video > 60s
- `定制短剧单集`: Mini-drama episode
- `千次自然播放量`: CPM naturally
- `短直种草视频`: Short-live seeding video
- `短直预热视频`: Short-live warm-up video
- `短直明星种草`: Celebrity short-live seeding
- `短直明星预热`: Celebrity short-live warm-up
- `明星视频`: Celebrity video
- `合集视频`: Collection video
- `抖音短视频共创_主投稿达人`: Douyin short video co-creation - main creator
- `抖音短视频共创_参与达人`: Douyin short video co-creation - participant |
| enum | values | no | n/a | n/a | `视频1_20s`, `视频21_60s`, `视频60s以上`, `定制短剧单集`, `千次自然播放量`, `短直种草视频`, `短直预热视频`, `短直明星种草`, `短直明星预热`, `明星视频`, `合集视频`, `抖音短视频共创_主投稿达人`, `抖音短视频共创_参与达人` |
| `kolPriceRange` | `query` | no | `string` | n/a | KOL price range (e.g., 10000-50000). |
| `contentTag` | `query` | no | `string` | n/a | Content tag filter. |
### Request body
No request body.
### Responses
- `200`: OK
## `searchKolSimpleV1`
- Method: `GET`
- Path: `/api/douyin-xingtu/search-kol-simple/v1`
- Summary: KOL Keyword Search
- Description: Get Douyin Creator Marketplace (Xingtu) kOL Keyword Search data, including matching creators and discovery data, for creator sourcing and shortlist building.
- Tags: `Douyin Creator Marketplace (Xingtu)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `keyword` | `query` | yes | `string` | n/a | Search keywords. |
| `platformSource` | `query` | yes | `string` | n/a | Platform source.
Available Values:
- `_1`: Douyin
- `_2`: Toutiao
- `_3`: Xigua |
| enum | values | no | n/a | n/a | `_1`, `_2`, `_3` |
| `page` | `query` | yes | `integer` | n/a | Page number. |
| `acceptCache` | `query` | no | `boolean` | `false` | Enable cache. |
### Request body
No request body.
### Responses
- `200`: OK
Analyze Douyin (TikTok China) workflows with JustOneAPI, including user Profile, user Published Videos, and video Details across 8 operations.
---
name: Douyin (TikTok China) API
description: Analyze Douyin (TikTok China) workflows with JustOneAPI, including user Profile, user Published Videos, and video Details across 8 operations.
author: JustOneAPI
homepage: https://api.justoneapi.com
metadata: {"openclaw":{"homepage":"https://api.justoneapi.com","primaryEnv":"JUST_ONE_API_TOKEN","requires":{"bins":["node"],"env":["JUST_ONE_API_TOKEN"]},"skillKey":"justoneapi_douyin"}}
---
# Douyin (TikTok China)
This skill wraps 8 Douyin (TikTok China) operations exposed by JustOneAPI. It is strongest for user Profile, user Published Videos, video Details, and video Search. Expect common inputs such as `page`, `keyword`, `secUid`, `awemeId`, `commentId`.
## When To Use It
- The user needs user Profile or user Published Videos on Douyin (TikTok China).
- The task lines up with video Details rather than a generic cross-platform workflow.
- The user can provide identifiers or filters such as `page`, `keyword`, `secUid`, `awemeId`.
- The user wants an exact API-backed answer instead of a freeform summary.
## Representative Operations
- `getUserDetailV3`: User Profile — Get Douyin (TikTok China) user Profile data, including follower counts, verification status, and bio details, for creator research and account analysis
- `getUserVideoListV3`: User Published Videos — Get Douyin (TikTok China) user Published Videos data, including captions, covers, and publish times, for account monitoring
- `getDouyinVideoDetailV2`: Video Details — Get Douyin (TikTok China) video Details data, including author details, publish time, and engagement counts, for video research, archiving, and performance analysis
- `searchVideoV4`: Video Search — Get Douyin (TikTok China) video Search data, including metadata and engagement signals, for content discovery, trend research, and competitive monitoring
## Request Pattern
- 8 operations are available in this skill.
- HTTP methods used here: `GET`.
- The most common non-token parameters are `page`, `keyword`, `secUid`, `awemeId`, `commentId`.
- All operations in this skill are parameter-driven requests; none require a request body.
## How To Work
1. Read `generated/operations.md` before choosing an endpoint.
2. Start with one of these operations when it matches the user's request: `getUserDetailV3`, `getUserVideoListV3`, `getDouyinVideoDetailV2`, `searchVideoV4`.
3. Pick the smallest matching operation instead of guessing.
4. Ask the user for any missing required parameter. Do not invent values.
5. Call the helper with:
```bash
node {baseDir}/bin/run.mjs --operation "<operation-id>" --token "$JUST_ONE_API_TOKEN" --params-json '{"key":"value"}'
```
## Environment
- Required: `JUST_ONE_API_TOKEN`
- This skill uses `JUST_ONE_API_TOKEN` only for authenticated Just One API requests.
- Keep `JUST_ONE_API_TOKEN` private. Do not paste it into chat messages, screenshots, or logs.
- Get a token from [Just One API Dashboard](https://dashboard.justoneapi.com/en/login?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_douyin&utm_content=project_link).
- Authentication details: [Just One API Usage Guide](https://docs.justoneapi.com/en/?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_douyin&utm_content=project_link).
## Output Rules
- Start with a plain-language answer tied to the Douyin (TikTok China) task the user asked for.
- Include the most decision-relevant fields from the selected endpoint before dumping raw JSON.
- When using `getUserDetailV3`, explain why the returned fields answer the user's question.
- If the user gave filters such as `page`, `keyword`, `secUid`, echo those back so the scope is explicit.
- If the backend errors, include the backend payload and the exact operation ID.
FILE:bin/run.mjs
#!/usr/bin/env node
const manifest = {
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Douyin (TikTok China) workflows with JustOneAPI, including user Profile, user Published Videos, and video Details across 8 operations.",
"displayName": "Douyin (TikTok China)",
"openapi": "3.1.0",
"platformKey": "douyin",
"primaryTag": "Douyin (TikTok China)",
"skillName": "justoneapi_douyin",
"slug": "justoneapi-douyin",
"sourceTitle": "OpenAPI definition",
"operations": [
{
"description": "Get Douyin (TikTok China) user Profile data, including follower counts, verification status, and bio details, for creator research and account analysis.",
"method": "GET",
"operationId": "getUserDetailV3",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique user ID (sec_uid) on Douyin.",
"enumValues": [],
"location": "query",
"name": "secUid",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin/get-user-detail/v3",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Profile",
"tags": [
"Douyin (TikTok China)"
]
},
{
"description": "Get Douyin (TikTok China) user Published Videos data, including captions, covers, and publish times, for account monitoring.",
"method": "GET",
"operationId": "getUserVideoListV3",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique user ID (sec_uid) on Douyin.",
"enumValues": [],
"location": "query",
"name": "secUid",
"required": true,
"schemaType": "string"
},
{
"defaultValue": 0,
"description": "Pagination cursor; use 0 for the first page, and the `max_cursor` from the previous response for subsequent pages.",
"enumValues": [],
"location": "query",
"name": "maxCursor",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/douyin/get-user-video-list/v3",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Published Videos",
"tags": [
"Douyin (TikTok China)"
]
},
{
"description": "Get Douyin (TikTok China) video Comments data, including authors, text, and likes, for sentiment analysis and engagement review.",
"method": "GET",
"operationId": "getVideoCommentV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique video identifier (aweme_id).",
"enumValues": [],
"location": "query",
"name": "awemeId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number (starting from 1).",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/douyin/get-video-comment/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Comments",
"tags": [
"Douyin (TikTok China)"
]
},
{
"description": "Get Douyin (TikTok China) video Details data, including author details, publish time, and engagement counts, for video research, archiving, and performance analysis.",
"method": "GET",
"operationId": "getDouyinVideoDetailV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique video identifier (aweme_id or model_id).",
"enumValues": [],
"location": "query",
"name": "videoId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin/get-video-detail/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Details",
"tags": [
"Douyin (TikTok China)"
]
},
{
"description": "Get Douyin (TikTok China) comment Replies data, including text, authors, and timestamps, for thread analysis and feedback research.",
"method": "GET",
"operationId": "getVideoSubCommentV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique identifier of the top-level comment.",
"enumValues": [],
"location": "query",
"name": "commentId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number (starting from 1).",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/douyin/get-video-sub-comment/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Comment Replies",
"tags": [
"Douyin (TikTok China)"
]
},
{
"description": "Get Douyin (TikTok China) user Search data, including profile metadata and follower signals, for creator discovery and account research.",
"method": "GET",
"operationId": "searchDouyinUserV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The search keyword.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": true,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number (starting from 1).",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
},
{
"defaultValue": null,
"description": "Filter by user type.\n\nAvailable Values:\n- `common_user`: Common User\n- `enterprise_user`: Enterprise User\n- `personal_user`: Verified Individual User",
"enumValues": [
"common_user",
"enterprise_user",
"personal_user"
],
"location": "query",
"name": "userType",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin/search-user/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Search",
"tags": [
"Douyin (TikTok China)"
]
},
{
"description": "Get Douyin (TikTok China) video Search data, including metadata and engagement signals, for content discovery, trend research, and competitive monitoring.",
"method": "GET",
"operationId": "searchVideoV4",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The search keyword.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "_0",
"description": "Sorting criteria for search results.\n\nAvailable Values:\n- `_0`: General\n- `_1`: More likes\n- `_2`: Newest",
"enumValues": [
"_0",
"_1",
"_2"
],
"location": "query",
"name": "sortType",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "_0",
"description": "Filter by video publish time range.\n\nAvailable Values:\n- `_0`: No Limit\n- `_1`: Last 24 Hours\n- `_7`: Last 7 Days\n- `_180`: Last 6 Months",
"enumValues": [
"_0",
"_1",
"_7",
"_180"
],
"location": "query",
"name": "publishTime",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "_0",
"description": "Filter by video duration.\n\nAvailable Values:\n- `_0`: No Limit\n- `_1`: Under 1 Minute\n- `_2`: 1-5 Minutes\n- `_3`: Over 5 Minutes",
"enumValues": [
"_0",
"_1",
"_2",
"_3"
],
"location": "query",
"name": "duration",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number (starting from 1).",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
},
{
"defaultValue": null,
"description": "Search ID; required for pages > 1 (use the search_id value returned by the last response).",
"enumValues": [],
"location": "query",
"name": "searchId",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin/search-video/v4",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Search",
"tags": [
"Douyin (TikTok China)"
]
},
{
"description": "Get Douyin (TikTok China) share Link Resolution data, including helping extract canonical IDs, for downstream video and comment workflows.",
"method": "GET",
"operationId": "shareDouyinUrlTransferV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The Douyin short share URL.",
"enumValues": [],
"location": "query",
"name": "shareUrl",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin/share-url-transfer/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Share Link Resolution",
"tags": [
"Douyin (TikTok China)"
]
}
]
};
const args = parseArgs(process.argv.slice(2));
if (!args.operation) {
fail("Missing required --operation argument.");
}
const operation = manifest.operations.find((item) => item.operationId === args.operation);
if (!operation) {
fail(`Unknown operation "args.operation".`, { availableOperations: manifest.operations.map((item) => item.operationId) });
}
const params = parseParams(args.paramsJson);
applyDefaults(operation, params);
injectToken(operation, params, args.token);
validateRequired(operation, params);
const baseUrl = manifest.baseUrl;
const url = new URL(operation.path, ensureBaseUrl(baseUrl));
applyPathParams(operation, params, url);
applyQueryParams(operation, params, url);
const requestInit = {
headers: {
"accept": "application/json",
},
method: operation.method,
};
if (operation.requestBody && params.body !== undefined) {
requestInit.body = JSON.stringify(params.body);
requestInit.headers["content-type"] = operation.requestBody.contentType || "application/json";
}
let response;
try {
response = await fetch(url, requestInit);
} catch (error) {
fail("Network request failed.", {
cause: error instanceof Error ? error.message : String(error),
operationId: operation.operationId,
});
}
const rawBody = await response.text();
let parsedBody;
try {
parsedBody = rawBody ? JSON.parse(rawBody) : null;
} catch (error) {
if (!response.ok) {
fail("Backend returned a non-JSON error response.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
fail("Backend returned invalid JSON.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
if (!response.ok) {
fail("Backend request failed.", {
body: parsedBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
process.stdout.write(`JSON.stringify(parsedBody, null, 2)\n`);
function parseArgs(argv) {
const parsed = { operation: null, paramsJson: "{}", token: null };
for (let index = 0; index < argv.length; index += 1) {
const flag = argv[index];
const value = argv[index + 1];
if (flag === "--operation") {
parsed.operation = value;
index += 1;
continue;
}
if (flag === "--params-json") {
parsed.paramsJson = value;
index += 1;
continue;
}
if (flag === "--token") {
parsed.token = value;
index += 1;
continue;
}
fail(`Unknown argument "flag".`);
}
return parsed;
}
function parseParams(input) {
try {
const parsed = JSON.parse(input || "{}");
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
fail("--params-json must decode to a JSON object.");
}
return parsed;
} catch (error) {
fail("Failed to parse --params-json.", {
cause: error instanceof Error ? error.message : String(error),
});
}
}
function applyDefaults(operation, params) {
for (const parameter of operation.parameters) {
if (params[parameter.name] === undefined && parameter.defaultValue !== null) {
params[parameter.name] = parameter.defaultValue;
}
}
}
function injectToken(operation, params, cliToken) {
const tokenParam = operation.parameters.find((parameter) => parameter.name === "token");
if (!tokenParam || params.token !== undefined) {
return;
}
if (!cliToken) {
fail("--token is required for this operation.", {
operationId: operation.operationId,
});
}
params.token = cliToken;
}
function validateRequired(operation, params) {
const missing = [];
for (const parameter of operation.parameters) {
if (parameter.required && params[parameter.name] === undefined) {
missing.push(parameter.name);
}
}
if (operation.requestBody?.required && params.body === undefined) {
missing.push("body");
}
if (missing.length) {
fail("Missing required parameters.", {
missing,
operationId: operation.operationId,
});
}
}
function applyPathParams(operation, params, url) {
let pathname = url.pathname;
for (const parameter of operation.parameters.filter((item) => item.location === "path")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
pathname = pathname.replace(`{parameter.name}`, encodeURIComponent(String(value)));
}
url.pathname = pathname;
}
function applyQueryParams(operation, params, url) {
for (const parameter of operation.parameters.filter((item) => item.location === "query")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
appendValue(url.searchParams, parameter.name, value);
}
}
function appendValue(searchParams, name, value) {
if (Array.isArray(value)) {
for (const item of value) {
appendValue(searchParams, name, item);
}
return;
}
if (value && typeof value === "object") {
searchParams.append(name, JSON.stringify(value));
return;
}
searchParams.append(name, String(value));
}
function ensureBaseUrl(value) {
return value.endsWith("/") ? value : `value/`;
}
function fail(message, details = null) {
const payload = { message };
if (details) {
payload.details = details;
}
process.stderr.write(`JSON.stringify(payload, null, 2)\n`);
process.exit(1);
}
FILE:generated/operations.json
{
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Douyin (TikTok China) workflows with JustOneAPI, including user Profile, user Published Videos, and video Details across 8 operations.",
"displayName": "Douyin (TikTok China)",
"openapi": "3.1.0",
"operations": [
{
"description": "Get Douyin (TikTok China) user Profile data, including follower counts, verification status, and bio details, for creator research and account analysis.",
"method": "GET",
"operationId": "getUserDetailV3",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique user ID (sec_uid) on Douyin.",
"enumValues": [],
"location": "query",
"name": "secUid",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin/get-user-detail/v3",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Profile",
"tags": [
"Douyin (TikTok China)"
]
},
{
"description": "Get Douyin (TikTok China) user Published Videos data, including captions, covers, and publish times, for account monitoring.",
"method": "GET",
"operationId": "getUserVideoListV3",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique user ID (sec_uid) on Douyin.",
"enumValues": [],
"location": "query",
"name": "secUid",
"required": true,
"schemaType": "string"
},
{
"defaultValue": 0,
"description": "Pagination cursor; use 0 for the first page, and the `max_cursor` from the previous response for subsequent pages.",
"enumValues": [],
"location": "query",
"name": "maxCursor",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/douyin/get-user-video-list/v3",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Published Videos",
"tags": [
"Douyin (TikTok China)"
]
},
{
"description": "Get Douyin (TikTok China) video Comments data, including authors, text, and likes, for sentiment analysis and engagement review.",
"method": "GET",
"operationId": "getVideoCommentV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique video identifier (aweme_id).",
"enumValues": [],
"location": "query",
"name": "awemeId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number (starting from 1).",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/douyin/get-video-comment/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Comments",
"tags": [
"Douyin (TikTok China)"
]
},
{
"description": "Get Douyin (TikTok China) video Details data, including author details, publish time, and engagement counts, for video research, archiving, and performance analysis.",
"method": "GET",
"operationId": "getDouyinVideoDetailV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique video identifier (aweme_id or model_id).",
"enumValues": [],
"location": "query",
"name": "videoId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin/get-video-detail/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Details",
"tags": [
"Douyin (TikTok China)"
]
},
{
"description": "Get Douyin (TikTok China) comment Replies data, including text, authors, and timestamps, for thread analysis and feedback research.",
"method": "GET",
"operationId": "getVideoSubCommentV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique identifier of the top-level comment.",
"enumValues": [],
"location": "query",
"name": "commentId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number (starting from 1).",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/douyin/get-video-sub-comment/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Comment Replies",
"tags": [
"Douyin (TikTok China)"
]
},
{
"description": "Get Douyin (TikTok China) user Search data, including profile metadata and follower signals, for creator discovery and account research.",
"method": "GET",
"operationId": "searchDouyinUserV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The search keyword.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": true,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number (starting from 1).",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
},
{
"defaultValue": null,
"description": "Filter by user type.\n\nAvailable Values:\n- `common_user`: Common User\n- `enterprise_user`: Enterprise User\n- `personal_user`: Verified Individual User",
"enumValues": [
"common_user",
"enterprise_user",
"personal_user"
],
"location": "query",
"name": "userType",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin/search-user/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Search",
"tags": [
"Douyin (TikTok China)"
]
},
{
"description": "Get Douyin (TikTok China) video Search data, including metadata and engagement signals, for content discovery, trend research, and competitive monitoring.",
"method": "GET",
"operationId": "searchVideoV4",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The search keyword.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "_0",
"description": "Sorting criteria for search results.\n\nAvailable Values:\n- `_0`: General\n- `_1`: More likes\n- `_2`: Newest",
"enumValues": [
"_0",
"_1",
"_2"
],
"location": "query",
"name": "sortType",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "_0",
"description": "Filter by video publish time range.\n\nAvailable Values:\n- `_0`: No Limit\n- `_1`: Last 24 Hours\n- `_7`: Last 7 Days\n- `_180`: Last 6 Months",
"enumValues": [
"_0",
"_1",
"_7",
"_180"
],
"location": "query",
"name": "publishTime",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "_0",
"description": "Filter by video duration.\n\nAvailable Values:\n- `_0`: No Limit\n- `_1`: Under 1 Minute\n- `_2`: 1-5 Minutes\n- `_3`: Over 5 Minutes",
"enumValues": [
"_0",
"_1",
"_2",
"_3"
],
"location": "query",
"name": "duration",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number (starting from 1).",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
},
{
"defaultValue": null,
"description": "Search ID; required for pages > 1 (use the search_id value returned by the last response).",
"enumValues": [],
"location": "query",
"name": "searchId",
"required": false,
"schemaType": "string"
}
],
"path": "/api/douyin/search-video/v4",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Search",
"tags": [
"Douyin (TikTok China)"
]
},
{
"description": "Get Douyin (TikTok China) share Link Resolution data, including helping extract canonical IDs, for downstream video and comment workflows.",
"method": "GET",
"operationId": "shareDouyinUrlTransferV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The Douyin short share URL.",
"enumValues": [],
"location": "query",
"name": "shareUrl",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douyin/share-url-transfer/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Share Link Resolution",
"tags": [
"Douyin (TikTok China)"
]
}
],
"platformKey": "douyin",
"primaryTag": "Douyin (TikTok China)",
"skillName": "justoneapi_douyin",
"slug": "justoneapi-douyin",
"sourceTitle": "OpenAPI definition"
}
FILE:generated/operations.md
# Douyin (TikTok China) operations
Generated from JustOneAPI OpenAPI for platform key `douyin`.
## `getUserDetailV3`
- Method: `GET`
- Path: `/api/douyin/get-user-detail/v3`
- Summary: User Profile
- Description: Get Douyin (TikTok China) user Profile data, including follower counts, verification status, and bio details, for creator research and account analysis.
- Tags: `Douyin (TikTok China)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `secUid` | `query` | yes | `string` | n/a | The unique user ID (sec_uid) on Douyin. |
### Request body
No request body.
### Responses
- `200`: OK
## `getUserVideoListV3`
- Method: `GET`
- Path: `/api/douyin/get-user-video-list/v3`
- Summary: User Published Videos
- Description: Get Douyin (TikTok China) user Published Videos data, including captions, covers, and publish times, for account monitoring.
- Tags: `Douyin (TikTok China)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `secUid` | `query` | yes | `string` | n/a | The unique user ID (sec_uid) on Douyin. |
| `maxCursor` | `query` | no | `integer` | `0` | Pagination cursor; use 0 for the first page, and the `max_cursor` from the previous response for subsequent pages. |
### Request body
No request body.
### Responses
- `200`: OK
## `getVideoCommentV1`
- Method: `GET`
- Path: `/api/douyin/get-video-comment/v1`
- Summary: Video Comments
- Description: Get Douyin (TikTok China) video Comments data, including authors, text, and likes, for sentiment analysis and engagement review.
- Tags: `Douyin (TikTok China)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `awemeId` | `query` | yes | `string` | n/a | The unique video identifier (aweme_id). |
| `page` | `query` | no | `integer` | `1` | Page number (starting from 1). |
### Request body
No request body.
### Responses
- `200`: OK
## `getDouyinVideoDetailV2`
- Method: `GET`
- Path: `/api/douyin/get-video-detail/v2`
- Summary: Video Details
- Description: Get Douyin (TikTok China) video Details data, including author details, publish time, and engagement counts, for video research, archiving, and performance analysis.
- Tags: `Douyin (TikTok China)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `videoId` | `query` | yes | `string` | n/a | The unique video identifier (aweme_id or model_id). |
### Request body
No request body.
### Responses
- `200`: OK
## `getVideoSubCommentV1`
- Method: `GET`
- Path: `/api/douyin/get-video-sub-comment/v1`
- Summary: Comment Replies
- Description: Get Douyin (TikTok China) comment Replies data, including text, authors, and timestamps, for thread analysis and feedback research.
- Tags: `Douyin (TikTok China)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `commentId` | `query` | yes | `string` | n/a | The unique identifier of the top-level comment. |
| `page` | `query` | no | `integer` | `1` | Page number (starting from 1). |
### Request body
No request body.
### Responses
- `200`: OK
## `searchDouyinUserV2`
- Method: `GET`
- Path: `/api/douyin/search-user/v2`
- Summary: User Search
- Description: Get Douyin (TikTok China) user Search data, including profile metadata and follower signals, for creator discovery and account research.
- Tags: `Douyin (TikTok China)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `keyword` | `query` | yes | `string` | n/a | The search keyword. |
| `page` | `query` | no | `integer` | `1` | Page number (starting from 1). |
| `userType` | `query` | no | `string` | n/a | Filter by user type.
Available Values:
- `common_user`: Common User
- `enterprise_user`: Enterprise User
- `personal_user`: Verified Individual User |
| enum | values | no | n/a | n/a | `common_user`, `enterprise_user`, `personal_user` |
### Request body
No request body.
### Responses
- `200`: OK
## `searchVideoV4`
- Method: `GET`
- Path: `/api/douyin/search-video/v4`
- Summary: Video Search
- Description: Get Douyin (TikTok China) video Search data, including metadata and engagement signals, for content discovery, trend research, and competitive monitoring.
- Tags: `Douyin (TikTok China)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `keyword` | `query` | yes | `string` | n/a | The search keyword. |
| `sortType` | `query` | no | `string` | `_0` | Sorting criteria for search results.
Available Values:
- `_0`: General
- `_1`: More likes
- `_2`: Newest |
| enum | values | no | n/a | n/a | `_0`, `_1`, `_2` |
| `publishTime` | `query` | no | `string` | `_0` | Filter by video publish time range.
Available Values:
- `_0`: No Limit
- `_1`: Last 24 Hours
- `_7`: Last 7 Days
- `_180`: Last 6 Months |
| enum | values | no | n/a | n/a | `_0`, `_1`, `_7`, `_180` |
| `duration` | `query` | no | `string` | `_0` | Filter by video duration.
Available Values:
- `_0`: No Limit
- `_1`: Under 1 Minute
- `_2`: 1-5 Minutes
- `_3`: Over 5 Minutes |
| enum | values | no | n/a | n/a | `_0`, `_1`, `_2`, `_3` |
| `page` | `query` | no | `integer` | `1` | Page number (starting from 1). |
| `searchId` | `query` | no | `string` | n/a | Search ID; required for pages > 1 (use the search_id value returned by the last response). |
### Request body
No request body.
### Responses
- `200`: OK
## `shareDouyinUrlTransferV1`
- Method: `GET`
- Path: `/api/douyin/share-url-transfer/v1`
- Summary: Share Link Resolution
- Description: Get Douyin (TikTok China) share Link Resolution data, including helping extract canonical IDs, for downstream video and comment workflows.
- Tags: `Douyin (TikTok China)`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `shareUrl` | `query` | yes | `string` | n/a | The Douyin short share URL. |
### Request body
No request body.
### Responses
- `200`: OK
Analyze Douban Movie workflows with JustOneAPI, including movie Reviews, review Details, and subject Details across 6 operations.
---
name: Douban Movie API
description: Analyze Douban Movie workflows with JustOneAPI, including movie Reviews, review Details, and subject Details across 6 operations.
author: JustOneAPI
homepage: https://api.justoneapi.com
metadata: {"openclaw":{"homepage":"https://api.justoneapi.com","primaryEnv":"JUST_ONE_API_TOKEN","requires":{"bins":["node"],"env":["JUST_ONE_API_TOKEN"]},"skillKey":"justoneapi_douban"}}
---
# Douban Movie
This skill wraps 6 Douban Movie operations exposed by JustOneAPI. It is strongest for movie Reviews, review Details, subject Details, and comments. Expect common inputs such as `page`, `subjectId`, `sort`, `reviewId`.
## When To Use It
- The user needs movie Reviews or review Details on Douban Movie.
- The task lines up with subject Details rather than a generic cross-platform workflow.
- The user can provide identifiers or filters such as `page`, `subjectId`, `sort`, `reviewId`.
- The user wants an exact API-backed answer instead of a freeform summary.
## Representative Operations
- `getMovieReviewsV1`: Movie Reviews — Get Douban movie Reviews data, including review titles, ratings, and snippets, for audience sentiment analysis and review research
- `getMovieReviewDetailsV1`: Review Details — Get Douban movie Review Details data, including metadata, content fields, and engagement signals, for review archiving and detailed opinion analysis
- `getSubjectDetailV1`: Subject Details — Get Douban subject Details data, including title, rating, and cast, for title enrichment and catalog research
- `getMovieCommentsV1`: Comments — Get Douban movie Comments data, including ratings, snippets, and interaction counts, for quick sentiment sampling and review monitoring
## Request Pattern
- 6 operations are available in this skill.
- HTTP methods used here: `GET`.
- The most common non-token parameters are `page`, `subjectId`, `sort`, `reviewId`.
- All operations in this skill are parameter-driven requests; none require a request body.
## How To Work
1. Read `generated/operations.md` before choosing an endpoint.
2. Start with one of these operations when it matches the user's request: `getMovieReviewsV1`, `getMovieReviewDetailsV1`, `getSubjectDetailV1`, `getMovieCommentsV1`.
3. Pick the smallest matching operation instead of guessing.
4. Ask the user for any missing required parameter. Do not invent values.
5. Call the helper with:
```bash
node {baseDir}/bin/run.mjs --operation "<operation-id>" --token "$JUST_ONE_API_TOKEN" --params-json '{"key":"value"}'
```
## Environment
- Required: `JUST_ONE_API_TOKEN`
- This skill uses `JUST_ONE_API_TOKEN` only for authenticated Just One API requests.
- Keep `JUST_ONE_API_TOKEN` private. Do not paste it into chat messages, screenshots, or logs.
- Get a token from [Just One API Dashboard](https://dashboard.justoneapi.com/en/login?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_douban&utm_content=project_link).
- Authentication details: [Just One API Usage Guide](https://docs.justoneapi.com/en/?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_douban&utm_content=project_link).
## Output Rules
- Start with a plain-language answer tied to the Douban Movie task the user asked for.
- Include the most decision-relevant fields from the selected endpoint before dumping raw JSON.
- When using `getMovieReviewsV1`, explain why the returned fields answer the user's question.
- If the user gave filters such as `page`, `subjectId`, `sort`, echo those back so the scope is explicit.
- If the backend errors, include the backend payload and the exact operation ID.
FILE:bin/run.mjs
#!/usr/bin/env node
const manifest = {
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Douban Movie workflows with JustOneAPI, including movie Reviews, review Details, and subject Details across 6 operations.",
"displayName": "Douban Movie",
"openapi": "3.1.0",
"platformKey": "douban",
"primaryTag": "Douban Movie",
"skillName": "justoneapi_douban",
"slug": "justoneapi-douban",
"sourceTitle": "OpenAPI definition",
"operations": [
{
"description": "Get Douban movie Comments data, including ratings, snippets, and interaction counts, for quick sentiment sampling and review monitoring.",
"method": "GET",
"operationId": "getMovieCommentsV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique ID for a movie or TV subject on Douban.",
"enumValues": [],
"location": "query",
"name": "subjectId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "time",
"description": "Sort order for the result set.\n\nAvailable Values:\n- `time`: Time\n- `new_score`: New Score",
"enumValues": [
"time",
"new_score"
],
"location": "query",
"name": "sort",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/douban/get-movie-comments/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Comments",
"tags": [
"Douban Movie"
]
},
{
"description": "Get Douban movie Review Details data, including metadata, content fields, and engagement signals, for review archiving and detailed opinion analysis.",
"method": "GET",
"operationId": "getMovieReviewDetailsV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique ID for a specific review on Douban.",
"enumValues": [],
"location": "query",
"name": "reviewId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douban/get-movie-review-detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Review Details",
"tags": [
"Douban Movie"
]
},
{
"description": "Get Douban movie Reviews data, including review titles, ratings, and snippets, for audience sentiment analysis and review research.",
"method": "GET",
"operationId": "getMovieReviewsV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique ID for a movie or TV subject on Douban.",
"enumValues": [],
"location": "query",
"name": "subjectId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "time",
"description": "Sort order for the result set.\n\nAvailable Values:\n- `time`: Time\n- `hotest`: Hotest",
"enumValues": [
"time",
"hotest"
],
"location": "query",
"name": "sort",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/douban/get-movie-reviews/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Movie Reviews",
"tags": [
"Douban Movie"
]
},
{
"description": "Get Douban recent Hot Movie data, including ratings, posters, and subject metadata, for movie discovery and trend monitoring.",
"method": "GET",
"operationId": "getRecentHotMovieV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/douban/get-recent-hot-movie/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Recent Hot Movie",
"tags": [
"Douban Movie"
]
},
{
"description": "Get Douban recent Hot Tv data, including ratings, posters, and subject metadata, for series discovery and trend monitoring.",
"method": "GET",
"operationId": "getRecentHotTvV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/douban/get-recent-hot-tv/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Recent Hot Tv",
"tags": [
"Douban Movie"
]
},
{
"description": "Get Douban subject Details data, including title, rating, and cast, for title enrichment and catalog research.",
"method": "GET",
"operationId": "getSubjectDetailV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique ID for a movie or TV subject on Douban.",
"enumValues": [],
"location": "query",
"name": "subjectId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douban/get-subject-detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Subject Details",
"tags": [
"Douban Movie"
]
}
]
};
const args = parseArgs(process.argv.slice(2));
if (!args.operation) {
fail("Missing required --operation argument.");
}
const operation = manifest.operations.find((item) => item.operationId === args.operation);
if (!operation) {
fail(`Unknown operation "args.operation".`, { availableOperations: manifest.operations.map((item) => item.operationId) });
}
const params = parseParams(args.paramsJson);
applyDefaults(operation, params);
injectToken(operation, params, args.token);
validateRequired(operation, params);
const baseUrl = manifest.baseUrl;
const url = new URL(operation.path, ensureBaseUrl(baseUrl));
applyPathParams(operation, params, url);
applyQueryParams(operation, params, url);
const requestInit = {
headers: {
"accept": "application/json",
},
method: operation.method,
};
if (operation.requestBody && params.body !== undefined) {
requestInit.body = JSON.stringify(params.body);
requestInit.headers["content-type"] = operation.requestBody.contentType || "application/json";
}
let response;
try {
response = await fetch(url, requestInit);
} catch (error) {
fail("Network request failed.", {
cause: error instanceof Error ? error.message : String(error),
operationId: operation.operationId,
});
}
const rawBody = await response.text();
let parsedBody;
try {
parsedBody = rawBody ? JSON.parse(rawBody) : null;
} catch (error) {
if (!response.ok) {
fail("Backend returned a non-JSON error response.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
fail("Backend returned invalid JSON.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
if (!response.ok) {
fail("Backend request failed.", {
body: parsedBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
process.stdout.write(`JSON.stringify(parsedBody, null, 2)\n`);
function parseArgs(argv) {
const parsed = { operation: null, paramsJson: "{}", token: null };
for (let index = 0; index < argv.length; index += 1) {
const flag = argv[index];
const value = argv[index + 1];
if (flag === "--operation") {
parsed.operation = value;
index += 1;
continue;
}
if (flag === "--params-json") {
parsed.paramsJson = value;
index += 1;
continue;
}
if (flag === "--token") {
parsed.token = value;
index += 1;
continue;
}
fail(`Unknown argument "flag".`);
}
return parsed;
}
function parseParams(input) {
try {
const parsed = JSON.parse(input || "{}");
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
fail("--params-json must decode to a JSON object.");
}
return parsed;
} catch (error) {
fail("Failed to parse --params-json.", {
cause: error instanceof Error ? error.message : String(error),
});
}
}
function applyDefaults(operation, params) {
for (const parameter of operation.parameters) {
if (params[parameter.name] === undefined && parameter.defaultValue !== null) {
params[parameter.name] = parameter.defaultValue;
}
}
}
function injectToken(operation, params, cliToken) {
const tokenParam = operation.parameters.find((parameter) => parameter.name === "token");
if (!tokenParam || params.token !== undefined) {
return;
}
if (!cliToken) {
fail("--token is required for this operation.", {
operationId: operation.operationId,
});
}
params.token = cliToken;
}
function validateRequired(operation, params) {
const missing = [];
for (const parameter of operation.parameters) {
if (parameter.required && params[parameter.name] === undefined) {
missing.push(parameter.name);
}
}
if (operation.requestBody?.required && params.body === undefined) {
missing.push("body");
}
if (missing.length) {
fail("Missing required parameters.", {
missing,
operationId: operation.operationId,
});
}
}
function applyPathParams(operation, params, url) {
let pathname = url.pathname;
for (const parameter of operation.parameters.filter((item) => item.location === "path")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
pathname = pathname.replace(`{parameter.name}`, encodeURIComponent(String(value)));
}
url.pathname = pathname;
}
function applyQueryParams(operation, params, url) {
for (const parameter of operation.parameters.filter((item) => item.location === "query")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
appendValue(url.searchParams, parameter.name, value);
}
}
function appendValue(searchParams, name, value) {
if (Array.isArray(value)) {
for (const item of value) {
appendValue(searchParams, name, item);
}
return;
}
if (value && typeof value === "object") {
searchParams.append(name, JSON.stringify(value));
return;
}
searchParams.append(name, String(value));
}
function ensureBaseUrl(value) {
return value.endsWith("/") ? value : `value/`;
}
function fail(message, details = null) {
const payload = { message };
if (details) {
payload.details = details;
}
process.stderr.write(`JSON.stringify(payload, null, 2)\n`);
process.exit(1);
}
FILE:generated/operations.json
{
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Douban Movie workflows with JustOneAPI, including movie Reviews, review Details, and subject Details across 6 operations.",
"displayName": "Douban Movie",
"openapi": "3.1.0",
"operations": [
{
"description": "Get Douban movie Comments data, including ratings, snippets, and interaction counts, for quick sentiment sampling and review monitoring.",
"method": "GET",
"operationId": "getMovieCommentsV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique ID for a movie or TV subject on Douban.",
"enumValues": [],
"location": "query",
"name": "subjectId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "time",
"description": "Sort order for the result set.\n\nAvailable Values:\n- `time`: Time\n- `new_score`: New Score",
"enumValues": [
"time",
"new_score"
],
"location": "query",
"name": "sort",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/douban/get-movie-comments/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Comments",
"tags": [
"Douban Movie"
]
},
{
"description": "Get Douban movie Review Details data, including metadata, content fields, and engagement signals, for review archiving and detailed opinion analysis.",
"method": "GET",
"operationId": "getMovieReviewDetailsV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique ID for a specific review on Douban.",
"enumValues": [],
"location": "query",
"name": "reviewId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douban/get-movie-review-detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Review Details",
"tags": [
"Douban Movie"
]
},
{
"description": "Get Douban movie Reviews data, including review titles, ratings, and snippets, for audience sentiment analysis and review research.",
"method": "GET",
"operationId": "getMovieReviewsV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique ID for a movie or TV subject on Douban.",
"enumValues": [],
"location": "query",
"name": "subjectId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "time",
"description": "Sort order for the result set.\n\nAvailable Values:\n- `time`: Time\n- `hotest`: Hotest",
"enumValues": [
"time",
"hotest"
],
"location": "query",
"name": "sort",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/douban/get-movie-reviews/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Movie Reviews",
"tags": [
"Douban Movie"
]
},
{
"description": "Get Douban recent Hot Movie data, including ratings, posters, and subject metadata, for movie discovery and trend monitoring.",
"method": "GET",
"operationId": "getRecentHotMovieV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/douban/get-recent-hot-movie/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Recent Hot Movie",
"tags": [
"Douban Movie"
]
},
{
"description": "Get Douban recent Hot Tv data, including ratings, posters, and subject metadata, for series discovery and trend monitoring.",
"method": "GET",
"operationId": "getRecentHotTvV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/douban/get-recent-hot-tv/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Recent Hot Tv",
"tags": [
"Douban Movie"
]
},
{
"description": "Get Douban subject Details data, including title, rating, and cast, for title enrichment and catalog research.",
"method": "GET",
"operationId": "getSubjectDetailV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique ID for a movie or TV subject on Douban.",
"enumValues": [],
"location": "query",
"name": "subjectId",
"required": true,
"schemaType": "string"
}
],
"path": "/api/douban/get-subject-detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Subject Details",
"tags": [
"Douban Movie"
]
}
],
"platformKey": "douban",
"primaryTag": "Douban Movie",
"skillName": "justoneapi_douban",
"slug": "justoneapi-douban",
"sourceTitle": "OpenAPI definition"
}
FILE:generated/operations.md
# Douban Movie operations
Generated from JustOneAPI OpenAPI for platform key `douban`.
## `getMovieCommentsV1`
- Method: `GET`
- Path: `/api/douban/get-movie-comments/v1`
- Summary: Comments
- Description: Get Douban movie Comments data, including ratings, snippets, and interaction counts, for quick sentiment sampling and review monitoring.
- Tags: `Douban Movie`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `subjectId` | `query` | yes | `string` | n/a | The unique ID for a movie or TV subject on Douban. |
| `sort` | `query` | no | `string` | `time` | Sort order for the result set.
Available Values:
- `time`: Time
- `new_score`: New Score |
| enum | values | no | n/a | n/a | `time`, `new_score` |
| `page` | `query` | no | `integer` | `1` | Page number for pagination. |
### Request body
No request body.
### Responses
- `200`: OK
## `getMovieReviewDetailsV1`
- Method: `GET`
- Path: `/api/douban/get-movie-review-detail/v1`
- Summary: Review Details
- Description: Get Douban movie Review Details data, including metadata, content fields, and engagement signals, for review archiving and detailed opinion analysis.
- Tags: `Douban Movie`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `reviewId` | `query` | yes | `string` | n/a | The unique ID for a specific review on Douban. |
### Request body
No request body.
### Responses
- `200`: OK
## `getMovieReviewsV1`
- Method: `GET`
- Path: `/api/douban/get-movie-reviews/v1`
- Summary: Movie Reviews
- Description: Get Douban movie Reviews data, including review titles, ratings, and snippets, for audience sentiment analysis and review research.
- Tags: `Douban Movie`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `subjectId` | `query` | yes | `string` | n/a | The unique ID for a movie or TV subject on Douban. |
| `sort` | `query` | no | `string` | `time` | Sort order for the result set.
Available Values:
- `time`: Time
- `hotest`: Hotest |
| enum | values | no | n/a | n/a | `time`, `hotest` |
| `page` | `query` | no | `integer` | `1` | Page number for pagination. |
### Request body
No request body.
### Responses
- `200`: OK
## `getRecentHotMovieV1`
- Method: `GET`
- Path: `/api/douban/get-recent-hot-movie/v1`
- Summary: Recent Hot Movie
- Description: Get Douban recent Hot Movie data, including ratings, posters, and subject metadata, for movie discovery and trend monitoring.
- Tags: `Douban Movie`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `page` | `query` | no | `integer` | `1` | Page number for pagination. |
### Request body
No request body.
### Responses
- `200`: OK
## `getRecentHotTvV1`
- Method: `GET`
- Path: `/api/douban/get-recent-hot-tv/v1`
- Summary: Recent Hot Tv
- Description: Get Douban recent Hot Tv data, including ratings, posters, and subject metadata, for series discovery and trend monitoring.
- Tags: `Douban Movie`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `page` | `query` | no | `integer` | `1` | Page number for pagination. |
### Request body
No request body.
### Responses
- `200`: OK
## `getSubjectDetailV1`
- Method: `GET`
- Path: `/api/douban/get-subject-detail/v1`
- Summary: Subject Details
- Description: Get Douban subject Details data, including title, rating, and cast, for title enrichment and catalog research.
- Tags: `Douban Movie`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for this API service. |
| `subjectId` | `query` | yes | `string` | n/a | The unique ID for a movie or TV subject on Douban. |
### Request body
No request body.
### Responses
- `200`: OK
Analyze Bilibili workflows with JustOneAPI, including video Details, user Published Videos, and user Profile across 9 operations.
---
name: Bilibili API
description: Analyze Bilibili workflows with JustOneAPI, including video Details, user Published Videos, and user Profile across 9 operations.
author: JustOneAPI
homepage: https://api.justoneapi.com
metadata: {"openclaw":{"homepage":"https://api.justoneapi.com","primaryEnv":"JUST_ONE_API_TOKEN","requires":{"bins":["node"],"env":["JUST_ONE_API_TOKEN"]},"skillKey":"justoneapi_bilibili"}}
---
# Bilibili
This skill wraps 9 Bilibili operations exposed by JustOneAPI. It is strongest for video Details, user Published Videos, user Profile, and video Danmaku. Expect common inputs such as `aid`, `bvid`, `cid`, `page`, `uid`.
## When To Use It
- The user needs video Details or user Published Videos on Bilibili.
- The task lines up with user Profile rather than a generic cross-platform workflow.
- The user can provide identifiers or filters such as `aid`, `bvid`, `cid`, `page`.
- The user wants an exact API-backed answer instead of a freeform summary.
## Representative Operations
- `getBilibiliVideoDetailV2`: Video Details — Get Bilibili video Details data, including metadata (title, tags, and publishing time), for tracking video performance and engagement metrics and analyzing content metadata and uploader information
- `getBilibiliUserVideoListV2`: User Published Videos — Get Bilibili user Published Videos data, including titles, covers, and publish times, for creator monitoring and content performance analysis
- `getUserDetailV2`: User Profile — Get Bilibili user Profile data, including account metadata, audience metrics, and verification-related fields, for analyzing creator's profile, level, and verification status and verifying user identity and social presence on bilibili
- `getVideoDanmuV2`: Video Danmaku — Get Bilibili video Danmaku data, including timeline positions and comment text, for audience reaction analysis and subtitle-style comment review
## Request Pattern
- 9 operations are available in this skill.
- HTTP methods used here: `GET`.
- The most common non-token parameters are `aid`, `bvid`, `cid`, `page`, `uid`.
- All operations in this skill are parameter-driven requests; none require a request body.
## How To Work
1. Read `generated/operations.md` before choosing an endpoint.
2. Start with one of these operations when it matches the user's request: `getBilibiliVideoDetailV2`, `getBilibiliUserVideoListV2`, `getUserDetailV2`, `getVideoDanmuV2`.
3. Pick the smallest matching operation instead of guessing.
4. Ask the user for any missing required parameter. Do not invent values.
5. Call the helper with:
```bash
node {baseDir}/bin/run.mjs --operation "<operation-id>" --token "$JUST_ONE_API_TOKEN" --params-json '{"key":"value"}'
```
## Environment
- Required: `JUST_ONE_API_TOKEN`
- This skill uses `JUST_ONE_API_TOKEN` only for authenticated Just One API requests.
- Keep `JUST_ONE_API_TOKEN` private. Do not paste it into chat messages, screenshots, or logs.
- Get a token from [Just One API Dashboard](https://dashboard.justoneapi.com/en/login?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_bilibili&utm_content=project_link).
- Authentication details: [Just One API Usage Guide](https://docs.justoneapi.com/en/?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_bilibili&utm_content=project_link).
## Output Rules
- Start with a plain-language answer tied to the Bilibili task the user asked for.
- Include the most decision-relevant fields from the selected endpoint before dumping raw JSON.
- When using `getBilibiliVideoDetailV2`, explain why the returned fields answer the user's question.
- If the user gave filters such as `aid`, `bvid`, `cid`, echo those back so the scope is explicit.
- If the backend errors, include the backend payload and the exact operation ID.
FILE:bin/run.mjs
#!/usr/bin/env node
const manifest = {
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Bilibili workflows with JustOneAPI, including video Details, user Published Videos, and user Profile across 9 operations.",
"displayName": "Bilibili",
"openapi": "3.1.0",
"platformKey": "bilibili",
"primaryTag": "Bilibili",
"skillName": "justoneapi_bilibili",
"slug": "justoneapi-bilibili",
"sourceTitle": "OpenAPI definition",
"operations": [
{
"description": "Get Bilibili user Profile data, including account metadata, audience metrics, and verification-related fields, for analyzing creator's profile, level, and verification status and verifying user identity and social presence on bilibili.",
"method": "GET",
"operationId": "getUserDetailV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili User ID (UID).",
"enumValues": [],
"location": "query",
"name": "uid",
"required": true,
"schemaType": "string"
}
],
"path": "/api/bilibili/get-user-detail/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Profile",
"tags": [
"Bilibili"
]
},
{
"description": "Get Bilibili user Relation Stats data, including following counts, for creator benchmarking and audience growth tracking.",
"method": "GET",
"operationId": "getUserRelationStat",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili User ID (WMID).",
"enumValues": [],
"location": "query",
"name": "wmid",
"required": true,
"schemaType": "string"
}
],
"path": "/api/bilibili/get-user-relation-stat/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Relation Stats",
"tags": [
"Bilibili"
]
},
{
"description": "Get Bilibili user Published Videos data, including titles, covers, and publish times, for creator monitoring and content performance analysis.",
"method": "GET",
"operationId": "getBilibiliUserVideoListV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili User ID (UID).",
"enumValues": [],
"location": "query",
"name": "uid",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Pagination parameter from previous response.",
"enumValues": [],
"location": "query",
"name": "param",
"required": false,
"schemaType": "string"
}
],
"path": "/api/bilibili/get-user-video-list/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Published Videos",
"tags": [
"Bilibili"
]
},
{
"description": "Get Bilibili video Captions data, including caption data, for transcript extraction and multilingual content analysis.",
"method": "GET",
"operationId": "getVideoCaptionV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili Video ID (BVID).",
"enumValues": [],
"location": "query",
"name": "bvid",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili AID.",
"enumValues": [],
"location": "query",
"name": "aid",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili CID.",
"enumValues": [],
"location": "query",
"name": "cid",
"required": true,
"schemaType": "string"
}
],
"path": "/api/bilibili/get-video-caption/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Captions",
"tags": [
"Bilibili"
]
},
{
"description": "Get Bilibili video Comments data, including commenter profiles, text, and likes, for sentiment analysis and comment moderation workflows.",
"method": "GET",
"operationId": "getVideoCommentV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili Archive ID (AID).",
"enumValues": [],
"location": "query",
"name": "aid",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Pagination cursor.",
"enumValues": [],
"location": "query",
"name": "cursor",
"required": false,
"schemaType": "string"
}
],
"path": "/api/bilibili/get-video-comment/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Comments",
"tags": [
"Bilibili"
]
},
{
"description": "Get Bilibili video Danmaku data, including timeline positions and comment text, for audience reaction analysis and subtitle-style comment review.",
"method": "GET",
"operationId": "getVideoDanmuV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili Archive ID (AID).",
"enumValues": [],
"location": "query",
"name": "aid",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili Chat ID (CID).",
"enumValues": [],
"location": "query",
"name": "cid",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "string"
}
],
"path": "/api/bilibili/get-video-danmu/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Danmaku",
"tags": [
"Bilibili"
]
},
{
"description": "Get Bilibili video Details data, including metadata (title, tags, and publishing time), for tracking video performance and engagement metrics and analyzing content metadata and uploader information.",
"method": "GET",
"operationId": "getBilibiliVideoDetailV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili Video ID (BVID).",
"enumValues": [],
"location": "query",
"name": "bvid",
"required": true,
"schemaType": "string"
}
],
"path": "/api/bilibili/get-video-detail/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Details",
"tags": [
"Bilibili"
]
},
{
"description": "Get Bilibili video Search data, including matched videos, creators, and engagement metrics, for topic research and content discovery.",
"method": "GET",
"operationId": "searchBilibiliVideoV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Search keyword.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "general",
"description": "Sorting criteria for search results.\n\nAvailable Values:\n- `general`: General\n- `click`: Most Played\n- `pubdate`: Latest\n- `dm`: Most Danmaku\n- `stow`: Most Favorite",
"enumValues": [
"general",
"click",
"pubdate",
"dm",
"stow"
],
"location": "query",
"name": "order",
"required": false,
"schemaType": "string"
}
],
"path": "/api/bilibili/search-video/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Search",
"tags": [
"Bilibili"
]
},
{
"description": "Get Bilibili share Link Resolution data, including resolved video and page identifier, for converting shortened mobile share links to standard bvid/metadata and automating content extraction from shared social media links.",
"method": "GET",
"operationId": "shareBilibiliUrlTransferV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili share URL (must start with https://b23.tv/).",
"enumValues": [],
"location": "query",
"name": "shareUrl",
"required": true,
"schemaType": "string"
}
],
"path": "/api/bilibili/share-url-transfer/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Share Link Resolution",
"tags": [
"Bilibili"
]
}
]
};
const args = parseArgs(process.argv.slice(2));
if (!args.operation) {
fail("Missing required --operation argument.");
}
const operation = manifest.operations.find((item) => item.operationId === args.operation);
if (!operation) {
fail(`Unknown operation "args.operation".`, { availableOperations: manifest.operations.map((item) => item.operationId) });
}
const params = parseParams(args.paramsJson);
applyDefaults(operation, params);
injectToken(operation, params, args.token);
validateRequired(operation, params);
const baseUrl = manifest.baseUrl;
const url = new URL(operation.path, ensureBaseUrl(baseUrl));
applyPathParams(operation, params, url);
applyQueryParams(operation, params, url);
const requestInit = {
headers: {
"accept": "application/json",
},
method: operation.method,
};
if (operation.requestBody && params.body !== undefined) {
requestInit.body = JSON.stringify(params.body);
requestInit.headers["content-type"] = operation.requestBody.contentType || "application/json";
}
let response;
try {
response = await fetch(url, requestInit);
} catch (error) {
fail("Network request failed.", {
cause: error instanceof Error ? error.message : String(error),
operationId: operation.operationId,
});
}
const rawBody = await response.text();
let parsedBody;
try {
parsedBody = rawBody ? JSON.parse(rawBody) : null;
} catch (error) {
if (!response.ok) {
fail("Backend returned a non-JSON error response.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
fail("Backend returned invalid JSON.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
if (!response.ok) {
fail("Backend request failed.", {
body: parsedBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
process.stdout.write(`JSON.stringify(parsedBody, null, 2)\n`);
function parseArgs(argv) {
const parsed = { operation: null, paramsJson: "{}", token: null };
for (let index = 0; index < argv.length; index += 1) {
const flag = argv[index];
const value = argv[index + 1];
if (flag === "--operation") {
parsed.operation = value;
index += 1;
continue;
}
if (flag === "--params-json") {
parsed.paramsJson = value;
index += 1;
continue;
}
if (flag === "--token") {
parsed.token = value;
index += 1;
continue;
}
fail(`Unknown argument "flag".`);
}
return parsed;
}
function parseParams(input) {
try {
const parsed = JSON.parse(input || "{}");
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
fail("--params-json must decode to a JSON object.");
}
return parsed;
} catch (error) {
fail("Failed to parse --params-json.", {
cause: error instanceof Error ? error.message : String(error),
});
}
}
function applyDefaults(operation, params) {
for (const parameter of operation.parameters) {
if (params[parameter.name] === undefined && parameter.defaultValue !== null) {
params[parameter.name] = parameter.defaultValue;
}
}
}
function injectToken(operation, params, cliToken) {
const tokenParam = operation.parameters.find((parameter) => parameter.name === "token");
if (!tokenParam || params.token !== undefined) {
return;
}
if (!cliToken) {
fail("--token is required for this operation.", {
operationId: operation.operationId,
});
}
params.token = cliToken;
}
function validateRequired(operation, params) {
const missing = [];
for (const parameter of operation.parameters) {
if (parameter.required && params[parameter.name] === undefined) {
missing.push(parameter.name);
}
}
if (operation.requestBody?.required && params.body === undefined) {
missing.push("body");
}
if (missing.length) {
fail("Missing required parameters.", {
missing,
operationId: operation.operationId,
});
}
}
function applyPathParams(operation, params, url) {
let pathname = url.pathname;
for (const parameter of operation.parameters.filter((item) => item.location === "path")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
pathname = pathname.replace(`{parameter.name}`, encodeURIComponent(String(value)));
}
url.pathname = pathname;
}
function applyQueryParams(operation, params, url) {
for (const parameter of operation.parameters.filter((item) => item.location === "query")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
appendValue(url.searchParams, parameter.name, value);
}
}
function appendValue(searchParams, name, value) {
if (Array.isArray(value)) {
for (const item of value) {
appendValue(searchParams, name, item);
}
return;
}
if (value && typeof value === "object") {
searchParams.append(name, JSON.stringify(value));
return;
}
searchParams.append(name, String(value));
}
function ensureBaseUrl(value) {
return value.endsWith("/") ? value : `value/`;
}
function fail(message, details = null) {
const payload = { message };
if (details) {
payload.details = details;
}
process.stderr.write(`JSON.stringify(payload, null, 2)\n`);
process.exit(1);
}
FILE:generated/operations.json
{
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Bilibili workflows with JustOneAPI, including video Details, user Published Videos, and user Profile across 9 operations.",
"displayName": "Bilibili",
"openapi": "3.1.0",
"operations": [
{
"description": "Get Bilibili user Profile data, including account metadata, audience metrics, and verification-related fields, for analyzing creator's profile, level, and verification status and verifying user identity and social presence on bilibili.",
"method": "GET",
"operationId": "getUserDetailV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili User ID (UID).",
"enumValues": [],
"location": "query",
"name": "uid",
"required": true,
"schemaType": "string"
}
],
"path": "/api/bilibili/get-user-detail/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Profile",
"tags": [
"Bilibili"
]
},
{
"description": "Get Bilibili user Relation Stats data, including following counts, for creator benchmarking and audience growth tracking.",
"method": "GET",
"operationId": "getUserRelationStat",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili User ID (WMID).",
"enumValues": [],
"location": "query",
"name": "wmid",
"required": true,
"schemaType": "string"
}
],
"path": "/api/bilibili/get-user-relation-stat/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Relation Stats",
"tags": [
"Bilibili"
]
},
{
"description": "Get Bilibili user Published Videos data, including titles, covers, and publish times, for creator monitoring and content performance analysis.",
"method": "GET",
"operationId": "getBilibiliUserVideoListV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili User ID (UID).",
"enumValues": [],
"location": "query",
"name": "uid",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Pagination parameter from previous response.",
"enumValues": [],
"location": "query",
"name": "param",
"required": false,
"schemaType": "string"
}
],
"path": "/api/bilibili/get-user-video-list/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "User Published Videos",
"tags": [
"Bilibili"
]
},
{
"description": "Get Bilibili video Captions data, including caption data, for transcript extraction and multilingual content analysis.",
"method": "GET",
"operationId": "getVideoCaptionV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili Video ID (BVID).",
"enumValues": [],
"location": "query",
"name": "bvid",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili AID.",
"enumValues": [],
"location": "query",
"name": "aid",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili CID.",
"enumValues": [],
"location": "query",
"name": "cid",
"required": true,
"schemaType": "string"
}
],
"path": "/api/bilibili/get-video-caption/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Captions",
"tags": [
"Bilibili"
]
},
{
"description": "Get Bilibili video Comments data, including commenter profiles, text, and likes, for sentiment analysis and comment moderation workflows.",
"method": "GET",
"operationId": "getVideoCommentV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili Archive ID (AID).",
"enumValues": [],
"location": "query",
"name": "aid",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Pagination cursor.",
"enumValues": [],
"location": "query",
"name": "cursor",
"required": false,
"schemaType": "string"
}
],
"path": "/api/bilibili/get-video-comment/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Comments",
"tags": [
"Bilibili"
]
},
{
"description": "Get Bilibili video Danmaku data, including timeline positions and comment text, for audience reaction analysis and subtitle-style comment review.",
"method": "GET",
"operationId": "getVideoDanmuV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili Archive ID (AID).",
"enumValues": [],
"location": "query",
"name": "aid",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili Chat ID (CID).",
"enumValues": [],
"location": "query",
"name": "cid",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "string"
}
],
"path": "/api/bilibili/get-video-danmu/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Danmaku",
"tags": [
"Bilibili"
]
},
{
"description": "Get Bilibili video Details data, including metadata (title, tags, and publishing time), for tracking video performance and engagement metrics and analyzing content metadata and uploader information.",
"method": "GET",
"operationId": "getBilibiliVideoDetailV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili Video ID (BVID).",
"enumValues": [],
"location": "query",
"name": "bvid",
"required": true,
"schemaType": "string"
}
],
"path": "/api/bilibili/get-video-detail/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Details",
"tags": [
"Bilibili"
]
},
{
"description": "Get Bilibili video Search data, including matched videos, creators, and engagement metrics, for topic research and content discovery.",
"method": "GET",
"operationId": "searchBilibiliVideoV2",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Search keyword.",
"enumValues": [],
"location": "query",
"name": "keyword",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "general",
"description": "Sorting criteria for search results.\n\nAvailable Values:\n- `general`: General\n- `click`: Most Played\n- `pubdate`: Latest\n- `dm`: Most Danmaku\n- `stow`: Most Favorite",
"enumValues": [
"general",
"click",
"pubdate",
"dm",
"stow"
],
"location": "query",
"name": "order",
"required": false,
"schemaType": "string"
}
],
"path": "/api/bilibili/search-video/v2",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Video Search",
"tags": [
"Bilibili"
]
},
{
"description": "Get Bilibili share Link Resolution data, including resolved video and page identifier, for converting shortened mobile share links to standard bvid/metadata and automating content extraction from shared social media links.",
"method": "GET",
"operationId": "shareBilibiliUrlTransferV1",
"parameters": [
{
"defaultValue": null,
"description": "Access token for the API.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Bilibili share URL (must start with https://b23.tv/).",
"enumValues": [],
"location": "query",
"name": "shareUrl",
"required": true,
"schemaType": "string"
}
],
"path": "/api/bilibili/share-url-transfer/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Share Link Resolution",
"tags": [
"Bilibili"
]
}
],
"platformKey": "bilibili",
"primaryTag": "Bilibili",
"skillName": "justoneapi_bilibili",
"slug": "justoneapi-bilibili",
"sourceTitle": "OpenAPI definition"
}
FILE:generated/operations.md
# Bilibili operations
Generated from JustOneAPI OpenAPI for platform key `bilibili`.
## `getUserDetailV2`
- Method: `GET`
- Path: `/api/bilibili/get-user-detail/v2`
- Summary: User Profile
- Description: Get Bilibili user Profile data, including account metadata, audience metrics, and verification-related fields, for analyzing creator's profile, level, and verification status and verifying user identity and social presence on bilibili.
- Tags: `Bilibili`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for the API. |
| `uid` | `query` | yes | `string` | n/a | Bilibili User ID (UID). |
### Request body
No request body.
### Responses
- `200`: OK
## `getUserRelationStat`
- Method: `GET`
- Path: `/api/bilibili/get-user-relation-stat/v1`
- Summary: User Relation Stats
- Description: Get Bilibili user Relation Stats data, including following counts, for creator benchmarking and audience growth tracking.
- Tags: `Bilibili`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for the API. |
| `wmid` | `query` | yes | `string` | n/a | Bilibili User ID (WMID). |
### Request body
No request body.
### Responses
- `200`: OK
## `getBilibiliUserVideoListV2`
- Method: `GET`
- Path: `/api/bilibili/get-user-video-list/v2`
- Summary: User Published Videos
- Description: Get Bilibili user Published Videos data, including titles, covers, and publish times, for creator monitoring and content performance analysis.
- Tags: `Bilibili`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for the API. |
| `uid` | `query` | yes | `string` | n/a | Bilibili User ID (UID). |
| `param` | `query` | no | `string` | n/a | Pagination parameter from previous response. |
### Request body
No request body.
### Responses
- `200`: OK
## `getVideoCaptionV1`
- Method: `GET`
- Path: `/api/bilibili/get-video-caption/v2`
- Summary: Video Captions
- Description: Get Bilibili video Captions data, including caption data, for transcript extraction and multilingual content analysis.
- Tags: `Bilibili`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for the API. |
| `bvid` | `query` | yes | `string` | n/a | Bilibili Video ID (BVID). |
| `aid` | `query` | yes | `string` | n/a | Bilibili AID. |
| `cid` | `query` | yes | `string` | n/a | Bilibili CID. |
### Request body
No request body.
### Responses
- `200`: OK
## `getVideoCommentV2`
- Method: `GET`
- Path: `/api/bilibili/get-video-comment/v2`
- Summary: Video Comments
- Description: Get Bilibili video Comments data, including commenter profiles, text, and likes, for sentiment analysis and comment moderation workflows.
- Tags: `Bilibili`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for the API. |
| `aid` | `query` | yes | `string` | n/a | Bilibili Archive ID (AID). |
| `cursor` | `query` | no | `string` | n/a | Pagination cursor. |
### Request body
No request body.
### Responses
- `200`: OK
## `getVideoDanmuV2`
- Method: `GET`
- Path: `/api/bilibili/get-video-danmu/v2`
- Summary: Video Danmaku
- Description: Get Bilibili video Danmaku data, including timeline positions and comment text, for audience reaction analysis and subtitle-style comment review.
- Tags: `Bilibili`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for the API. |
| `aid` | `query` | yes | `string` | n/a | Bilibili Archive ID (AID). |
| `cid` | `query` | yes | `string` | n/a | Bilibili Chat ID (CID). |
| `page` | `query` | no | `string` | n/a | Page number for pagination. |
### Request body
No request body.
### Responses
- `200`: OK
## `getBilibiliVideoDetailV2`
- Method: `GET`
- Path: `/api/bilibili/get-video-detail/v2`
- Summary: Video Details
- Description: Get Bilibili video Details data, including metadata (title, tags, and publishing time), for tracking video performance and engagement metrics and analyzing content metadata and uploader information.
- Tags: `Bilibili`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for the API. |
| `bvid` | `query` | yes | `string` | n/a | Bilibili Video ID (BVID). |
### Request body
No request body.
### Responses
- `200`: OK
## `searchBilibiliVideoV2`
- Method: `GET`
- Path: `/api/bilibili/search-video/v2`
- Summary: Video Search
- Description: Get Bilibili video Search data, including matched videos, creators, and engagement metrics, for topic research and content discovery.
- Tags: `Bilibili`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for the API. |
| `keyword` | `query` | yes | `string` | n/a | Search keyword. |
| `page` | `query` | no | `string` | n/a | Page number for pagination. |
| `order` | `query` | no | `string` | `general` | Sorting criteria for search results.
Available Values:
- `general`: General
- `click`: Most Played
- `pubdate`: Latest
- `dm`: Most Danmaku
- `stow`: Most Favorite |
| enum | values | no | n/a | n/a | `general`, `click`, `pubdate`, `dm`, `stow` |
### Request body
No request body.
### Responses
- `200`: OK
## `shareBilibiliUrlTransferV1`
- Method: `GET`
- Path: `/api/bilibili/share-url-transfer/v1`
- Summary: Share Link Resolution
- Description: Get Bilibili share Link Resolution data, including resolved video and page identifier, for converting shortened mobile share links to standard bvid/metadata and automating content extraction from shared social media links.
- Tags: `Bilibili`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Access token for the API. |
| `shareUrl` | `query` | yes | `string` | n/a | Bilibili share URL (must start with https://b23.tv/). |
### Request body
No request body.
### Responses
- `200`: OK
Analyze Beike workflows with JustOneAPI, including resale Housing Details, resale Housing List, and community List.
---
name: Beike API
description: Analyze Beike workflows with JustOneAPI, including resale Housing Details, resale Housing List, and community List.
author: JustOneAPI
homepage: https://api.justoneapi.com
metadata: {"openclaw":{"homepage":"https://api.justoneapi.com","primaryEnv":"JUST_ONE_API_TOKEN","requires":{"bins":["node"],"env":["JUST_ONE_API_TOKEN"]},"skillKey":"justoneapi_beike"}}
---
# Beike
This skill wraps 3 Beike operations exposed by JustOneAPI. It is strongest for resale Housing Details, resale Housing List, and community List. Expect common inputs such as `cityId`, `condition`, `houseCode`, `limitOffset`, `offset`.
## When To Use It
- The user needs resale Housing Details or resale Housing List on Beike.
- The task lines up with community List rather than a generic cross-platform workflow.
- The user can provide identifiers or filters such as `cityId`, `condition`, `houseCode`, `limitOffset`.
- The user wants an exact API-backed answer instead of a freeform summary.
## Representative Operations
- `ershoufangDetailV1`: Resale Housing Details — Get Beike resale Housing Details data, including - Pricing (total and unit price), Physical attributes (area, and layout, for displaying a full property profile to users and detailed price comparison between specific listings
- `getErshoufangListV1`: Resale Housing List — Get Beike resale Housing List data, including - Supports filtering by city/region, price range, and layout, for building search result pages for property portals and aggregating market data for regional housing trends
- `communityListV1`: Community List — Get Beike community List data, including - Community name and unique ID and Average listing price and historical price trends, for identifying popular residential areas in a city and comparing average housing prices across different communities
## Request Pattern
- 3 operations are available in this skill.
- HTTP methods used here: `GET`.
- The most common non-token parameters are `cityId`, `condition`, `houseCode`, `limitOffset`, `offset`.
- All operations in this skill are parameter-driven requests; none require a request body.
## How To Work
1. Read `generated/operations.md` before choosing an endpoint.
2. Start with one of these operations when it matches the user's request: `ershoufangDetailV1`, `getErshoufangListV1`, `communityListV1`.
3. Pick the smallest matching operation instead of guessing.
4. Ask the user for any missing required parameter. Do not invent values.
5. Call the helper with:
```bash
node {baseDir}/bin/run.mjs --operation "<operation-id>" --token "$JUST_ONE_API_TOKEN" --params-json '{"key":"value"}'
```
## Environment
- Required: `JUST_ONE_API_TOKEN`
- This skill uses `JUST_ONE_API_TOKEN` only for authenticated Just One API requests.
- Keep `JUST_ONE_API_TOKEN` private. Do not paste it into chat messages, screenshots, or logs.
- Get a token from [Just One API Dashboard](https://dashboard.justoneapi.com/en/login?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_beike&utm_content=project_link).
- Authentication details: [Just One API Usage Guide](https://docs.justoneapi.com/en/?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_beike&utm_content=project_link).
## Output Rules
- Start with a plain-language answer tied to the Beike task the user asked for.
- Include the most decision-relevant fields from the selected endpoint before dumping raw JSON.
- When using `ershoufangDetailV1`, explain why the returned fields answer the user's question.
- If the user gave filters such as `cityId`, `condition`, `houseCode`, echo those back so the scope is explicit.
- If the backend errors, include the backend payload and the exact operation ID.
FILE:bin/run.mjs
#!/usr/bin/env node
const manifest = {
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Beike workflows with JustOneAPI, including resale Housing Details, resale Housing List, and community List.",
"displayName": "Beike",
"openapi": "3.1.0",
"platformKey": "beike",
"primaryTag": "Beike",
"skillName": "justoneapi_beike",
"slug": "justoneapi-beike",
"sourceTitle": "OpenAPI definition",
"operations": [
{
"description": "Get Beike community List data, including - Community name and unique ID and Average listing price and historical price trends, for identifying popular residential areas in a city and comparing average housing prices across different communities.",
"method": "GET",
"operationId": "communityListV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The ID of the city (e.g., '110000' for Beijing).",
"enumValues": [],
"location": "query",
"name": "cityId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Filter conditions for communities.",
"enumValues": [],
"location": "query",
"name": "condition",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 0,
"description": "Pagination offset, starting from 0 (e.g., 0, 20, 40...).",
"enumValues": [],
"location": "query",
"name": "limitOffset",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/beike/community/list/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Community List",
"tags": [
"Beike"
]
},
{
"description": "Get Beike resale Housing Details data, including - Pricing (total and unit price), Physical attributes (area, and layout, for displaying a full property profile to users and detailed price comparison between specific listings.",
"method": "GET",
"operationId": "ershoufangDetailV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The ID of the city (e.g., '110000' for Beijing).",
"enumValues": [],
"location": "query",
"name": "cityId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique identifier for the property listing.",
"enumValues": [],
"location": "query",
"name": "houseCode",
"required": true,
"schemaType": "string"
}
],
"path": "/api/beike/ershoufang/detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Resale Housing Details",
"tags": [
"Beike"
]
},
{
"description": "Get Beike resale Housing List data, including - Supports filtering by city/region, price range, and layout, for building search result pages for property portals and aggregating market data for regional housing trends.",
"method": "GET",
"operationId": "getErshoufangListV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The ID of the city (e.g., '110000' for Beijing).",
"enumValues": [],
"location": "query",
"name": "cityId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Filter conditions (e.g., region, price range, layout).",
"enumValues": [],
"location": "query",
"name": "condition",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 0,
"description": "Pagination offset, starting from 0 (e.g., 0, 20, 40...).",
"enumValues": [],
"location": "query",
"name": "offset",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/beike/get-ershoufang-list/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Resale Housing List",
"tags": [
"Beike"
]
}
]
};
const args = parseArgs(process.argv.slice(2));
if (!args.operation) {
fail("Missing required --operation argument.");
}
const operation = manifest.operations.find((item) => item.operationId === args.operation);
if (!operation) {
fail(`Unknown operation "args.operation".`, { availableOperations: manifest.operations.map((item) => item.operationId) });
}
const params = parseParams(args.paramsJson);
applyDefaults(operation, params);
injectToken(operation, params, args.token);
validateRequired(operation, params);
const baseUrl = manifest.baseUrl;
const url = new URL(operation.path, ensureBaseUrl(baseUrl));
applyPathParams(operation, params, url);
applyQueryParams(operation, params, url);
const requestInit = {
headers: {
"accept": "application/json",
},
method: operation.method,
};
if (operation.requestBody && params.body !== undefined) {
requestInit.body = JSON.stringify(params.body);
requestInit.headers["content-type"] = operation.requestBody.contentType || "application/json";
}
let response;
try {
response = await fetch(url, requestInit);
} catch (error) {
fail("Network request failed.", {
cause: error instanceof Error ? error.message : String(error),
operationId: operation.operationId,
});
}
const rawBody = await response.text();
let parsedBody;
try {
parsedBody = rawBody ? JSON.parse(rawBody) : null;
} catch (error) {
if (!response.ok) {
fail("Backend returned a non-JSON error response.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
fail("Backend returned invalid JSON.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
if (!response.ok) {
fail("Backend request failed.", {
body: parsedBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
process.stdout.write(`JSON.stringify(parsedBody, null, 2)\n`);
function parseArgs(argv) {
const parsed = { operation: null, paramsJson: "{}", token: null };
for (let index = 0; index < argv.length; index += 1) {
const flag = argv[index];
const value = argv[index + 1];
if (flag === "--operation") {
parsed.operation = value;
index += 1;
continue;
}
if (flag === "--params-json") {
parsed.paramsJson = value;
index += 1;
continue;
}
if (flag === "--token") {
parsed.token = value;
index += 1;
continue;
}
fail(`Unknown argument "flag".`);
}
return parsed;
}
function parseParams(input) {
try {
const parsed = JSON.parse(input || "{}");
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
fail("--params-json must decode to a JSON object.");
}
return parsed;
} catch (error) {
fail("Failed to parse --params-json.", {
cause: error instanceof Error ? error.message : String(error),
});
}
}
function applyDefaults(operation, params) {
for (const parameter of operation.parameters) {
if (params[parameter.name] === undefined && parameter.defaultValue !== null) {
params[parameter.name] = parameter.defaultValue;
}
}
}
function injectToken(operation, params, cliToken) {
const tokenParam = operation.parameters.find((parameter) => parameter.name === "token");
if (!tokenParam || params.token !== undefined) {
return;
}
if (!cliToken) {
fail("--token is required for this operation.", {
operationId: operation.operationId,
});
}
params.token = cliToken;
}
function validateRequired(operation, params) {
const missing = [];
for (const parameter of operation.parameters) {
if (parameter.required && params[parameter.name] === undefined) {
missing.push(parameter.name);
}
}
if (operation.requestBody?.required && params.body === undefined) {
missing.push("body");
}
if (missing.length) {
fail("Missing required parameters.", {
missing,
operationId: operation.operationId,
});
}
}
function applyPathParams(operation, params, url) {
let pathname = url.pathname;
for (const parameter of operation.parameters.filter((item) => item.location === "path")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
pathname = pathname.replace(`{parameter.name}`, encodeURIComponent(String(value)));
}
url.pathname = pathname;
}
function applyQueryParams(operation, params, url) {
for (const parameter of operation.parameters.filter((item) => item.location === "query")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
appendValue(url.searchParams, parameter.name, value);
}
}
function appendValue(searchParams, name, value) {
if (Array.isArray(value)) {
for (const item of value) {
appendValue(searchParams, name, item);
}
return;
}
if (value && typeof value === "object") {
searchParams.append(name, JSON.stringify(value));
return;
}
searchParams.append(name, String(value));
}
function ensureBaseUrl(value) {
return value.endsWith("/") ? value : `value/`;
}
function fail(message, details = null) {
const payload = { message };
if (details) {
payload.details = details;
}
process.stderr.write(`JSON.stringify(payload, null, 2)\n`);
process.exit(1);
}
FILE:generated/operations.json
{
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Beike workflows with JustOneAPI, including resale Housing Details, resale Housing List, and community List.",
"displayName": "Beike",
"openapi": "3.1.0",
"operations": [
{
"description": "Get Beike community List data, including - Community name and unique ID and Average listing price and historical price trends, for identifying popular residential areas in a city and comparing average housing prices across different communities.",
"method": "GET",
"operationId": "communityListV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The ID of the city (e.g., '110000' for Beijing).",
"enumValues": [],
"location": "query",
"name": "cityId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Filter conditions for communities.",
"enumValues": [],
"location": "query",
"name": "condition",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 0,
"description": "Pagination offset, starting from 0 (e.g., 0, 20, 40...).",
"enumValues": [],
"location": "query",
"name": "limitOffset",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/beike/community/list/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Community List",
"tags": [
"Beike"
]
},
{
"description": "Get Beike resale Housing Details data, including - Pricing (total and unit price), Physical attributes (area, and layout, for displaying a full property profile to users and detailed price comparison between specific listings.",
"method": "GET",
"operationId": "ershoufangDetailV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The ID of the city (e.g., '110000' for Beijing).",
"enumValues": [],
"location": "query",
"name": "cityId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The unique identifier for the property listing.",
"enumValues": [],
"location": "query",
"name": "houseCode",
"required": true,
"schemaType": "string"
}
],
"path": "/api/beike/ershoufang/detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Resale Housing Details",
"tags": [
"Beike"
]
},
{
"description": "Get Beike resale Housing List data, including - Supports filtering by city/region, price range, and layout, for building search result pages for property portals and aggregating market data for regional housing trends.",
"method": "GET",
"operationId": "getErshoufangListV1",
"parameters": [
{
"defaultValue": null,
"description": "User authentication token.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "The ID of the city (e.g., '110000' for Beijing).",
"enumValues": [],
"location": "query",
"name": "cityId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "",
"description": "Filter conditions (e.g., region, price range, layout).",
"enumValues": [],
"location": "query",
"name": "condition",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 0,
"description": "Pagination offset, starting from 0 (e.g., 0, 20, 40...).",
"enumValues": [],
"location": "query",
"name": "offset",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/beike/get-ershoufang-list/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Resale Housing List",
"tags": [
"Beike"
]
}
],
"platformKey": "beike",
"primaryTag": "Beike",
"skillName": "justoneapi_beike",
"slug": "justoneapi-beike",
"sourceTitle": "OpenAPI definition"
}
FILE:generated/operations.md
# Beike operations
Generated from JustOneAPI OpenAPI for platform key `beike`.
## `communityListV1`
- Method: `GET`
- Path: `/api/beike/community/list/v1`
- Summary: Community List
- Description: Get Beike community List data, including - Community name and unique ID and Average listing price and historical price trends, for identifying popular residential areas in a city and comparing average housing prices across different communities.
- Tags: `Beike`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `cityId` | `query` | yes | `string` | n/a | The ID of the city (e.g., '110000' for Beijing). |
| `condition` | `query` | no | `string` | n/a | Filter conditions for communities. |
| `limitOffset` | `query` | no | `integer` | `0` | Pagination offset, starting from 0 (e.g., 0, 20, 40...). |
### Request body
No request body.
### Responses
- `200`: OK
## `ershoufangDetailV1`
- Method: `GET`
- Path: `/api/beike/ershoufang/detail/v1`
- Summary: Resale Housing Details
- Description: Get Beike resale Housing Details data, including - Pricing (total and unit price), Physical attributes (area, and layout, for displaying a full property profile to users and detailed price comparison between specific listings.
- Tags: `Beike`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `cityId` | `query` | yes | `string` | n/a | The ID of the city (e.g., '110000' for Beijing). |
| `houseCode` | `query` | yes | `string` | n/a | The unique identifier for the property listing. |
### Request body
No request body.
### Responses
- `200`: OK
## `getErshoufangListV1`
- Method: `GET`
- Path: `/api/beike/get-ershoufang-list/v1`
- Summary: Resale Housing List
- Description: Get Beike resale Housing List data, including - Supports filtering by city/region, price range, and layout, for building search result pages for property portals and aggregating market data for regional housing trends.
- Tags: `Beike`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | User authentication token. |
| `cityId` | `query` | yes | `string` | n/a | The ID of the city (e.g., '110000' for Beijing). |
| `condition` | `query` | no | `string` | n/a | Filter conditions (e.g., region, price range, layout). |
| `offset` | `query` | no | `integer` | `0` | Pagination offset, starting from 0 (e.g., 0, 20, 40...). |
### Request body
No request body.
### Responses
- `200`: OK
Analyze Amazon workflows with JustOneAPI, including product Details, product Top Reviews, and best Sellers across 4 operations.
---
name: Amazon API
description: Analyze Amazon workflows with JustOneAPI, including product Details, product Top Reviews, and best Sellers across 4 operations.
author: JustOneAPI
homepage: https://api.justoneapi.com
metadata: {"openclaw":{"homepage":"https://api.justoneapi.com","primaryEnv":"JUST_ONE_API_TOKEN","requires":{"bins":["node"],"env":["JUST_ONE_API_TOKEN"]},"skillKey":"justoneapi_amazon"}}
---
# Amazon
This skill wraps 4 Amazon operations exposed by JustOneAPI. It is strongest for product Details, product Top Reviews, best Sellers, and products By Category. Expect common inputs such as `country`, `asin`, `page`, `category`, `categoryId`.
## When To Use It
- The user needs product Details or product Top Reviews on Amazon.
- The task lines up with best Sellers rather than a generic cross-platform workflow.
- The user can provide identifiers or filters such as `country`, `asin`, `page`, `category`.
- The user wants an exact API-backed answer instead of a freeform summary.
## Representative Operations
- `getAmazonProductDetailV1`: Product Details — Get Amazon product Details data, including title, brand, and price, for building product catalogs and enriching item content (e.g., images), price monitoring and availability tracking, and e-commerce analytics and competitor tracking
- `getProductTopReviewsV1`: Product Top Reviews — Get Amazon product Top Reviews data, including most helpful) public reviews, for sentiment analysis and consumer feedback tracking, product research and quality assessment, and monitoring competitor customer experience
- `getBestSellersV1`: Best Sellers — Get Amazon best Sellers data, including rank positions, product metadata, and pricing, for identifying trending products in specific categories, market share analysis and category research, and tracking sales rank and popularity over time
- `getProductsByCategoryV1`: Products By Category — Get Amazon products By Category data, including title, price, and rating, for category-based product discovery and returns product information such as title, price, and rating
## Request Pattern
- 4 operations are available in this skill.
- HTTP methods used here: `GET`.
- The most common non-token parameters are `country`, `asin`, `page`, `category`, `categoryId`.
- All operations in this skill are parameter-driven requests; none require a request body.
## How To Work
1. Read `generated/operations.md` before choosing an endpoint.
2. Start with one of these operations when it matches the user's request: `getAmazonProductDetailV1`, `getProductTopReviewsV1`, `getBestSellersV1`, `getProductsByCategoryV1`.
3. Pick the smallest matching operation instead of guessing.
4. Ask the user for any missing required parameter. Do not invent values.
5. Call the helper with:
```bash
node {baseDir}/bin/run.mjs --operation "<operation-id>" --token "$JUST_ONE_API_TOKEN" --params-json '{"key":"value"}'
```
## Environment
- Required: `JUST_ONE_API_TOKEN`
- This skill uses `JUST_ONE_API_TOKEN` only for authenticated Just One API requests.
- Keep `JUST_ONE_API_TOKEN` private. Do not paste it into chat messages, screenshots, or logs.
- Get a token from [Just One API Dashboard](https://dashboard.justoneapi.com/en/login?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_amazon&utm_content=project_link).
- Authentication details: [Just One API Usage Guide](https://docs.justoneapi.com/en/?utm_source=clawhub.ai&utm_medium=referral&utm_campaign=justoneapi_amazon&utm_content=project_link).
## Output Rules
- Start with a plain-language answer tied to the Amazon task the user asked for.
- Include the most decision-relevant fields from the selected endpoint before dumping raw JSON.
- When using `getAmazonProductDetailV1`, explain why the returned fields answer the user's question.
- If the user gave filters such as `country`, `asin`, `page`, echo those back so the scope is explicit.
- If the backend errors, include the backend payload and the exact operation ID.
FILE:bin/run.mjs
#!/usr/bin/env node
const manifest = {
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Amazon workflows with JustOneAPI, including product Details, product Top Reviews, and best Sellers across 4 operations.",
"displayName": "Amazon",
"openapi": "3.1.0",
"platformKey": "amazon",
"primaryTag": "Amazon",
"skillName": "justoneapi_amazon",
"slug": "justoneapi-amazon",
"sourceTitle": "OpenAPI definition",
"operations": [
{
"description": "Get Amazon best Sellers data, including rank positions, product metadata, and pricing, for identifying trending products in specific categories, market share analysis and category research, and tracking sales rank and popularity over time.",
"method": "GET",
"operationId": "getBestSellersV1",
"parameters": [
{
"defaultValue": null,
"description": "Authentication token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Best sellers category to return products for (e.g. 'baby-products' or 'baby-products/166777011'). The value is derived from the URL path of the Amazon Best Sellers page, such as: https://www.amazon.com/Best-Sellers-Baby-Baby-Toddler-Feeding-Supplies/zgbs/baby-products/166777011",
"enumValues": [],
"location": "query",
"name": "category",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "US",
"description": "Country code for the Amazon product.\n\nAvailable Values:\n- `US`: United States\n- `AU`: Australia\n- `BR`: Brazil\n- `CA`: Canada\n- `CN`: China\n- `FR`: France\n- `DE`: Germany\n- `IN`: India\n- `IT`: Italy\n- `MX`: Mexico\n- `NL`: Netherlands\n- `SG`: Singapore\n- `ES`: Spain\n- `TR`: Turkey\n- `AE`: United Arab Emirates\n- `GB`: United Kingdom\n- `JP`: Japan\n- `SA`: Saudi Arabia\n- `PL`: Poland\n- `SE`: Sweden\n- `BE`: Belgium\n- `EG`: Egypt\n- `ZA`: South Africa\n- `IE`: Ireland",
"enumValues": [
"US",
"AU",
"BR",
"CA",
"CN",
"FR",
"DE",
"IN",
"IT",
"MX",
"NL",
"SG",
"ES",
"TR",
"AE",
"GB",
"JP",
"SA",
"PL",
"SE",
"BE",
"EG",
"ZA",
"IE"
],
"location": "query",
"name": "country",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/amazon/get-best-sellers/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Best Sellers",
"tags": [
"Amazon"
]
},
{
"description": "Get Amazon products By Category data, including title, price, and rating, for category-based product discovery and returns product information such as title, price, and rating.",
"method": "GET",
"operationId": "getProductsByCategoryV1",
"parameters": [
{
"defaultValue": null,
"description": "Authentication token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "For example: https://amazon.com/s?node=172282 - the Amazon Category ID is 172282",
"enumValues": [],
"location": "query",
"name": "categoryId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "US",
"description": "Country code for the Amazon product.\n\nAvailable Values:\n- `US`: United States\n- `AU`: Australia\n- `BR`: Brazil\n- `CA`: Canada\n- `CN`: China\n- `FR`: France\n- `DE`: Germany\n- `IN`: India\n- `IT`: Italy\n- `MX`: Mexico\n- `NL`: Netherlands\n- `SG`: Singapore\n- `ES`: Spain\n- `TR`: Turkey\n- `AE`: United Arab Emirates\n- `GB`: United Kingdom\n- `JP`: Japan\n- `SA`: Saudi Arabia\n- `PL`: Poland\n- `SE`: Sweden\n- `BE`: Belgium\n- `EG`: Egypt\n- `ZA`: South Africa\n- `IE`: Ireland",
"enumValues": [
"US",
"AU",
"BR",
"CA",
"CN",
"FR",
"DE",
"IN",
"IT",
"MX",
"NL",
"SG",
"ES",
"TR",
"AE",
"GB",
"JP",
"SA",
"PL",
"SE",
"BE",
"EG",
"ZA",
"IE"
],
"location": "query",
"name": "country",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "RELEVANCE",
"description": "Sort by.\n\nAvailable Values:\n- `RELEVANCE`: Relevance\n- `LOWEST_PRICE`: Lowest Price\n- `HIGHEST_PRICE`: Highest Price\n- `REVIEWS`: Reviews\n- `NEWEST`: Newest\n- `BEST_SELLERS`: Best Sellers",
"enumValues": [
"RELEVANCE",
"LOWEST_PRICE",
"HIGHEST_PRICE",
"REVIEWS",
"NEWEST",
"BEST_SELLERS"
],
"location": "query",
"name": "sortBy",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/amazon/get-category-products/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Products By Category",
"tags": [
"Amazon"
]
},
{
"description": "Get Amazon product Details data, including title, brand, and price, for building product catalogs and enriching item content (e.g., images), price monitoring and availability tracking, and e-commerce analytics and competitor tracking.",
"method": "GET",
"operationId": "getAmazonProductDetailV1",
"parameters": [
{
"defaultValue": null,
"description": "Authentication token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "ASIN (Amazon Standard Identification Number).",
"enumValues": [],
"location": "query",
"name": "asin",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "US",
"description": "Country code for the Amazon product.\n\nAvailable Values:\n- `US`: United States\n- `AU`: Australia\n- `BR`: Brazil\n- `CA`: Canada\n- `CN`: China\n- `FR`: France\n- `DE`: Germany\n- `IN`: India\n- `IT`: Italy\n- `MX`: Mexico\n- `NL`: Netherlands\n- `SG`: Singapore\n- `ES`: Spain\n- `TR`: Turkey\n- `AE`: United Arab Emirates\n- `GB`: United Kingdom\n- `JP`: Japan\n- `SA`: Saudi Arabia\n- `PL`: Poland\n- `SE`: Sweden\n- `BE`: Belgium\n- `EG`: Egypt\n- `ZA`: South Africa\n- `IE`: Ireland",
"enumValues": [
"US",
"AU",
"BR",
"CA",
"CN",
"FR",
"DE",
"IN",
"IT",
"MX",
"NL",
"SG",
"ES",
"TR",
"AE",
"GB",
"JP",
"SA",
"PL",
"SE",
"BE",
"EG",
"ZA",
"IE"
],
"location": "query",
"name": "country",
"required": false,
"schemaType": "string"
}
],
"path": "/api/amazon/get-product-detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Product Details",
"tags": [
"Amazon"
]
},
{
"description": "Get Amazon product Top Reviews data, including most helpful) public reviews, for sentiment analysis and consumer feedback tracking, product research and quality assessment, and monitoring competitor customer experience.",
"method": "GET",
"operationId": "getProductTopReviewsV1",
"parameters": [
{
"defaultValue": null,
"description": "Authentication token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "ASIN (Amazon Standard Identification Number).",
"enumValues": [],
"location": "query",
"name": "asin",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "US",
"description": "Country code for the Amazon product.\n\nAvailable Values:\n- `US`: United States\n- `AU`: Australia\n- `BR`: Brazil\n- `CA`: Canada\n- `CN`: China\n- `FR`: France\n- `DE`: Germany\n- `IN`: India\n- `IT`: Italy\n- `MX`: Mexico\n- `NL`: Netherlands\n- `SG`: Singapore\n- `ES`: Spain\n- `TR`: Turkey\n- `AE`: United Arab Emirates\n- `GB`: United Kingdom\n- `JP`: Japan\n- `SA`: Saudi Arabia\n- `PL`: Poland\n- `SE`: Sweden\n- `BE`: Belgium\n- `EG`: Egypt\n- `ZA`: South Africa\n- `IE`: Ireland",
"enumValues": [
"US",
"AU",
"BR",
"CA",
"CN",
"FR",
"DE",
"IN",
"IT",
"MX",
"NL",
"SG",
"ES",
"TR",
"AE",
"GB",
"JP",
"SA",
"PL",
"SE",
"BE",
"EG",
"ZA",
"IE"
],
"location": "query",
"name": "country",
"required": false,
"schemaType": "string"
}
],
"path": "/api/amazon/get-product-top-reviews/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Product Top Reviews",
"tags": [
"Amazon"
]
}
]
};
const args = parseArgs(process.argv.slice(2));
if (!args.operation) {
fail("Missing required --operation argument.");
}
const operation = manifest.operations.find((item) => item.operationId === args.operation);
if (!operation) {
fail(`Unknown operation "args.operation".`, { availableOperations: manifest.operations.map((item) => item.operationId) });
}
const params = parseParams(args.paramsJson);
applyDefaults(operation, params);
injectToken(operation, params, args.token);
validateRequired(operation, params);
const baseUrl = manifest.baseUrl;
const url = new URL(operation.path, ensureBaseUrl(baseUrl));
applyPathParams(operation, params, url);
applyQueryParams(operation, params, url);
const requestInit = {
headers: {
"accept": "application/json",
},
method: operation.method,
};
if (operation.requestBody && params.body !== undefined) {
requestInit.body = JSON.stringify(params.body);
requestInit.headers["content-type"] = operation.requestBody.contentType || "application/json";
}
let response;
try {
response = await fetch(url, requestInit);
} catch (error) {
fail("Network request failed.", {
cause: error instanceof Error ? error.message : String(error),
operationId: operation.operationId,
});
}
const rawBody = await response.text();
let parsedBody;
try {
parsedBody = rawBody ? JSON.parse(rawBody) : null;
} catch (error) {
if (!response.ok) {
fail("Backend returned a non-JSON error response.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
fail("Backend returned invalid JSON.", {
body: rawBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
if (!response.ok) {
fail("Backend request failed.", {
body: parsedBody,
operationId: operation.operationId,
status: response.status,
statusText: response.statusText,
});
}
process.stdout.write(`JSON.stringify(parsedBody, null, 2)\n`);
function parseArgs(argv) {
const parsed = { operation: null, paramsJson: "{}", token: null };
for (let index = 0; index < argv.length; index += 1) {
const flag = argv[index];
const value = argv[index + 1];
if (flag === "--operation") {
parsed.operation = value;
index += 1;
continue;
}
if (flag === "--params-json") {
parsed.paramsJson = value;
index += 1;
continue;
}
if (flag === "--token") {
parsed.token = value;
index += 1;
continue;
}
fail(`Unknown argument "flag".`);
}
return parsed;
}
function parseParams(input) {
try {
const parsed = JSON.parse(input || "{}");
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
fail("--params-json must decode to a JSON object.");
}
return parsed;
} catch (error) {
fail("Failed to parse --params-json.", {
cause: error instanceof Error ? error.message : String(error),
});
}
}
function applyDefaults(operation, params) {
for (const parameter of operation.parameters) {
if (params[parameter.name] === undefined && parameter.defaultValue !== null) {
params[parameter.name] = parameter.defaultValue;
}
}
}
function injectToken(operation, params, cliToken) {
const tokenParam = operation.parameters.find((parameter) => parameter.name === "token");
if (!tokenParam || params.token !== undefined) {
return;
}
if (!cliToken) {
fail("--token is required for this operation.", {
operationId: operation.operationId,
});
}
params.token = cliToken;
}
function validateRequired(operation, params) {
const missing = [];
for (const parameter of operation.parameters) {
if (parameter.required && params[parameter.name] === undefined) {
missing.push(parameter.name);
}
}
if (operation.requestBody?.required && params.body === undefined) {
missing.push("body");
}
if (missing.length) {
fail("Missing required parameters.", {
missing,
operationId: operation.operationId,
});
}
}
function applyPathParams(operation, params, url) {
let pathname = url.pathname;
for (const parameter of operation.parameters.filter((item) => item.location === "path")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
pathname = pathname.replace(`{parameter.name}`, encodeURIComponent(String(value)));
}
url.pathname = pathname;
}
function applyQueryParams(operation, params, url) {
for (const parameter of operation.parameters.filter((item) => item.location === "query")) {
const value = params[parameter.name];
if (value === undefined) {
continue;
}
appendValue(url.searchParams, parameter.name, value);
}
}
function appendValue(searchParams, name, value) {
if (Array.isArray(value)) {
for (const item of value) {
appendValue(searchParams, name, item);
}
return;
}
if (value && typeof value === "object") {
searchParams.append(name, JSON.stringify(value));
return;
}
searchParams.append(name, String(value));
}
function ensureBaseUrl(value) {
return value.endsWith("/") ? value : `value/`;
}
function fail(message, details = null) {
const payload = { message };
if (details) {
payload.details = details;
}
process.stderr.write(`JSON.stringify(payload, null, 2)\n`);
process.exit(1);
}
FILE:generated/operations.json
{
"baseUrl": "https://api.justoneapi.com",
"description": "Analyze Amazon workflows with JustOneAPI, including product Details, product Top Reviews, and best Sellers across 4 operations.",
"displayName": "Amazon",
"openapi": "3.1.0",
"operations": [
{
"description": "Get Amazon best Sellers data, including rank positions, product metadata, and pricing, for identifying trending products in specific categories, market share analysis and category research, and tracking sales rank and popularity over time.",
"method": "GET",
"operationId": "getBestSellersV1",
"parameters": [
{
"defaultValue": null,
"description": "Authentication token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "Best sellers category to return products for (e.g. 'baby-products' or 'baby-products/166777011'). The value is derived from the URL path of the Amazon Best Sellers page, such as: https://www.amazon.com/Best-Sellers-Baby-Baby-Toddler-Feeding-Supplies/zgbs/baby-products/166777011",
"enumValues": [],
"location": "query",
"name": "category",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "US",
"description": "Country code for the Amazon product.\n\nAvailable Values:\n- `US`: United States\n- `AU`: Australia\n- `BR`: Brazil\n- `CA`: Canada\n- `CN`: China\n- `FR`: France\n- `DE`: Germany\n- `IN`: India\n- `IT`: Italy\n- `MX`: Mexico\n- `NL`: Netherlands\n- `SG`: Singapore\n- `ES`: Spain\n- `TR`: Turkey\n- `AE`: United Arab Emirates\n- `GB`: United Kingdom\n- `JP`: Japan\n- `SA`: Saudi Arabia\n- `PL`: Poland\n- `SE`: Sweden\n- `BE`: Belgium\n- `EG`: Egypt\n- `ZA`: South Africa\n- `IE`: Ireland",
"enumValues": [
"US",
"AU",
"BR",
"CA",
"CN",
"FR",
"DE",
"IN",
"IT",
"MX",
"NL",
"SG",
"ES",
"TR",
"AE",
"GB",
"JP",
"SA",
"PL",
"SE",
"BE",
"EG",
"ZA",
"IE"
],
"location": "query",
"name": "country",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/amazon/get-best-sellers/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Best Sellers",
"tags": [
"Amazon"
]
},
{
"description": "Get Amazon products By Category data, including title, price, and rating, for category-based product discovery and returns product information such as title, price, and rating.",
"method": "GET",
"operationId": "getProductsByCategoryV1",
"parameters": [
{
"defaultValue": null,
"description": "Authentication token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "For example: https://amazon.com/s?node=172282 - the Amazon Category ID is 172282",
"enumValues": [],
"location": "query",
"name": "categoryId",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "US",
"description": "Country code for the Amazon product.\n\nAvailable Values:\n- `US`: United States\n- `AU`: Australia\n- `BR`: Brazil\n- `CA`: Canada\n- `CN`: China\n- `FR`: France\n- `DE`: Germany\n- `IN`: India\n- `IT`: Italy\n- `MX`: Mexico\n- `NL`: Netherlands\n- `SG`: Singapore\n- `ES`: Spain\n- `TR`: Turkey\n- `AE`: United Arab Emirates\n- `GB`: United Kingdom\n- `JP`: Japan\n- `SA`: Saudi Arabia\n- `PL`: Poland\n- `SE`: Sweden\n- `BE`: Belgium\n- `EG`: Egypt\n- `ZA`: South Africa\n- `IE`: Ireland",
"enumValues": [
"US",
"AU",
"BR",
"CA",
"CN",
"FR",
"DE",
"IN",
"IT",
"MX",
"NL",
"SG",
"ES",
"TR",
"AE",
"GB",
"JP",
"SA",
"PL",
"SE",
"BE",
"EG",
"ZA",
"IE"
],
"location": "query",
"name": "country",
"required": false,
"schemaType": "string"
},
{
"defaultValue": "RELEVANCE",
"description": "Sort by.\n\nAvailable Values:\n- `RELEVANCE`: Relevance\n- `LOWEST_PRICE`: Lowest Price\n- `HIGHEST_PRICE`: Highest Price\n- `REVIEWS`: Reviews\n- `NEWEST`: Newest\n- `BEST_SELLERS`: Best Sellers",
"enumValues": [
"RELEVANCE",
"LOWEST_PRICE",
"HIGHEST_PRICE",
"REVIEWS",
"NEWEST",
"BEST_SELLERS"
],
"location": "query",
"name": "sortBy",
"required": false,
"schemaType": "string"
},
{
"defaultValue": 1,
"description": "Page number for pagination.",
"enumValues": [],
"location": "query",
"name": "page",
"required": false,
"schemaType": "integer"
}
],
"path": "/api/amazon/get-category-products/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Products By Category",
"tags": [
"Amazon"
]
},
{
"description": "Get Amazon product Details data, including title, brand, and price, for building product catalogs and enriching item content (e.g., images), price monitoring and availability tracking, and e-commerce analytics and competitor tracking.",
"method": "GET",
"operationId": "getAmazonProductDetailV1",
"parameters": [
{
"defaultValue": null,
"description": "Authentication token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "ASIN (Amazon Standard Identification Number).",
"enumValues": [],
"location": "query",
"name": "asin",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "US",
"description": "Country code for the Amazon product.\n\nAvailable Values:\n- `US`: United States\n- `AU`: Australia\n- `BR`: Brazil\n- `CA`: Canada\n- `CN`: China\n- `FR`: France\n- `DE`: Germany\n- `IN`: India\n- `IT`: Italy\n- `MX`: Mexico\n- `NL`: Netherlands\n- `SG`: Singapore\n- `ES`: Spain\n- `TR`: Turkey\n- `AE`: United Arab Emirates\n- `GB`: United Kingdom\n- `JP`: Japan\n- `SA`: Saudi Arabia\n- `PL`: Poland\n- `SE`: Sweden\n- `BE`: Belgium\n- `EG`: Egypt\n- `ZA`: South Africa\n- `IE`: Ireland",
"enumValues": [
"US",
"AU",
"BR",
"CA",
"CN",
"FR",
"DE",
"IN",
"IT",
"MX",
"NL",
"SG",
"ES",
"TR",
"AE",
"GB",
"JP",
"SA",
"PL",
"SE",
"BE",
"EG",
"ZA",
"IE"
],
"location": "query",
"name": "country",
"required": false,
"schemaType": "string"
}
],
"path": "/api/amazon/get-product-detail/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Product Details",
"tags": [
"Amazon"
]
},
{
"description": "Get Amazon product Top Reviews data, including most helpful) public reviews, for sentiment analysis and consumer feedback tracking, product research and quality assessment, and monitoring competitor customer experience.",
"method": "GET",
"operationId": "getProductTopReviewsV1",
"parameters": [
{
"defaultValue": null,
"description": "Authentication token for this API service.",
"enumValues": [],
"location": "query",
"name": "token",
"required": true,
"schemaType": "string"
},
{
"defaultValue": null,
"description": "ASIN (Amazon Standard Identification Number).",
"enumValues": [],
"location": "query",
"name": "asin",
"required": true,
"schemaType": "string"
},
{
"defaultValue": "US",
"description": "Country code for the Amazon product.\n\nAvailable Values:\n- `US`: United States\n- `AU`: Australia\n- `BR`: Brazil\n- `CA`: Canada\n- `CN`: China\n- `FR`: France\n- `DE`: Germany\n- `IN`: India\n- `IT`: Italy\n- `MX`: Mexico\n- `NL`: Netherlands\n- `SG`: Singapore\n- `ES`: Spain\n- `TR`: Turkey\n- `AE`: United Arab Emirates\n- `GB`: United Kingdom\n- `JP`: Japan\n- `SA`: Saudi Arabia\n- `PL`: Poland\n- `SE`: Sweden\n- `BE`: Belgium\n- `EG`: Egypt\n- `ZA`: South Africa\n- `IE`: Ireland",
"enumValues": [
"US",
"AU",
"BR",
"CA",
"CN",
"FR",
"DE",
"IN",
"IT",
"MX",
"NL",
"SG",
"ES",
"TR",
"AE",
"GB",
"JP",
"SA",
"PL",
"SE",
"BE",
"EG",
"ZA",
"IE"
],
"location": "query",
"name": "country",
"required": false,
"schemaType": "string"
}
],
"path": "/api/amazon/get-product-top-reviews/v1",
"requestBody": null,
"responses": [
{
"description": "OK",
"statusCode": "200"
}
],
"summary": "Product Top Reviews",
"tags": [
"Amazon"
]
}
],
"platformKey": "amazon",
"primaryTag": "Amazon",
"skillName": "justoneapi_amazon",
"slug": "justoneapi-amazon",
"sourceTitle": "OpenAPI definition"
}
FILE:generated/operations.md
# Amazon operations
Generated from JustOneAPI OpenAPI for platform key `amazon`.
## `getBestSellersV1`
- Method: `GET`
- Path: `/api/amazon/get-best-sellers/v1`
- Summary: Best Sellers
- Description: Get Amazon best Sellers data, including rank positions, product metadata, and pricing, for identifying trending products in specific categories, market share analysis and category research, and tracking sales rank and popularity over time.
- Tags: `Amazon`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Authentication token for this API service. |
| `category` | `query` | yes | `string` | n/a | Best sellers category to return products for (e.g. 'baby-products' or 'baby-products/166777011'). The value is derived from the URL path of the Amazon Best Sellers page, such as: https://www.amazon.com/Best-Sellers-Baby-Baby-Toddler-Feeding-Supplies/zgbs/baby-products/166777011 |
| `country` | `query` | no | `string` | `US` | Country code for the Amazon product.
Available Values:
- `US`: United States
- `AU`: Australia
- `BR`: Brazil
- `CA`: Canada
- `CN`: China
- `FR`: France
- `DE`: Germany
- `IN`: India
- `IT`: Italy
- `MX`: Mexico
- `NL`: Netherlands
- `SG`: Singapore
- `ES`: Spain
- `TR`: Turkey
- `AE`: United Arab Emirates
- `GB`: United Kingdom
- `JP`: Japan
- `SA`: Saudi Arabia
- `PL`: Poland
- `SE`: Sweden
- `BE`: Belgium
- `EG`: Egypt
- `ZA`: South Africa
- `IE`: Ireland |
| enum | values | no | n/a | n/a | `US`, `AU`, `BR`, `CA`, `CN`, `FR`, `DE`, `IN`, `IT`, `MX`, `NL`, `SG`, `ES`, `TR`, `AE`, `GB`, `JP`, `SA`, `PL`, `SE`, `BE`, `EG`, `ZA`, `IE` |
| `page` | `query` | no | `integer` | `1` | Page number for pagination. |
### Request body
No request body.
### Responses
- `200`: OK
## `getProductsByCategoryV1`
- Method: `GET`
- Path: `/api/amazon/get-category-products/v1`
- Summary: Products By Category
- Description: Get Amazon products By Category data, including title, price, and rating, for category-based product discovery and returns product information such as title, price, and rating.
- Tags: `Amazon`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Authentication token for this API service. |
| `categoryId` | `query` | yes | `string` | n/a | For example: https://amazon.com/s?node=172282 - the Amazon Category ID is 172282 |
| `country` | `query` | no | `string` | `US` | Country code for the Amazon product.
Available Values:
- `US`: United States
- `AU`: Australia
- `BR`: Brazil
- `CA`: Canada
- `CN`: China
- `FR`: France
- `DE`: Germany
- `IN`: India
- `IT`: Italy
- `MX`: Mexico
- `NL`: Netherlands
- `SG`: Singapore
- `ES`: Spain
- `TR`: Turkey
- `AE`: United Arab Emirates
- `GB`: United Kingdom
- `JP`: Japan
- `SA`: Saudi Arabia
- `PL`: Poland
- `SE`: Sweden
- `BE`: Belgium
- `EG`: Egypt
- `ZA`: South Africa
- `IE`: Ireland |
| enum | values | no | n/a | n/a | `US`, `AU`, `BR`, `CA`, `CN`, `FR`, `DE`, `IN`, `IT`, `MX`, `NL`, `SG`, `ES`, `TR`, `AE`, `GB`, `JP`, `SA`, `PL`, `SE`, `BE`, `EG`, `ZA`, `IE` |
| `sortBy` | `query` | no | `string` | `RELEVANCE` | Sort by.
Available Values:
- `RELEVANCE`: Relevance
- `LOWEST_PRICE`: Lowest Price
- `HIGHEST_PRICE`: Highest Price
- `REVIEWS`: Reviews
- `NEWEST`: Newest
- `BEST_SELLERS`: Best Sellers |
| enum | values | no | n/a | n/a | `RELEVANCE`, `LOWEST_PRICE`, `HIGHEST_PRICE`, `REVIEWS`, `NEWEST`, `BEST_SELLERS` |
| `page` | `query` | no | `integer` | `1` | Page number for pagination. |
### Request body
No request body.
### Responses
- `200`: OK
## `getAmazonProductDetailV1`
- Method: `GET`
- Path: `/api/amazon/get-product-detail/v1`
- Summary: Product Details
- Description: Get Amazon product Details data, including title, brand, and price, for building product catalogs and enriching item content (e.g., images), price monitoring and availability tracking, and e-commerce analytics and competitor tracking.
- Tags: `Amazon`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Authentication token for this API service. |
| `asin` | `query` | yes | `string` | n/a | ASIN (Amazon Standard Identification Number). |
| `country` | `query` | no | `string` | `US` | Country code for the Amazon product.
Available Values:
- `US`: United States
- `AU`: Australia
- `BR`: Brazil
- `CA`: Canada
- `CN`: China
- `FR`: France
- `DE`: Germany
- `IN`: India
- `IT`: Italy
- `MX`: Mexico
- `NL`: Netherlands
- `SG`: Singapore
- `ES`: Spain
- `TR`: Turkey
- `AE`: United Arab Emirates
- `GB`: United Kingdom
- `JP`: Japan
- `SA`: Saudi Arabia
- `PL`: Poland
- `SE`: Sweden
- `BE`: Belgium
- `EG`: Egypt
- `ZA`: South Africa
- `IE`: Ireland |
| enum | values | no | n/a | n/a | `US`, `AU`, `BR`, `CA`, `CN`, `FR`, `DE`, `IN`, `IT`, `MX`, `NL`, `SG`, `ES`, `TR`, `AE`, `GB`, `JP`, `SA`, `PL`, `SE`, `BE`, `EG`, `ZA`, `IE` |
### Request body
No request body.
### Responses
- `200`: OK
## `getProductTopReviewsV1`
- Method: `GET`
- Path: `/api/amazon/get-product-top-reviews/v1`
- Summary: Product Top Reviews
- Description: Get Amazon product Top Reviews data, including most helpful) public reviews, for sentiment analysis and consumer feedback tracking, product research and quality assessment, and monitoring competitor customer experience.
- Tags: `Amazon`
### Parameters
| Name | In | Required | Type | Default | Description |
| --- | --- | --- | --- | --- | --- |
| `token` | `query` | yes | `string` | n/a | Authentication token for this API service. |
| `asin` | `query` | yes | `string` | n/a | ASIN (Amazon Standard Identification Number). |
| `country` | `query` | no | `string` | `US` | Country code for the Amazon product.
Available Values:
- `US`: United States
- `AU`: Australia
- `BR`: Brazil
- `CA`: Canada
- `CN`: China
- `FR`: France
- `DE`: Germany
- `IN`: India
- `IT`: Italy
- `MX`: Mexico
- `NL`: Netherlands
- `SG`: Singapore
- `ES`: Spain
- `TR`: Turkey
- `AE`: United Arab Emirates
- `GB`: United Kingdom
- `JP`: Japan
- `SA`: Saudi Arabia
- `PL`: Poland
- `SE`: Sweden
- `BE`: Belgium
- `EG`: Egypt
- `ZA`: South Africa
- `IE`: Ireland |
| enum | values | no | n/a | n/a | `US`, `AU`, `BR`, `CA`, `CN`, `FR`, `DE`, `IN`, `IT`, `MX`, `NL`, `SG`, `ES`, `TR`, `AE`, `GB`, `JP`, `SA`, `PL`, `SE`, `BE`, `EG`, `ZA`, `IE` |
### Request body
No request body.
### Responses
- `200`: OK