openapi: 3.2.0 info: description: Read public social data through one API contract. API keys starting with oh_test_ use the deterministic synthetic dataset and record a $0.000 actual charge. Keys starting with oh_live_, plus legacy oh_ keys, use real public data and normal billing. Do not send an environment parameter or header. title: Openhandle Tiktok API version: 1.1.0 servers: - url: https://api.openhandle.dev tags: - name: Tiktok paths: /v1/tiktok/effects: get: description: Get effects in a batch from public Tiktok data. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: Tiktok_effects_list parameters: - description: Comma-separated opaque native IDs. example: '950000000007' in: query name: ids required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokEffect' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: Get effects in a batch tags: - Tiktok x-openhandle-operation: tiktok.effects.list x-openhandle-sdk: operation: list paginated: true path: tiktok.effects.list scope: - name: tiktok - name: effects x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.effects.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: category_id: '950000000008' comment: synthetic comment_id: '920200000000000001' ids: '950000000007' playlist_id: '950000000006' post_id: '920100000000000001' product_source_type: '0' query: synthetic rank_type: daily room_id: '950000000009' user_id: '920000000001' /v1/tiktok/effects/{identifier}: get: description: Get an effect from public Tiktok data. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: Tiktok_effect_get parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '920100000000000001' in: path name: identifier required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: $ref: '#/components/schemas/TikTokEffect' required: - data type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: Get an effect tags: - Tiktok x-openhandle-operation: tiktok.effect.get x-openhandle-sdk: operation: get paginated: false path: tiktok.effect.get scope: - name: tiktok - name: effect parameter: identifier reference: effect x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.effect.get contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: category_id: '950000000008' comment: synthetic comment_id: '920200000000000001' identifier: '920100000000000001' ids: '950000000007' playlist_id: '950000000006' post_id: '920100000000000001' product_source_type: '0' query: synthetic rank_type: daily room_id: '950000000009' user_id: '920000000001' /v1/tiktok/effects/{identifier}/posts: get: description: Return a cursor-paginated collection of TikTok posts that use an effect. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokEffectPostsList parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '920100000000000001' in: path name: identifier required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokPost' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: List effect posts tags: - Tiktok x-openhandle-operation: tiktok.effect.posts.list x-openhandle-sdk: operation: list paginated: true path: tiktok.effect.posts.list scope: - name: tiktok - name: effect parameter: identifier reference: effect - name: posts x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.effect.posts.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: identifier: '920100000000000001' /v1/tiktok/hashtags/{identifier}: get: description: Return one public hashtag by its native identifier. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokHashtagGet parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '950000000001' in: path name: identifier required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: $ref: '#/components/schemas/TikTokHashtag' required: - data type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: Get a hashtag tags: - Tiktok x-openhandle-operation: tiktok.hashtag.get x-openhandle-sdk: operation: get paginated: false path: tiktok.hashtag.get scope: - name: tiktok - name: hashtag parameter: identifier reference: hashtag x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.hashtag.get contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: identifier: '950000000001' query: synthetic /v1/tiktok/hashtags/{identifier}/posts: get: description: Return a cursor-paginated collection of public posts. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokHashtagPostsList parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '950000000001' in: path name: identifier required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokPost' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: List hashtag posts tags: - Tiktok x-openhandle-operation: tiktok.hashtag.posts.list x-openhandle-sdk: operation: list paginated: true path: tiktok.hashtag.posts.list scope: - name: tiktok - name: hashtag parameter: identifier reference: hashtag - name: posts x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.hashtag.posts.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: identifier: '950000000001' query: synthetic /v1/tiktok/locations/{identifier}: get: description: Return one public location by its native identifier. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokLocationGet parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '950000000002' in: path name: identifier required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: $ref: '#/components/schemas/TikTokLocation' required: - data type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: Get a location tags: - Tiktok x-openhandle-operation: tiktok.location.get x-openhandle-sdk: operation: get paginated: false path: tiktok.location.get scope: - name: tiktok - name: location parameter: identifier reference: location x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.location.get contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: identifier: '950000000002' query: synthetic /v1/tiktok/locations/{identifier}/posts: get: description: Return a cursor-paginated collection of public posts. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokLocationPostsList parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '950000000002' in: path name: identifier required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokPost' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: List location posts tags: - Tiktok x-openhandle-operation: tiktok.location.posts.list x-openhandle-sdk: operation: list paginated: true path: tiktok.location.posts.list scope: - name: tiktok - name: location parameter: identifier reference: location - name: posts x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.location.posts.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: identifier: '950000000002' query: synthetic /v1/tiktok/music/{identifier}: get: description: Return one public music by its native identifier. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokMusicGet parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '950000000003' in: path name: identifier required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: $ref: '#/components/schemas/TikTokMusic' required: - data type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: Get a music tags: - Tiktok x-openhandle-operation: tiktok.music.get x-openhandle-sdk: operation: get paginated: false path: tiktok.music.get scope: - name: tiktok - name: music parameter: identifier reference: music x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.music.get contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: identifier: '950000000003' query: synthetic /v1/tiktok/music/{identifier}/posts: get: description: Return a cursor-paginated collection of public posts. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokMusicPostsList parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '950000000003' in: path name: identifier required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokPost' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: List music posts tags: - Tiktok x-openhandle-operation: tiktok.music.posts.list x-openhandle-sdk: operation: list paginated: true path: tiktok.music.posts.list scope: - name: tiktok - name: music parameter: identifier reference: music - name: posts x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.music.posts.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: identifier: '950000000003' query: synthetic /v1/tiktok/posts/{identifier}: get: description: Get a post by a canonical platform identifier. URLs must be converted before calling a data endpoint. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokPostGet parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '920100000000000001' in: path name: identifier required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: $ref: '#/components/schemas/TikTokPost' required: - data type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: Get a post tags: - Tiktok x-openhandle-operation: tiktok.post.get x-openhandle-sdk: operation: get paginated: false path: tiktok.post.get scope: - name: tiktok - name: post parameter: identifier reference: post x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.post.get contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: identifier: '920100000000000001' /v1/tiktok/posts/{identifier}/comments: get: description: List post comments by a canonical platform identifier. URLs must be converted before calling a data endpoint. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokPostCommentsList parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '920100000000000001' in: path name: identifier required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokComment' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: List post comments tags: - Tiktok x-openhandle-operation: tiktok.post.comments.list x-openhandle-sdk: operation: list paginated: true path: tiktok.post.comments.list scope: - name: tiktok - name: post parameter: identifier reference: post - name: comments x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.post.comments.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: identifier: '920100000000000001' /v1/tiktok/posts/{identifier}/comments/{comment_id}/replies: get: description: Return a stable page of replies for one comment. Use find_test_data to discover compatible post and comment IDs. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokCommentRepliesList parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '920100000000000001' in: path name: identifier required: true schema: minLength: 1 type: string - description: Opaque native comment ID. example: '920200000000000001' in: path name: comment_id required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokComment' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: List comment replies tags: - Tiktok x-openhandle-operation: tiktok.comment.replies.list x-openhandle-sdk: operation: list paginated: true path: tiktok.post.comment.replies.list scope: - name: tiktok - name: post parameter: identifier reference: post - name: comment parameter: comment_id reference: comment - name: replies x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.comment.replies.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: comment_id: '920200000000000001' identifier: '920100000000000001' post_id: '920100000000000001' /v1/tiktok/profiles/{identifier}: get: description: Return one public profile. Use @username or a platform ID as the identifier. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokProfileGet parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '@pixel_orchard_tt_test' in: path name: identifier required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: $ref: '#/components/schemas/TikTokProfile' required: - data type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: Get a profile tags: - Tiktok x-openhandle-operation: tiktok.profile.get x-openhandle-sdk: operation: get paginated: false path: tiktok.profile.get scope: - name: tiktok - name: profile parameter: identifier reference: profile x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.profile.get contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: identifier: '@pixel_orchard_tt_test' /v1/tiktok/profiles/{identifier}/followers: get: description: Return a cursor-paginated collection of Tiktok profiles. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokProfileFollowersList parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '@pixel_orchard_tt_test' in: path name: identifier required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokProfile' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: List profile followers tags: - Tiktok x-openhandle-operation: tiktok.profile.followers.list x-openhandle-sdk: operation: list paginated: true path: tiktok.profile.followers.list scope: - name: tiktok - name: profile parameter: identifier reference: profile - name: followers x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.profile.followers.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: identifier: '@pixel_orchard_tt_test' /v1/tiktok/profiles/{identifier}/following: get: description: Return a cursor-paginated collection of Tiktok profiles. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokProfileFollowingList parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '@pixel_orchard_tt_test' in: path name: identifier required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokProfile' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: List profile following tags: - Tiktok x-openhandle-operation: tiktok.profile.following.list x-openhandle-sdk: operation: list paginated: true path: tiktok.profile.following.list scope: - name: tiktok - name: profile parameter: identifier reference: profile - name: following x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.profile.following.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: identifier: '@pixel_orchard_tt_test' /v1/tiktok/profiles/{identifier}/liked-posts: get: description: Return a cursor-paginated Tiktok profile collection. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokProfileLiked_postsList parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '@pixel_orchard_tt_test' in: path name: identifier required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokPost' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: List profile liked posts tags: - Tiktok x-openhandle-operation: tiktok.profile.liked.posts.list x-openhandle-sdk: operation: list paginated: true path: tiktok.profile.likedPosts.list scope: - name: tiktok - name: profile parameter: identifier reference: profile - name: likedPosts x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.profile.liked.posts.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: identifier: '@pixel_orchard_tt_test' /v1/tiktok/profiles/{identifier}/playlists: get: description: List profile playlists from public Tiktok data. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: Tiktok_profile_playlists_list parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '@pixel_orchard_tt_test' in: path name: identifier required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokPlaylist' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: List profile playlists tags: - Tiktok x-openhandle-operation: tiktok.profile.playlists.list x-openhandle-sdk: operation: list paginated: true path: tiktok.profile.playlists.list scope: - name: tiktok - name: profile parameter: identifier reference: profile - name: playlists x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.profile.playlists.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: category_id: '950000000008' comment: synthetic comment_id: '920200000000000001' identifier: '@pixel_orchard_tt_test' ids: '950000000007' playlist_id: '950000000006' post_id: '920100000000000001' product_source_type: '0' query: synthetic rank_type: daily room_id: '950000000009' user_id: '920000000001' /v1/tiktok/profiles/{identifier}/playlists/{playlist_id}: get: description: Get a playlist from public Tiktok data. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: Tiktok_profile_playlist_get parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '@pixel_orchard_tt_test' in: path name: identifier required: true schema: minLength: 1 type: string - description: Opaque native playlist ID. example: '950000000006' in: path name: playlist_id required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: $ref: '#/components/schemas/TikTokPlaylist' required: - data type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: Get a playlist tags: - Tiktok x-openhandle-operation: tiktok.profile.playlist.get x-openhandle-sdk: operation: get paginated: false path: tiktok.profile.playlist.get scope: - name: tiktok - name: profile parameter: identifier reference: profile - name: playlist parameter: playlist_id reference: playlist x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.profile.playlist.get contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: category_id: '950000000008' comment: synthetic comment_id: '920200000000000001' identifier: '@pixel_orchard_tt_test' ids: '950000000007' playlist_id: '950000000006' post_id: '920100000000000001' product_source_type: '0' query: synthetic rank_type: daily room_id: '950000000009' user_id: '920000000001' /v1/tiktok/profiles/{identifier}/playlists/{playlist_id}/posts: get: description: Return a cursor-paginated collection of posts in a public TikTok profile playlist. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokProfilePlaylistPostsList parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '@pixel_orchard_tt_test' in: path name: identifier required: true schema: minLength: 1 type: string - description: Opaque native playlist ID. example: '950000000006' in: path name: playlist_id required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokPost' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: List playlist posts tags: - Tiktok x-openhandle-operation: tiktok.profile.playlist.posts.list x-openhandle-sdk: operation: list paginated: true path: tiktok.profile.playlist.posts.list scope: - name: tiktok - name: profile parameter: identifier reference: profile - name: playlist parameter: playlist_id reference: playlist - name: posts x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.profile.playlist.posts.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: identifier: '@pixel_orchard_tt_test' playlist_id: '950000000006' /v1/tiktok/profiles/{identifier}/posts: get: description: Return a stable page of posts for one public profile. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokProfilePostsList parameters: - description: Public resource reference. Profile paths accept a username with an @ prefix, such as @openai, or the stable platform ID. Post paths accept the platform post ID or shortcode. example: '@pixel_orchard_tt_test' in: path name: identifier required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string - description: Return posts captured at or after this RFC 3339 timestamp. in: query name: since required: false schema: format: date-time type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokPost' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: List profile posts tags: - Tiktok x-openhandle-operation: tiktok.profile.posts.list x-openhandle-sdk: operation: list paginated: true path: tiktok.profile.posts.list scope: - name: tiktok - name: profile parameter: identifier reference: profile - name: posts x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.profile.posts.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: identifier: '@pixel_orchard_tt_test' /v1/tiktok/search/hashtags: get: description: Search public Tiktok hashtags with cursor pagination. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokSearchHashtags parameters: - description: Public search query. example: synthetic in: query name: q required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokHashtag' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: Search Tiktok hashtags tags: - Tiktok x-openhandle-operation: tiktok.search.hashtags.list x-openhandle-sdk: operation: list paginated: true path: tiktok.search.hashtags.list scope: - name: tiktok - name: search - name: hashtags x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.search.hashtags.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: query: synthetic /v1/tiktok/search/locations: get: description: Search public Tiktok locations with cursor pagination. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokSearchLocations parameters: - description: Public search query. example: synthetic in: query name: q required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokLocation' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: Search Tiktok locations tags: - Tiktok x-openhandle-operation: tiktok.search.locations.list x-openhandle-sdk: operation: list paginated: true path: tiktok.search.locations.list scope: - name: tiktok - name: search - name: locations x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.search.locations.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: query: synthetic /v1/tiktok/search/music: get: description: Search public Tiktok music with cursor pagination. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokSearchMusic parameters: - description: Public search query. example: synthetic in: query name: q required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokMusic' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: Search Tiktok music tags: - Tiktok x-openhandle-operation: tiktok.search.music.list x-openhandle-sdk: operation: list paginated: true path: tiktok.search.music.list scope: - name: tiktok - name: search - name: music x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.search.music.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: query: synthetic /v1/tiktok/search/posts: get: description: Search public Tiktok posts with cursor pagination. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokSearchPosts parameters: - description: Public search query. example: synthetic in: query name: q required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokPost' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: Search Tiktok posts tags: - Tiktok x-openhandle-operation: tiktok.search.posts.list x-openhandle-sdk: operation: list paginated: true path: tiktok.search.posts.list scope: - name: tiktok - name: search - name: posts x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.search.posts.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: query: synthetic /v1/tiktok/search/profiles: get: description: Search public Tiktok profiles with cursor pagination. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokSearchProfiles parameters: - description: Public search query. example: synthetic in: query name: q required: true schema: minLength: 1 type: string - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokProfile' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: Search Tiktok profiles tags: - Tiktok x-openhandle-operation: tiktok.search.profiles.list x-openhandle-sdk: operation: list paginated: true path: tiktok.search.profiles.list scope: - name: tiktok - name: search - name: profiles x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.search.profiles.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: query: synthetic /v1/tiktok/trending/categories: get: description: Return TikTok trending categories. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokTrendingCategoriesList parameters: - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokCategory' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: List trending categories tags: - Tiktok x-openhandle-operation: tiktok.trending.categories.list x-openhandle-sdk: operation: list paginated: true path: tiktok.trending.categories.list scope: - name: tiktok - name: trending - name: categories x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.trending.categories.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: id: '950000000004' query: '' /v1/tiktok/trending/music: get: description: Return TikTok's public Top 50 music chart for the configured provider region. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokTrendingMusicList parameters: - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: $ref: '#/components/schemas/TikTokMusic' required: - data type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: List trending music tags: - Tiktok x-openhandle-operation: tiktok.trending.music.list x-openhandle-sdk: operation: list paginated: false path: tiktok.trending.music.list scope: - name: tiktok - name: trending - name: music x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.trending.music.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: id: '950000000003' q: synthetic query: synthetic /v1/tiktok/trending/posts: get: description: Return TikTok's public recommended feed. Test and Live use the same route, parameters, response schema, pagination, and errors. In Test, null means unavailable, not zero. operationId: tiktokTrendingPostsList parameters: - description: Maximum accepted data age. The default is 24h. example: 24h in: query name: freshness required: false schema: default: 24h enum: - live - 24h - 7d - 30d type: string - description: Opaque cursor returned by the previous page. in: query name: cursor required: false schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: items: $ref: '#/components/schemas/TikTokPost' type: array required: - data - meta type: object description: A successful Test or Live response. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '400': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The locator, cursor, or query is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '401': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The API key is invalid. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '402': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: Live billing does not permit this request. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '403': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource is private or workspace API access is security-suspended. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The resource does not exist. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '429': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request rate limit was exceeded. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '500': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The request failed internally. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string '503': content: application/json: schema: $ref: '#/components/schemas/ErrorEnvelope' description: The service is temporarily unavailable. headers: Openhandle-Billing-Disposition: description: Accounting disposition. schema: enum: - test - allowance - free - prepaid type: string Openhandle-Cost: description: Authoritative actual customer charge. Always 0.000 for Test. schema: type: string Openhandle-Dataset-Version: description: Synthetic dataset version. Present for Test. schema: type: string Openhandle-Environment: description: Environment selected by the API key. schema: enum: - test - live type: string Openhandle-List-Price: description: Live-equivalent list price. schema: type: string RateLimit: description: Remaining requests (r) and seconds until reset (t) for each evaluated policy. May be absent before authentication or when the limiter is unavailable. example: '"key";r=9;t=1, "organization";r=49;t=1' schema: type: string RateLimit-Policy: description: Quota policies for the evaluated limits. Present after rate-limit evaluation. Uses draft-ietf-httpapi-ratelimit-headers-11. example: '"key";q=10;w=1, "organization";q=50;w=1' schema: type: string Retry-After: description: Seconds to wait before retrying a throttled request. Present on 429 responses. example: '1' schema: type: string X-Request-ID: description: Stable request identifier. schema: type: string security: - OpenhandleKey: [] summary: List trending posts tags: - Tiktok x-openhandle-operation: tiktok.trending.posts.list x-openhandle-sdk: operation: list paginated: true path: tiktok.trending.posts.list scope: - name: tiktok - name: trending - name: posts x-openhandle-test-data: catalogUrl: /v1/test-data?operation=tiktok.trending.posts.list contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 example: handle: pixel_orchard_tt_test id: '920100000000000001' platform_id: '920000000001' query: '' url: https://www.tiktok.com/@pixel_orchard_tt_test/video/920100000000000001 components: schemas: TwitterCardApp: additionalProperties: false properties: category: anyOf: - $ref: '#/components/schemas/TwitterCardText' - type: 'null' countryCode: minLength: 1 type: - string - 'null' description: anyOf: - $ref: '#/components/schemas/TwitterCardText' - type: 'null' groupId: minLength: 1 type: - string - 'null' hasInAppPurchases: type: - boolean - 'null' iconKey: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' isEditorsChoice: type: - boolean - 'null' isFree: type: - boolean - 'null' metrics: anyOf: - $ref: '#/components/schemas/TwitterAppMetrics' - type: 'null' resolvedUrl: format: uri minLength: 1 type: - string - 'null' sizeBytes: type: - integer - 'null' title: anyOf: - $ref: '#/components/schemas/TwitterCardText' - type: 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - groupId - id - type - countryCode - url - resolvedUrl - isEditorsChoice - isFree - iconKey - sizeBytes - hasInAppPurchases - category - title - description - metrics type: object TwitterBroadcaster: additionalProperties: false properties: displayName: minLength: 1 type: - string - 'null' handle: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' required: - id - handle - displayName type: object TikTokPostCaption: additionalProperties: false properties: entities: items: $ref: '#/components/schemas/TikTokTextEntity' type: - array - 'null' markup: minLength: 1 type: - string - 'null' required: - markup - entities type: object InstagramTemplateInfo: additionalProperties: false properties: author: anyOf: - $ref: '#/components/schemas/InstagramProfileReference' - type: 'null' effectId: minLength: 1 type: - string - 'null' effects: additionalProperties: false properties: segments: items: {} type: - array - 'null' required: - segments type: object minimumSegments: type: - integer - 'null' postId: minLength: 1 type: - string - 'null' segments: items: $ref: '#/components/schemas/InstagramTemplateSegment' type: - array - 'null' required: - postId - author - minimumSegments - segments - effectId - effects type: object TikTokWhatsAppMetrics: additionalProperties: false properties: shares: type: - integer - 'null' required: - shares type: object TwitterMediaFeature: additionalProperties: false properties: faceRegions: items: $ref: '#/components/schemas/TwitterRectangle' type: - array - 'null' size: minLength: 1 type: - string - 'null' taggedProfiles: items: $ref: '#/components/schemas/TwitterProfileReference' type: - array - 'null' required: - size - faceRegions - taggedProfiles type: object TikTokTemplateMetrics: additionalProperties: false properties: clips: type: - integer - 'null' required: - clips type: object TikTokLyricAsset: additionalProperties: false properties: id: minLength: 1 type: - string - 'null' typeCode: type: - integer - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - typeCode - url type: object TwitterRichText: additionalProperties: false properties: entities: items: $ref: '#/components/schemas/TwitterEntity' type: - array - 'null' text: minLength: 1 type: - string - 'null' required: - text - entities type: object InstagramProfileAddress: additionalProperties: false properties: city: minLength: 1 type: - string - 'null' cityId: minLength: 1 type: - string - 'null' postalCode: minLength: 1 type: - string - 'null' street: minLength: 1 type: - string - 'null' required: - street - city - cityId - postalCode type: object TikTokCommerceMetrics: additionalProperties: false properties: products: type: - integer - 'null' required: - products type: object TikTokStickerPosition: additionalProperties: false properties: endTime: type: - number - 'null' height: type: - number - 'null' isRelative: type: - boolean - 'null' rotation: type: - number - 'null' scale: type: - number - 'null' startTime: type: - number - 'null' width: type: - number - 'null' x: type: - number - 'null' y: type: - number - 'null' required: - x - y - width - height - rotation - scale - isRelative - startTime - endTime type: object InstagramLocationReference: additionalProperties: false properties: address: $ref: '#/components/schemas/InstagramLocationAddress' category: minLength: 1 type: - string - 'null' coordinates: $ref: '#/components/schemas/InstagramCoordinates' external: additionalProperties: false properties: id: minLength: 1 type: - string - 'null' source: minLength: 1 type: - string - 'null' required: - id - source type: object hours: anyOf: - $ref: '#/components/schemas/InstagramLocationHours' - type: 'null' id: minLength: 1 type: - string - 'null' name: minLength: 1 type: - string - 'null' phone: minLength: 1 type: - string - 'null' searchContext: additionalProperties: false properties: subtitle: minLength: 1 type: - string - 'null' title: minLength: 1 type: - string - 'null' required: - title - subtitle type: object shortName: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' website: minLength: 1 type: - string - 'null' required: - id - name - shortName - category - url - phone - website - address - coordinates - external - searchContext - hours type: object TwitterRectangle: additionalProperties: false properties: height: type: - integer - 'null' width: type: - integer - 'null' x: type: - integer - 'null' y: type: - integer - 'null' required: - x - y - width - height type: object InstagramScrubber: additionalProperties: false properties: duration: type: - number - 'null' height: type: - integer - 'null' maxThumbnailsPerSprite: type: - integer - 'null' thumbnailDuration: type: - number - 'null' thumbnailHeight: type: - integer - 'null' thumbnailWidth: type: - integer - 'null' thumbnailsPerRow: type: - integer - 'null' thumbnailsPerSprite: type: - integer - 'null' urls: items: minLength: 1 type: string type: - array - 'null' width: type: - integer - 'null' required: - urls - width - height - thumbnailWidth - thumbnailHeight - thumbnailsPerRow - thumbnailsPerSprite - maxThumbnailsPerSprite - thumbnailDuration - duration type: object TikTokLocationParent: additionalProperties: false properties: id: minLength: 1 type: - string - 'null' name: minLength: 1 type: - string - 'null' required: - id - name type: object ResponseMeta: properties: cashtags: items: {} type: - array - 'null' chart: anyOf: - $ref: '#/components/schemas/TikTokChartMetadata' - type: 'null' collection: anyOf: - $ref: '#/components/schemas/InstagramStoryCollection' - type: 'null' community: anyOf: - $ref: '#/components/schemas/RedditCommunityHandle' - type: 'null' context: anyOf: - $ref: '#/components/schemas/RedditListingContext' - type: 'null' continuation: anyOf: - $ref: '#/components/schemas/TikTokPageContinuation' - type: 'null' count: type: - integer - 'null' cursors: $ref: '#/components/schemas/ResponseCursors' domain: minLength: 1 type: - string - 'null' events: items: {} type: - array - 'null' handle: minLength: 1 type: - string - 'null' hasFilteredComments: type: - boolean - 'null' hasMore: type: - boolean - 'null' hasMoreAfter: type: - boolean - 'null' hasMoreBefore: type: - boolean - 'null' hashtags: items: {} type: - array - 'null' isLimited: type: boolean likesEnabled: type: - boolean - 'null' limit: type: - integer - 'null' lists: items: {} type: - array - 'null' metrics: properties: comments: type: - integer - 'null' followers: type: - integer - 'null' following: type: - integer - 'null' likes: type: - integer - 'null' replies: type: - integer - 'null' results: type: - integer - 'null' suggestions: type: - integer - 'null' type: object nextCursorLabel: minLength: 1 type: - string - 'null' nextCursorType: minLength: 1 type: - string - 'null' parent: anyOf: - $ref: '#/components/schemas/InstagramCommentReference' - type: 'null' previousCursor: minLength: 1 type: - string - 'null' promoted: items: $ref: '#/components/schemas/TwitterPostReference' type: - array - 'null' queries: items: $ref: '#/components/schemas/TwitterSuggestedQuery' type: - array - 'null' query: minLength: 1 type: - string - 'null' siteRules: items: minLength: 1 type: string type: - array - 'null' sort: minLength: 1 type: - string - 'null' threadingEnabled: type: - boolean - 'null' track: anyOf: - $ref: '#/components/schemas/InstagramAudioReference' - type: 'null' required: - cursors type: object InstagramPosition: additionalProperties: false properties: x: type: - number - 'null' y: type: - number - 'null' required: - x - y type: object TwitterCommunityNote: additionalProperties: false properties: id: minLength: 1 type: - string - 'null' presentation: anyOf: - $ref: '#/components/schemas/TwitterNotePresentation' - type: 'null' preview: anyOf: - $ref: '#/components/schemas/TwitterRichText' - type: 'null' shortTitle: minLength: 1 type: - string - 'null' summary: anyOf: - $ref: '#/components/schemas/TwitterRichText' - type: 'null' title: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - url - title - shortTitle - summary - preview - presentation type: object TikTokPlaylistMetrics: additionalProperties: false properties: plays: type: - integer - 'null' posts: type: - integer - 'null' required: - posts - plays type: object InstagramProfileReference: additionalProperties: false properties: accountBadges: items: {} type: - array - 'null' accountType: anyOf: - $ref: '#/components/schemas/InstagramProfileAccountType' - type: 'null' avatar: anyOf: - $ref: '#/components/schemas/InstagramImage' - type: 'null' bio: minLength: 1 type: - string - 'null' bioEntities: items: {} type: - array - 'null' bioLinks: items: $ref: '#/components/schemas/InstagramBioLink' type: - array - 'null' broadcastChannels: $ref: '#/components/schemas/InstagramProfileBroadcastChannels' category: minLength: 1 type: - string - 'null' categoryId: minLength: 1 type: - string - 'null' contact: $ref: '#/components/schemas/InstagramProfileContact' content: $ref: '#/components/schemas/InstagramProfileContent' contentSettings: $ref: '#/components/schemas/InstagramProfileContentSettings' displayName: minLength: 1 type: - string - 'null' displaySettings: $ref: '#/components/schemas/InstagramProfileDisplaySettings' externalUrl: format: uri minLength: 1 type: - string - 'null' fanClub: $ref: '#/components/schemas/InstagramProfileFanClub' fbid: minLength: 1 type: - string - 'null' fundraisers: $ref: '#/components/schemas/InstagramProfileFundraisers' handle: minLength: 1 type: - string - 'null' hasDigitalAvatar: type: - boolean - 'null' id: minLength: 1 type: - string - 'null' isAccountTransparencyVisible: type: - boolean - 'null' isBusiness: type: - boolean - 'null' isFacebookOnboardedCharity: type: - boolean - 'null' isMemorialized: type: - boolean - 'null' isNew: type: - boolean - 'null' isOpenToCollaboration: type: - boolean - 'null' isPotentialBusiness: type: - boolean - 'null' isPrivate: type: - boolean - 'null' isUnpublished: type: - boolean - 'null' isVerified: type: - boolean - 'null' lastStoryAt: format: date-time minLength: 1 type: - string - 'null' location: $ref: '#/components/schemas/InstagramProfileLocation' mediaPreviews: items: $ref: '#/components/schemas/InstagramMediaPreview' type: - array - 'null' messagingFbid: minLength: 1 type: - string - 'null' metrics: $ref: '#/components/schemas/InstagramProfileMetrics' pronouns: items: minLength: 1 type: string type: - array - 'null' socialContext: minLength: 1 type: - string - 'null' suggestion: anyOf: - $ref: '#/components/schemas/InstagramSuggestion' - type: 'null' threads: $ref: '#/components/schemas/InstagramProfileThreads' upcomingEvents: items: {} type: - array - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - suggestion - mediaPreviews - id - handle - displayName - bio - url - externalUrl - avatar - fbid - messagingFbid - isPrivate - isVerified - isBusiness - isPotentialBusiness - isUnpublished - isMemorialized - isNew - isOpenToCollaboration - isFacebookOnboardedCharity - hasDigitalAvatar - isAccountTransparencyVisible - category - categoryId - accountType - socialContext - lastStoryAt - pronouns - accountBadges - bioEntities - bioLinks - upcomingEvents - metrics - contact - location - fanClub - content - contentSettings - displaySettings - threads - broadcastChannels - fundraisers type: object InstagramSuggestion: additionalProperties: false properties: caption: minLength: 1 type: - string - 'null' hasStoryRing: type: - boolean - 'null' icon: minLength: 1 type: - string - 'null' isNew: type: - boolean - 'null' largeImages: items: $ref: '#/components/schemas/InstagramImage' type: - array - 'null' posts: items: $ref: '#/components/schemas/InstagramPostReference' type: - array - 'null' socialContext: minLength: 1 type: - string - 'null' thumbnails: items: $ref: '#/components/schemas/InstagramImage' type: - array - 'null' required: - socialContext - hasStoryRing - isNew - icon - caption - thumbnails - largeImages - posts type: object InstagramLocationAddress: additionalProperties: false properties: city: minLength: 1 type: - string - 'null' countryCode: minLength: 1 type: - string - 'null' postalCode: minLength: 1 type: - string - 'null' region: minLength: 1 type: - string - 'null' street: minLength: 1 type: - string - 'null' required: - street - city - postalCode - region - countryCode type: object TwitterArticle: additionalProperties: false properties: cover: anyOf: - $ref: '#/components/schemas/TwitterMedia' - type: 'null' id: minLength: 1 type: - string - 'null' previewText: minLength: 1 type: - string - 'null' title: minLength: 1 type: - string - 'null' required: - id - title - previewText - cover type: object RedditSubredditMetrics: additionalProperties: false properties: subscribers: type: - integer - 'null' required: - subscribers type: object InstagramStoryCollection: additionalProperties: false properties: audience: additionalProperties: false properties: hasCloseFriendsStories: type: - boolean - 'null' hasSubscriberStories: type: - boolean - 'null' required: - hasCloseFriendsStories - hasSubscriberStories type: object expiresAt: format: date-time minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' isArchived: type: - boolean - 'null' lastStoryAt: format: date-time minLength: 1 type: - string - 'null' metrics: additionalProperties: false properties: stories: type: - integer - 'null' required: - stories type: object required: - id - lastStoryAt - expiresAt - isArchived - metrics - audience type: object TikTokPostSearchContext: additionalProperties: false properties: description: minLength: 1 type: - string - 'null' highlights: items: $ref: '#/components/schemas/TikTokSearchHighlight' type: - array - 'null' required: - description - highlights type: object InstagramProfileMetrics: additionalProperties: false properties: arEffects: type: - integer - 'null' followers: type: - integer - 'null' following: type: - integer - 'null' posts: type: - integer - 'null' required: - followers - following - posts - arEffects type: object RedditPostMetrics: additionalProperties: false properties: awards: type: - integer - 'null' comments: type: - integer - 'null' crossposts: type: - integer - 'null' gilded: type: - integer - 'null' score: type: - integer - 'null' upvoteRatio: type: - number - 'null' views: type: - integer - 'null' required: - score - upvoteRatio - comments - crossposts - awards - gilded - views type: object TwitterMediaSize: additionalProperties: false properties: height: type: - integer - 'null' name: minLength: 1 type: - string - 'null' resizeMode: minLength: 1 type: - string - 'null' width: type: - integer - 'null' required: - name - width - height - resizeMode type: object TikTokLocation: additionalProperties: false properties: address: $ref: '#/components/schemas/TikTokLocationAddress' category: minLength: 1 type: - string - 'null' classification: $ref: '#/components/schemas/TikTokLocationClassification' commerce: $ref: '#/components/schemas/TikTokLocationCommerce' coordinates: $ref: '#/components/schemas/TikTokCoordinates' externalUrl: format: uri minLength: 1 type: - string - 'null' id: minLength: 1 type: string metrics: $ref: '#/components/schemas/TikTokLocationMetrics' name: minLength: 1 type: - string - 'null' openingHours: $ref: '#/components/schemas/TikTokOpeningHours' parent: anyOf: - $ref: '#/components/schemas/TikTokLocationParent' - type: 'null' priceLevel: minLength: 1 type: - string - 'null' rating: $ref: '#/components/schemas/TikTokLocationRating' source: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - name - category - source - url - address - coordinates - parent - classification - metrics - rating - priceLevel - externalUrl - openingHours - commerce type: object TwitterPollChoice: additionalProperties: false properties: images: items: $ref: '#/components/schemas/TwitterImage' type: - array - 'null' label: minLength: 1 type: - string - 'null' metrics: additionalProperties: false properties: votes: type: integer required: - votes type: - object - 'null' position: type: integer required: - position - label - metrics - images type: object TwitterCardComponent: additionalProperties: false properties: appGroupId: minLength: 1 type: - string - 'null' buttons: items: $ref: '#/components/schemas/TwitterCardButton' type: - array - 'null' destinationId: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' media: items: $ref: '#/components/schemas/TwitterCardMediaRef' type: - array - 'null' mediaKey: minLength: 1 type: - string - 'null' subtitle: anyOf: - $ref: '#/components/schemas/TwitterCardText' - type: 'null' title: anyOf: - $ref: '#/components/schemas/TwitterCardText' - type: 'null' type: minLength: 1 type: - string - 'null' required: - id - type - destinationId - mediaKey - appGroupId - title - subtitle - media - buttons type: object TikTokMusicChartContext: additionalProperties: false properties: id: minLength: 1 type: - string - 'null' position: type: - integer - 'null' trendCode: type: - integer - 'null' required: - id - position - trendCode type: object InstagramMediaPreview: additionalProperties: false properties: fbid: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' thumbnail: anyOf: - $ref: '#/components/schemas/InstagramImage' - type: 'null' required: - id - fbid - thumbnail type: object TikTokMusicDurations: additionalProperties: false properties: shoot: type: - number - 'null' video: type: - number - 'null' required: - shoot - video type: object InstagramProfileAccountType: oneOf: - enum: - personal - business - creator type: string - type: integer InstagramProfileDisplaySettings: additionalProperties: false properties: showCategory: type: - boolean - 'null' showPublicContacts: type: - boolean - 'null' required: - showCategory - showPublicContacts type: object TikTokLocationRating: additionalProperties: false properties: hasRating: type: - boolean - 'null' maxScore: type: - number - 'null' score: type: - number - 'null' source: $ref: '#/components/schemas/TikTokRatingSource' required: - score - maxScore - hasRating - source type: object TikTokOpeningHours: additionalProperties: false properties: endTime: minLength: 1 type: - string - 'null' entries: items: $ref: '#/components/schemas/TikTokOpeningHoursEntry' type: - array - 'null' startTime: minLength: 1 type: - string - 'null' status: type: - boolean - 'null' text: minLength: 1 type: - string - 'null' required: - entries - text - startTime - endTime - status type: object TikTokLocationClassification: additionalProperties: false properties: backendType: minLength: 1 type: - string - 'null' className: minLength: 1 type: - string - 'null' code: minLength: 1 type: - string - 'null' detailType: minLength: 1 type: - string - 'null' hierarchy: items: minLength: 1 type: string type: - array - 'null' levelCode: minLength: 1 type: - string - 'null' serviceCategory: $ref: '#/components/schemas/TikTokServiceCategory' sourceCode: type: - integer - 'null' required: - code - className - detailType - sourceCode - levelCode - backendType - hierarchy - serviceCategory type: object RedditCommentsSetting: additionalProperties: false properties: allowLiveComments: type: - boolean - 'null' discussionType: minLength: 1 type: - string - 'null' isContestMode: type: - boolean - 'null' suggestedSort: minLength: 1 type: - string - 'null' required: - isContestMode - allowLiveComments - suggestedSort - discussionType type: object TikTokCoordinates: additionalProperties: false properties: geohash: minLength: 1 type: - string - 'null' latitude: type: - number - 'null' longitude: type: - number - 'null' required: - latitude - longitude - geohash type: object TikTokSocialLink: additionalProperties: false properties: displayName: minLength: 1 type: - string - 'null' handle: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' platform: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - platform - id - handle - displayName - url type: object InstagramCrop: additionalProperties: false properties: bottom: type: - number - 'null' left: type: - number - 'null' right: type: - number - 'null' top: type: - number - 'null' required: - left - right - top - bottom type: object TikTokPreviewThumbnails: additionalProperties: false properties: columns: type: - integer - 'null' duration: type: - number - 'null' format: minLength: 1 type: - string - 'null' imageCount: type: - integer - 'null' imageIds: items: minLength: 1 type: string type: - array - 'null' images: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' interval: type: - number - 'null' rows: type: - integer - 'null' tileHeight: type: - integer - 'null' tileWidth: type: - integer - 'null' required: - duration - interval - imageCount - columns - rows - tileWidth - tileHeight - format - images - imageIds type: object InstagramProfileThreads: additionalProperties: false properties: handle: minLength: 1 type: - string - 'null' isActive: type: - boolean - 'null' joinerLabel: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - isActive - handle - url - joinerLabel type: object TikTokPostCommerce: additionalProperties: false properties: brandedContentType: type: - integer - 'null' disclosureLabel: minLength: 1 type: - string - 'null' isDiversionAd: type: - boolean - 'null' isEcommerce: type: - boolean - 'null' metrics: $ref: '#/components/schemas/TikTokCommerceMetrics' products: items: $ref: '#/components/schemas/TikTokProduct' type: - array - 'null' sellerIds: items: minLength: 1 type: string type: - array - 'null' required: - brandedContentType - isDiversionAd - disclosureLabel - metrics - isEcommerce - sellerIds - products type: object RedditFlair: additionalProperties: false properties: backgroundColor: minLength: 1 type: - string - 'null' cssClass: minLength: 1 type: - string - 'null' hasPatreonFlair: type: - boolean - 'null' templateId: minLength: 1 type: - string - 'null' text: minLength: 1 type: - string - 'null' textColor: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' required: - text - type - templateId - cssClass - backgroundColor - textColor - hasPatreonFlair type: object TikTokProduct: additionalProperties: false properties: categories: items: $ref: '#/components/schemas/TikTokProductCategory' type: - array - 'null' cover: anyOf: - $ref: '#/components/schemas/TikTokAsset' - type: 'null' disclosureLabel: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' images: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' inShop: type: - boolean - 'null' isPlatformProduct: type: - boolean - 'null' label: minLength: 1 type: - string - 'null' name: minLength: 1 type: - string - 'null' platformCode: type: - integer - 'null' pricing: $ref: '#/components/schemas/TikTokProductPricing' sellerId: minLength: 1 type: - string - 'null' shortName: minLength: 1 type: - string - 'null' skus: items: $ref: '#/components/schemas/TikTokProductSKU' type: - array - 'null' source: minLength: 1 type: - string - 'null' statusCode: type: - integer - 'null' required: - id - name - shortName - source - platformCode - statusCode - inShop - isPlatformProduct - sellerId - pricing - images - cover - skus - categories - disclosureLabel - label type: object TikTokCommentSticker: additionalProperties: false properties: createdAt: format: date-time minLength: 1 type: - string - 'null' creatorId: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' name: minLength: 1 type: - string - 'null' renditions: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' setId: minLength: 1 type: - string - 'null' typeCode: type: - integer - 'null' required: - id - creatorId - setId - name - typeCode - createdAt - renditions type: object RedditMediaVariant: additionalProperties: false properties: format: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - format - type - url type: object TikTokEffectOwner: additionalProperties: false properties: avatar: anyOf: - $ref: '#/components/schemas/TikTokAsset' - type: 'null' displayName: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' isTopEffectDesigner: type: - boolean - 'null' secUid: minLength: 1 type: - string - 'null' verification: $ref: '#/components/schemas/TikTokEffectOwnerVerification' required: - id - secUid - displayName - avatar - isTopEffectDesigner - verification type: object TikTokPostAI: additionalProperties: false properties: isCreatedByAi: type: - boolean - 'null' labelType: type: - integer - 'null' required: - isCreatedByAi - labelType type: object TwitterProfessional: additionalProperties: false properties: categories: items: $ref: '#/components/schemas/TwitterProfessionalCategory' type: - array - 'null' type: minLength: 1 type: - string - 'null' required: - type - categories type: object TikTokEffectTrigger: additionalProperties: false properties: actionCodes: items: type: integer type: - array - 'null' type: minLength: 1 type: - string - 'null' required: - type - actionCodes type: object InstagramCoordinates: additionalProperties: false properties: latitude: type: - number - 'null' longitude: type: - number - 'null' required: - latitude - longitude type: object TwitterColor: additionalProperties: false properties: percentage: type: number rgb: $ref: '#/components/schemas/TwitterRGB' required: - percentage - rgb type: object SuccessEnvelope: additionalProperties: false properties: capturedAt: format: date-time type: string data: {} meta: $ref: '#/components/schemas/ResponseMeta' platform: enum: - instagram - tiktok - twitter - reddit type: string resource: enum: - profile - post - comment - hashtag - location - music - category - list - entity - subreddit - rule - wiki - trophy type: string source: enum: - live - cache type: string required: - platform - resource - capturedAt - source - data type: object TikTokLocationCommerce: additionalProperties: false properties: hasProductShelf: type: - boolean - 'null' isClaimed: type: - boolean - 'null' required: - hasProductShelf - isClaimed type: object TwitterFormatting: additionalProperties: false properties: range: $ref: '#/components/schemas/TwitterRange' types: items: minLength: 1 type: string type: - array - 'null' required: - range - types type: object TikTokCommentReference: additionalProperties: false properties: author: anyOf: - $ref: '#/components/schemas/TikTokProfileReference' - type: 'null' createdAt: format: date-time minLength: 1 type: - string - 'null' entities: items: $ref: '#/components/schemas/TikTokTextEntity' type: - array - 'null' id: minLength: 1 type: - string - 'null' isLikedByCreator: type: - boolean - 'null' isPinned: type: - boolean - 'null' labels: items: $ref: '#/components/schemas/TikTokCommentLabel' type: - array - 'null' language: minLength: 1 type: - string - 'null' media: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' metrics: $ref: '#/components/schemas/TikTokCommentMetrics' parentId: minLength: 1 type: - string - 'null' postId: minLength: 1 type: - string - 'null' predictions: $ref: '#/components/schemas/TikTokCommentPredictions' previewReplies: items: $ref: '#/components/schemas/TikTokCommentReference' type: - array - 'null' replyTo: anyOf: - $ref: '#/components/schemas/TikTokProfileReference' - type: 'null' rootCommentId: minLength: 1 type: - string - 'null' sticker: anyOf: - $ref: '#/components/schemas/TikTokCommentSticker' - type: 'null' text: minLength: 1 type: - string - 'null' required: - id - postId - text - createdAt - language - author - isPinned - isLikedByCreator - parentId - rootCommentId - replyTo - metrics - predictions - entities - labels - previewReplies - media - sticker type: object TwitterPlace: additionalProperties: false properties: country: minLength: 1 type: - string - 'null' countryCode: minLength: 1 type: - string - 'null' fullName: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' name: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' required: - id - name - fullName - type - country - countryCode type: object TwitterProfileLocation: additionalProperties: false properties: place: anyOf: - $ref: '#/components/schemas/TwitterPlace' - type: 'null' text: minLength: 1 type: - string - 'null' required: - text - place type: object TwitterImage: additionalProperties: false properties: altText: minLength: 1 type: - string - 'null' height: type: - integer - 'null' isNft: type: - boolean - 'null' role: minLength: 1 type: - string - 'null' shape: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' width: type: - integer - 'null' required: - type - url - role - width - height - altText - shape - isNft type: object TwitterAppMetrics: additionalProperties: false properties: rating: type: - number - 'null' ratings: type: - integer - 'null' required: - rating - ratings type: object TwitterRGB: additionalProperties: false properties: blue: type: integer green: type: integer red: type: integer required: - red - green - blue type: object TikTokBeatData: additionalProperties: false properties: bitrate: type: - integer - 'null' codecCode: type: - integer - 'null' covers: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' duration: type: - number - 'null' expiresAt: format: date-time minLength: 1 type: - string - 'null' format: minLength: 1 type: - string - 'null' frameRate: type: - number - 'null' hasWatermark: type: - boolean - 'null' hash: minLength: 1 type: - string - 'null' height: type: - integer - 'null' id: minLength: 1 type: - string - 'null' isAutoGenerated: type: - boolean - 'null' isBytevc1: type: - boolean - 'null' isOriginal: type: - boolean - 'null' label: minLength: 1 type: - string - 'null' language: minLength: 1 type: - string - 'null' locale: minLength: 1 type: - string - 'null' previewThumbnails: items: $ref: '#/components/schemas/TikTokPreviewThumbnails' type: - array - 'null' qualityCode: type: - integer - 'null' qualityLabel: minLength: 1 type: - string - 'null' renditions: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' resources: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' role: minLength: 1 type: - string - 'null' size: type: - integer - 'null' subtitles: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' variants: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' version: minLength: 1 type: - string - 'null' volumeInfo: $ref: '#/components/schemas/TikTokVolumeInfo' width: type: - integer - 'null' required: - volumeInfo - id - type - url - width - height - size - hash - role - label - duration - hasWatermark - qualityLabel - qualityCode - bitrate - frameRate - isBytevc1 - codecCode - format - language - locale - isAutoGenerated - isOriginal - version - expiresAt - renditions - covers - subtitles - previewThumbnails - variants - resources type: object TikTokLocationReference: additionalProperties: false properties: address: $ref: '#/components/schemas/TikTokLocationAddress' category: minLength: 1 type: - string - 'null' classification: $ref: '#/components/schemas/TikTokLocationClassification' commerce: $ref: '#/components/schemas/TikTokLocationCommerce' coordinates: $ref: '#/components/schemas/TikTokCoordinates' externalUrl: format: uri minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' metrics: $ref: '#/components/schemas/TikTokLocationMetrics' name: minLength: 1 type: - string - 'null' openingHours: $ref: '#/components/schemas/TikTokOpeningHours' parent: anyOf: - $ref: '#/components/schemas/TikTokLocationParent' - type: 'null' priceLevel: minLength: 1 type: - string - 'null' rating: $ref: '#/components/schemas/TikTokLocationRating' source: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - name - category - source - url - address - coordinates - parent - classification - metrics - rating - priceLevel - externalUrl - openingHours - commerce type: object InstagramAudioMetrics: additionalProperties: false properties: photos: type: - integer - 'null' previousTrendRank: type: - integer - 'null' reels: type: - integer - 'null' trendRank: type: - integer - 'null' required: - trendRank - previousTrendRank - reels - photos type: object TwitterNotePresentation: additionalProperties: false properties: iconType: minLength: 1 type: - string - 'null' style: minLength: 1 type: - string - 'null' required: - iconType - style type: object TikTokMusicGrouping: additionalProperties: false properties: groupIds: items: minLength: 1 type: string type: - array - 'null' sameGroupId: minLength: 1 type: - string - 'null' similarGroupId: minLength: 1 type: - string - 'null' ugid: minLength: 1 type: - string - 'null' required: - sameGroupId - similarGroupId - ugid - groupIds type: object TwitterLongText: additionalProperties: false properties: formatting: items: $ref: '#/components/schemas/TwitterFormatting' type: - array - 'null' id: minLength: 1 type: - string - 'null' inlineMedia: items: {} type: - array - 'null' isExpandable: type: - boolean - 'null' timestamps: items: {} type: - array - 'null' required: - id - isExpandable - inlineMedia - formatting - timestamps type: object InstagramDASH: additionalProperties: false properties: manifest: minLength: 1 type: - string - 'null' qualityCount: type: - integer - 'null' variants: items: $ref: '#/components/schemas/InstagramStreamVariant' type: - array - 'null' required: - manifest - variants - qualityCount type: object RedditPostReference: additionalProperties: false properties: author: anyOf: - $ref: '#/components/schemas/RedditAuthor' - type: 'null' comments: $ref: '#/components/schemas/RedditCommentsSetting' community: anyOf: - $ref: '#/components/schemas/RedditCommunity' - type: 'null' createdAt: format: date-time minLength: 1 type: - string - 'null' distinguishedBy: minLength: 1 type: - string - 'null' domain: minLength: 1 type: - string - 'null' editedAt: format: date-time minLength: 1 type: - string - 'null' embed: anyOf: - $ref: '#/components/schemas/RedditEmbed' - type: 'null' flair: anyOf: - $ref: '#/components/schemas/RedditFlair' - type: 'null' id: minLength: 1 type: - string - 'null' isArchived: type: - boolean - 'null' isCrosspostable: type: - boolean - 'null' isEdited: type: - boolean - 'null' isGallery: type: - boolean - 'null' isLocked: type: - boolean - 'null' isMediaOnly: type: - boolean - 'null' isMeta: type: - boolean - 'null' isOriginalContent: type: - boolean - 'null' isPinned: type: - boolean - 'null' isRedditMediaDomain: type: - boolean - 'null' isSelf: type: - boolean - 'null' isSensitive: type: - boolean - 'null' isSpoiler: type: - boolean - 'null' isStickied: type: - boolean - 'null' isVideo: type: - boolean - 'null' linkUrl: format: uri minLength: 1 type: - string - 'null' media: items: $ref: '#/components/schemas/RedditMedia' type: - array - 'null' metrics: $ref: '#/components/schemas/RedditPostMetrics' removedByCategory: minLength: 1 type: - string - 'null' text: minLength: 1 type: - string - 'null' textHtml: minLength: 1 type: - string - 'null' thumbnail: anyOf: - $ref: '#/components/schemas/RedditThumbnail' - type: 'null' title: minLength: 1 type: - string - 'null' topAwardedType: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' visibility: $ref: '#/components/schemas/RedditPostVisibility' required: - id - title - text - textHtml - domain - url - linkUrl - author - community - metrics - createdAt - isEdited - editedAt - isSelf - isVideo - isGallery - isMeta - isOriginalContent - isCrosspostable - isRedditMediaDomain - isMediaOnly - isSensitive - isSpoiler - isStickied - isLocked - isArchived - isPinned - visibility - comments - distinguishedBy - removedByCategory - topAwardedType - flair - thumbnail - media - embed type: object TikTokHashtagClassification: additionalProperties: false properties: challengeCode: type: - integer - 'null' subtypeCode: type: - integer - 'null' typeCode: type: - integer - 'null' required: - typeCode - subtypeCode - challengeCode type: object TikTokTextRange: additionalProperties: false properties: end: type: - integer - 'null' start: type: - integer - 'null' required: - start - end type: object InstagramProfileBroadcastChannels: additionalProperties: false properties: hasPublicChannels: type: - boolean - 'null' isCreator: type: - boolean - 'null' pinned: items: $ref: '#/components/schemas/InstagramProfileBroadcastChannel' type: - array - 'null' required: - isCreator - hasPublicChannels - pinned type: object TwitterMediaSource: additionalProperties: false properties: authorId: minLength: 1 type: - string - 'null' postId: minLength: 1 type: - string - 'null' required: - postId - authorId type: object TikTokEffectClassification: additionalProperties: false properties: creatorTypeCode: type: - integer - 'null' sourceCode: type: - integer - 'null' required: - creatorTypeCode - sourceCode type: object InstagramNote: additionalProperties: false properties: author: anyOf: - $ref: '#/components/schemas/InstagramProfileReference' - type: 'null' createdAt: format: date-time minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' text: minLength: 1 type: - string - 'null' required: - id - text - createdAt - author type: object TikTokMusicContext: additionalProperties: false properties: label: minLength: 1 type: - string - 'null' required: - label type: object TikTokPostTemplate: additionalProperties: false properties: authorName: minLength: 1 type: - string - 'null' description: minLength: 1 type: - string - 'null' duration: type: - number - 'null' id: minLength: 1 type: - string - 'null' metrics: $ref: '#/components/schemas/TikTokTemplateMetrics' musicId: minLength: 1 type: - string - 'null' required: - id - authorName - description - duration - musicId - metrics type: object InstagramProfileBroadcastChannel: additionalProperties: false properties: avatar: anyOf: - $ref: '#/components/schemas/InstagramImage' - type: 'null' cover: anyOf: - $ref: '#/components/schemas/InstagramImage' - type: 'null' creator: additionalProperties: false properties: handle: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' isVerified: type: - boolean - 'null' required: - id - handle - isVerified type: object id: minLength: 1 type: - string - 'null' metrics: additionalProperties: false properties: members: type: - integer - 'null' required: - members type: object title: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - title - url - avatar - cover - creator - metrics type: object RedditThumbnail: additionalProperties: false properties: height: type: - integer - 'null' state: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' width: type: - integer - 'null' required: - type - url - state - width - height type: object TikTokEffectReference: additionalProperties: false properties: attributions: items: $ref: '#/components/schemas/TikTokUnspecified' type: - array - 'null' children: items: $ref: '#/components/schemas/TikTokUnspecified' type: - array - 'null' classification: $ref: '#/components/schemas/TikTokEffectClassification' creation: $ref: '#/components/schemas/TikTokEffectCreation' description: minLength: 1 type: - string - 'null' effectId: minLength: 1 type: - string - 'null' icon: anyOf: - $ref: '#/components/schemas/TikTokAsset' - type: 'null' id: minLength: 1 type: - string - 'null' isTopEffect: type: - boolean - 'null' linkedAnchors: items: $ref: '#/components/schemas/TikTokUnspecified' type: - array - 'null' metrics: $ref: '#/components/schemas/TikTokEffectMetrics' name: minLength: 1 type: - string - 'null' owner: anyOf: - $ref: '#/components/schemas/TikTokEffectOwner' - type: 'null' publishedAt: format: date-time minLength: 1 type: - string - 'null' resourceId: minLength: 1 type: - string - 'null' tags: items: minLength: 1 type: string type: - array - 'null' triggers: items: $ref: '#/components/schemas/TikTokEffectTrigger' type: - array - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - effectId - resourceId - name - description - publishedAt - url - isTopEffect - tags - owner - icon - metrics - classification - creation - triggers - children - attributions - linkedAnchors type: object TikTokHashtag: additionalProperties: false properties: avatar: anyOf: - $ref: '#/components/schemas/TikTokAsset' - type: 'null' classification: $ref: '#/components/schemas/TikTokHashtagClassification' cover: anyOf: - $ref: '#/components/schemas/TikTokAsset' - type: 'null' description: minLength: 1 type: - string - 'null' id: minLength: 1 type: string isCommerce: type: - boolean - 'null' isStrongMusic: type: - boolean - 'null' metrics: $ref: '#/components/schemas/TikTokHashtagMetrics' music: items: $ref: '#/components/schemas/TikTokMusicReference' type: - array - 'null' name: minLength: 1 type: - string - 'null' searchContext: $ref: '#/components/schemas/TikTokHashtagSearchContext' url: format: uri minLength: 1 type: string required: - id - name - url - description - isCommerce - isStrongMusic - classification - metrics - avatar - cover - music - searchContext type: object TwitterPostReference: additionalProperties: false properties: article: anyOf: - $ref: '#/components/schemas/TwitterArticle' - type: 'null' author: anyOf: - $ref: '#/components/schemas/TwitterProfileReference' - type: 'null' authorId: minLength: 1 type: - string - 'null' card: anyOf: - $ref: '#/components/schemas/TwitterCard' - type: 'null' communityNote: anyOf: - $ref: '#/components/schemas/TwitterCommunityNote' - type: 'null' conversationId: minLength: 1 type: - string - 'null' createdAt: format: date-time minLength: 1 type: - string - 'null' displayTextRange: anyOf: - $ref: '#/components/schemas/TwitterRange' - type: 'null' edit: anyOf: - $ref: '#/components/schemas/TwitterEdit' - type: 'null' entities: items: $ref: '#/components/schemas/TwitterEntity' type: - array - 'null' hasGrokAnalysisButton: type: - boolean - 'null' id: minLength: 1 type: - string - 'null' inReplyToHandle: minLength: 1 type: - string - 'null' inReplyToPostId: minLength: 1 type: - string - 'null' inReplyToUserId: minLength: 1 type: - string - 'null' isPromoted: type: - boolean - 'null' isQuote: type: - boolean - 'null' isRepost: type: - boolean - 'null' isSensitive: type: - boolean - 'null' language: minLength: 1 type: - string - 'null' longText: anyOf: - $ref: '#/components/schemas/TwitterLongText' - type: 'null' media: items: $ref: '#/components/schemas/TwitterMedia' type: - array - 'null' metrics: $ref: '#/components/schemas/TwitterPostMetrics' preview: anyOf: - $ref: '#/components/schemas/TwitterPreview' - type: 'null' previousMetrics: anyOf: - $ref: '#/components/schemas/TwitterPreviousMetrics' - type: 'null' promotion: anyOf: - $ref: '#/components/schemas/TwitterPromotion' - type: 'null' quotedPost: anyOf: - $ref: '#/components/schemas/TwitterPostReference' - type: 'null' quotedPostId: minLength: 1 type: - string - 'null' repostedPost: anyOf: - $ref: '#/components/schemas/TwitterPostReference' - type: 'null' restrictions: items: $ref: '#/components/schemas/TwitterRestriction' type: - array - 'null' text: minLength: 1 type: - string - 'null' timeline: anyOf: - $ref: '#/components/schemas/TwitterTimelinePlacement' - type: 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - text - language - isSensitive - isQuote - createdAt - conversationId - authorId - inReplyToPostId - inReplyToUserId - inReplyToHandle - quotedPostId - author - url - metrics - displayTextRange - media - entities - edit - hasGrokAnalysisButton - communityNote - isRepost - repostedPost - quotedPost - preview - longText - article - previousMetrics - card - restrictions - isPromoted - promotion - timeline type: object RedditEmbed: additionalProperties: false properties: author: anyOf: - $ref: '#/components/schemas/RedditEmbedAuthor' - type: 'null' domain: minLength: 1 type: - string - 'null' height: type: - integer - 'null' html: minLength: 1 type: - string - 'null' mediaDomainUrl: format: uri minLength: 1 type: - string - 'null' provider: anyOf: - $ref: '#/components/schemas/RedditEmbedSource' - type: 'null' scrolling: type: - boolean - 'null' thumbnail: anyOf: - $ref: '#/components/schemas/RedditThumbnail' - type: 'null' title: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' version: minLength: 1 type: - string - 'null' width: type: - integer - 'null' required: - domain - version - title - type - html - height - width - provider - author - thumbnail - scrolling - mediaDomainUrl type: object InstagramMediaVariant: additionalProperties: false properties: bitrate: type: - integer - 'null' height: type: - integer - 'null' id: minLength: 1 type: - string - 'null' isSpatial: type: - boolean - 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' width: type: - integer - 'null' required: - id - type - url - width - height - bitrate - isSpatial type: object InstagramProfileFundraisers: additionalProperties: false properties: items: items: {} type: - array - 'null' metrics: additionalProperties: false properties: active: type: - integer - 'null' required: - active type: object required: - metrics - items type: object TwitterRestriction: additionalProperties: false properties: action: minLength: 1 type: - string - 'null' message: minLength: 1 type: - string - 'null' required: - action - message type: object InstagramUserTag: additionalProperties: false properties: position: $ref: '#/components/schemas/InstagramPosition' user: $ref: '#/components/schemas/InstagramProfileReference' required: - user - position type: object RedditListingContext: additionalProperties: false properties: originalPost: anyOf: - $ref: '#/components/schemas/RedditPostReference' - type: 'null' post: anyOf: - $ref: '#/components/schemas/RedditPostReference' - type: 'null' required: - post - originalPost type: object TwitterEntity: additionalProperties: false properties: displayName: minLength: 1 type: - string - 'null' displayUrl: format: uri minLength: 1 type: - string - 'null' handle: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' mediaId: minLength: 1 type: - string - 'null' range: anyOf: - $ref: '#/components/schemas/TwitterRange' - type: 'null' shortUrl: format: uri minLength: 1 type: - string - 'null' text: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - type - range - shortUrl - url - displayUrl - text - handle - id - displayName - mediaId type: object RedditPostVisibility: additionalProperties: false properties: isRobotIndexable: type: - boolean - 'null' isScoreHidden: type: - boolean - 'null' required: - isRobotIndexable - isScoreHidden type: object RedditMedia: additionalProperties: false properties: bitrateKbps: type: - integer - 'null' caption: minLength: 1 type: - string - 'null' duration: type: - number - 'null' hasAudio: type: - boolean - 'null' height: type: - integer - 'null' id: minLength: 1 type: - string - 'null' isAnimated: type: - boolean - 'null' mimeType: minLength: 1 type: - string - 'null' scrubber: anyOf: - $ref: '#/components/schemas/RedditMediaVariant' - type: 'null' transcodingStatus: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' variants: items: $ref: '#/components/schemas/RedditMediaVariant' type: - array - 'null' width: type: - integer - 'null' required: - type - id - width - height - mimeType - caption - url - variants - bitrateKbps - hasAudio - duration - isAnimated - transcodingStatus - scrubber type: object TwitterCardDestination: additionalProperties: false properties: appGroupId: minLength: 1 type: - string - 'null' displayUrl: format: uri minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' mediaKey: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - type - mediaKey - appGroupId - url - displayUrl type: object TikTokMusicPreview: additionalProperties: false properties: duration: type: - number - 'null' endTime: type: - number - 'null' startTime: type: - number - 'null' required: - startTime - endTime - duration type: object InstagramProfileContentSettings: additionalProperties: false properties: highlightResharingEnabled: type: - boolean - 'null' postRemixingEnabled: type: - boolean - 'null' postResharingEnabled: type: - boolean - 'null' reelRemixingEnabled: type: - boolean - 'null' required: - postResharingEnabled - highlightResharingEnabled - postRemixingEnabled - reelRemixingEnabled type: object InstagramMedia: additionalProperties: false properties: altText: minLength: 1 type: - string - 'null' audio: anyOf: - $ref: '#/components/schemas/InstagramAudioReference' - type: 'null' bitrate: type: - integer - 'null' commercialityStatus: minLength: 1 type: - string - 'null' createdAt: format: date-time minLength: 1 type: - string - 'null' crops: additionalProperties: false properties: feedPreview: $ref: '#/components/schemas/InstagramCrop' fourByThree: $ref: '#/components/schemas/InstagramCrop' square: $ref: '#/components/schemas/InstagramCrop' required: - fourByThree - square - feedPreview type: object duration: type: - number - 'null' firstFrame: anyOf: - $ref: '#/components/schemas/InstagramImage' - type: 'null' hasAudio: type: - boolean - 'null' height: type: - integer - 'null' id: minLength: 1 type: - string - 'null' originalHeight: type: - integer - 'null' originalWidth: type: - integer - 'null' parentId: minLength: 1 type: - string - 'null' productTags: items: $ref: '#/components/schemas/InstagramProductTag' type: - array - 'null' scrubber: anyOf: - $ref: '#/components/schemas/InstagramScrubber' - type: 'null' streaming: anyOf: - $ref: '#/components/schemas/InstagramStreaming' - type: 'null' subtitles: anyOf: - $ref: '#/components/schemas/InstagramSubtitles' - type: 'null' taggedUsers: items: $ref: '#/components/schemas/InstagramUserTag' type: - array - 'null' thumbnail: anyOf: - $ref: '#/components/schemas/InstagramImage' - type: 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' variants: items: $ref: '#/components/schemas/InstagramMediaVariant' type: - array - 'null' width: type: - integer - 'null' required: - id - type - parentId - createdAt - url - width - height - originalWidth - originalHeight - bitrate - hasAudio - altText - commercialityStatus - duration - variants - thumbnail - firstFrame - scrubber - streaming - subtitles - audio - taggedUsers - productTags - crops type: object TwitterProfessionalCategory: additionalProperties: false properties: id: minLength: 1 type: - string - 'null' name: minLength: 1 type: - string - 'null' required: - id - name type: object ResponseCursors: properties: next: type: - string - 'null' required: - next type: object TwitterEdit: additionalProperties: false properties: editableUntil: minLength: 1 type: - string - 'null' historyIds: items: minLength: 1 type: string type: - array - 'null' initialPostId: minLength: 1 type: - string - 'null' remaining: type: - integer - 'null' required: - historyIds - editableUntil - remaining - initialPostId type: object TikTokLocationAddress: additionalProperties: false properties: city: minLength: 1 type: - string - 'null' cityCode: minLength: 1 type: - string - 'null' countryCode: minLength: 1 type: - string - 'null' district: anyOf: - $ref: '#/components/schemas/TikTokDistrict' - type: 'null' fallback: minLength: 1 type: - string - 'null' formatted: minLength: 1 type: - string - 'null' regionCode: minLength: 1 type: - string - 'null' required: - formatted - fallback - city - cityCode - regionCode - countryCode - district type: object TikTokCommentMetrics: additionalProperties: false properties: likes: type: - integer - 'null' replies: type: - integer - 'null' required: - likes - replies type: object TikTokPost: additionalProperties: false properties: ai: $ref: '#/components/schemas/TikTokPostAI' audio: $ref: '#/components/schemas/TikTokPostAudio' author: anyOf: - $ref: '#/components/schemas/TikTokProfileReference' - type: 'null' authorId: minLength: 1 type: - string - 'null' caption: $ref: '#/components/schemas/TikTokPostCaption' collaborators: items: $ref: '#/components/schemas/TikTokCollaborator' type: - array - 'null' commerce: $ref: '#/components/schemas/TikTokPostCommerce' cover: anyOf: - $ref: '#/components/schemas/TikTokAsset' - type: 'null' createdAt: format: date-time minLength: 1 type: string description: minLength: 1 type: - string - 'null' effects: items: $ref: '#/components/schemas/TikTokEffectReference' type: - array - 'null' entities: items: $ref: '#/components/schemas/TikTokTextEntity' type: - array - 'null' hasDanmaku: type: - boolean - 'null' hasPromotionalMusic: type: - boolean - 'null' hashtags: items: $ref: '#/components/schemas/TikTokHashtagReference' type: array id: minLength: 1 type: string isAd: type: - boolean - 'null' isMeme: type: - boolean - 'null' isPaidContent: type: - boolean - 'null' isPinned: type: - boolean - 'null' isVr: type: - boolean - 'null' language: minLength: 1 type: - string - 'null' locations: items: $ref: '#/components/schemas/TikTokLocationReference' type: - array - 'null' media: items: $ref: '#/components/schemas/TikTokAsset' type: array metrics: $ref: '#/components/schemas/TikTokPostMetrics' musicContext: $ref: '#/components/schemas/TikTokMusicContext' onScreenText: items: $ref: '#/components/schemas/TikTokUnspecified' type: - array - 'null' paidCollectionId: minLength: 1 type: - string - 'null' playlist: anyOf: - $ref: '#/components/schemas/TikTokPlaylistReference' - type: 'null' region: minLength: 1 type: - string - 'null' searchContext: $ref: '#/components/schemas/TikTokPostSearchContext' status: $ref: '#/components/schemas/TikTokPostStatus' stickers: items: $ref: '#/components/schemas/TikTokInteractionSticker' type: - array - 'null' template: anyOf: - $ref: '#/components/schemas/TikTokPostTemplate' - type: 'null' text: minLength: 1 type: - string - 'null' title: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: string required: - id - type - url - text - title - description - region - language - createdAt - author - authorId - isAd - isPaidContent - isVr - hasPromotionalMusic - hasDanmaku - isPinned - isMeme - media - cover - metrics - status - ai - commerce - entities - hashtags - locations - caption - searchContext - collaborators - audio - template - paidCollectionId - onScreenText - playlist - effects - stickers - musicContext type: object TwitterCardText: additionalProperties: false properties: isRightToLeft: type: - boolean - 'null' text: minLength: 1 type: - string - 'null' required: - text - isRightToLeft type: object TikTokProductCategory: additionalProperties: false properties: id: minLength: 1 type: - string - 'null' isLeaf: type: - boolean - 'null' level: type: - integer - 'null' name: minLength: 1 type: - string - 'null' parentId: minLength: 1 type: - string - 'null' required: - id - name - level - isLeaf - parentId type: object TikTokAsset: additionalProperties: false properties: bitrate: type: - integer - 'null' codecCode: type: - integer - 'null' covers: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' duration: type: - number - 'null' expiresAt: format: date-time minLength: 1 type: - string - 'null' format: minLength: 1 type: - string - 'null' frameRate: type: - number - 'null' hasWatermark: type: - boolean - 'null' hash: minLength: 1 type: - string - 'null' height: type: - integer - 'null' id: minLength: 1 type: - string - 'null' isAutoGenerated: type: - boolean - 'null' isBytevc1: type: - boolean - 'null' isOriginal: type: - boolean - 'null' label: minLength: 1 type: - string - 'null' language: minLength: 1 type: - string - 'null' locale: minLength: 1 type: - string - 'null' previewThumbnails: items: $ref: '#/components/schemas/TikTokPreviewThumbnails' type: - array - 'null' qualityCode: type: - integer - 'null' qualityLabel: minLength: 1 type: - string - 'null' renditions: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' role: minLength: 1 type: - string - 'null' size: type: - integer - 'null' subtitles: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' variants: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' version: minLength: 1 type: - string - 'null' volumeInfo: $ref: '#/components/schemas/TikTokVolumeInfo' width: type: - integer - 'null' required: - volumeInfo - id - type - url - width - height - size - hash - role - label - duration - hasWatermark - qualityLabel - qualityCode - bitrate - frameRate - isBytevc1 - codecCode - format - language - locale - isAutoGenerated - isOriginal - version - expiresAt - renditions - covers - subtitles - previewThumbnails - variants type: object TikTokLocationMetrics: additionalProperties: false properties: favorites: type: - integer - 'null' reviews: type: - integer - 'null' videos: type: - integer - 'null' required: - favorites - reviews - videos type: object InstagramLocationHours: additionalProperties: false properties: currentStatus: minLength: 1 type: - string - 'null' isOpen: type: - boolean - 'null' schedule: items: {} type: - array - 'null' status: minLength: 1 type: - string - 'null' today: minLength: 1 type: - string - 'null' required: - status - currentStatus - today - isOpen - schedule type: object RedditEmbedAuthor: additionalProperties: false properties: displayName: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - displayName - url type: object TikTokEffect: additionalProperties: false properties: attributions: items: $ref: '#/components/schemas/TikTokUnspecified' type: - array - 'null' children: items: $ref: '#/components/schemas/TikTokUnspecified' type: - array - 'null' classification: $ref: '#/components/schemas/TikTokEffectClassification' creation: $ref: '#/components/schemas/TikTokEffectCreation' description: minLength: 1 type: - string - 'null' effectId: minLength: 1 type: - string - 'null' icon: anyOf: - $ref: '#/components/schemas/TikTokAsset' - type: 'null' id: minLength: 1 type: string isTopEffect: type: - boolean - 'null' linkedAnchors: items: $ref: '#/components/schemas/TikTokUnspecified' type: - array - 'null' metrics: $ref: '#/components/schemas/TikTokEffectMetrics' name: minLength: 1 type: - string - 'null' owner: anyOf: - $ref: '#/components/schemas/TikTokEffectOwner' - type: 'null' publishedAt: format: date-time minLength: 1 type: - string - 'null' resourceId: minLength: 1 type: - string - 'null' tags: items: minLength: 1 type: string type: - array - 'null' triggers: items: $ref: '#/components/schemas/TikTokEffectTrigger' type: - array - 'null' url: format: uri minLength: 1 type: string required: - id - effectId - resourceId - name - description - publishedAt - url - isTopEffect - tags - owner - icon - metrics - classification - creation - triggers - children - attributions - linkedAnchors type: object TikTokPostReference: additionalProperties: false properties: ai: $ref: '#/components/schemas/TikTokPostAI' audio: $ref: '#/components/schemas/TikTokPostAudio' author: anyOf: - $ref: '#/components/schemas/TikTokProfileReference' - type: 'null' authorId: minLength: 1 type: - string - 'null' caption: $ref: '#/components/schemas/TikTokPostCaption' collaborators: items: $ref: '#/components/schemas/TikTokCollaborator' type: - array - 'null' commerce: $ref: '#/components/schemas/TikTokPostCommerce' cover: anyOf: - $ref: '#/components/schemas/TikTokAsset' - type: 'null' createdAt: format: date-time minLength: 1 type: - string - 'null' description: minLength: 1 type: - string - 'null' effects: items: $ref: '#/components/schemas/TikTokEffectReference' type: - array - 'null' entities: items: $ref: '#/components/schemas/TikTokTextEntity' type: - array - 'null' hasDanmaku: type: - boolean - 'null' hasPromotionalMusic: type: - boolean - 'null' hashtags: items: $ref: '#/components/schemas/TikTokHashtagReference' type: - array - 'null' id: minLength: 1 type: - string - 'null' isAd: type: - boolean - 'null' isMeme: type: - boolean - 'null' isPaidContent: type: - boolean - 'null' isPinned: type: - boolean - 'null' isVr: type: - boolean - 'null' language: minLength: 1 type: - string - 'null' locations: items: $ref: '#/components/schemas/TikTokLocationReference' type: - array - 'null' media: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' metrics: $ref: '#/components/schemas/TikTokPostMetrics' musicContext: $ref: '#/components/schemas/TikTokMusicContext' onScreenText: items: $ref: '#/components/schemas/TikTokUnspecified' type: - array - 'null' paidCollectionId: minLength: 1 type: - string - 'null' playlist: anyOf: - $ref: '#/components/schemas/TikTokPlaylistReference' - type: 'null' region: minLength: 1 type: - string - 'null' searchContext: $ref: '#/components/schemas/TikTokPostSearchContext' status: $ref: '#/components/schemas/TikTokPostStatus' stickers: items: $ref: '#/components/schemas/TikTokInteractionSticker' type: - array - 'null' template: anyOf: - $ref: '#/components/schemas/TikTokPostTemplate' - type: 'null' text: minLength: 1 type: - string - 'null' title: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - type - url - text - title - description - region - language - createdAt - author - authorId - isAd - isPaidContent - isVr - hasPromotionalMusic - hasDanmaku - isPinned - isMeme - media - cover - metrics - status - ai - commerce - entities - hashtags - locations - caption - searchContext - collaborators - audio - template - paidCollectionId - onScreenText - playlist - effects - stickers - musicContext type: object InstagramProductTag: additionalProperties: false properties: position: $ref: '#/components/schemas/InstagramPosition' product: $ref: '#/components/schemas/InstagramProduct' required: - product - position type: object InstagramPostMetrics: additionalProperties: false properties: comments: type: - integer - 'null' facebook: additionalProperties: false properties: comments: type: - integer - 'null' likes: type: - integer - 'null' plays: type: - integer - 'null' required: - likes - plays - comments type: object instagram: additionalProperties: false properties: plays: type: - integer - 'null' required: - plays type: object likes: type: - integer - 'null' plays: type: - integer - 'null' premiumReactions: type: - integer - 'null' reposts: type: - integer - 'null' reshares: type: - integer - 'null' saves: type: - integer - 'null' views: type: - integer - 'null' required: - likes - comments - saves - reshares - reposts - premiumReactions - plays - views - instagram - facebook type: object TwitterMediaVariant: additionalProperties: false properties: bitrate: type: - integer - 'null' contentType: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - url - bitrate - contentType type: object TwitterPostMetrics: additionalProperties: false properties: comments: type: - integer - 'null' likes: type: - integer - 'null' quotes: type: - integer - 'null' reposts: type: - integer - 'null' saves: type: - integer - 'null' views: type: - integer - 'null' viewsState: minLength: 1 type: - string - 'null' required: - likes - comments - reposts - quotes - saves - views - viewsState type: object TwitterTimelinePlacement: additionalProperties: false properties: conversationSection: minLength: 1 type: - string - 'null' displayType: minLength: 1 type: - string - 'null' moduleDisplayType: minLength: 1 type: - string - 'null' position: type: - integer - 'null' required: - position - conversationSection - moduleDisplayType - displayType type: object TikTokHashtagSearchContext: additionalProperties: false properties: name: minLength: 1 type: - string - 'null' required: - name type: object TikTokProfile: additionalProperties: false properties: accountType: type: - integer - 'null' avatar: anyOf: - $ref: '#/components/schemas/TikTokAsset' - type: 'null' bio: minLength: 1 type: - string - 'null' category: minLength: 1 type: - string - 'null' commerce: additionalProperties: false properties: hasLiveCommerce: type: - boolean - 'null' hasNewProducts: type: - boolean - 'null' level: type: - integer - 'null' required: - level - hasLiveCommerce - hasNewProducts type: object createdAt: format: date-time minLength: 1 type: - string - 'null' displayName: minLength: 1 type: - string - 'null' handle: minLength: 1 type: string id: minLength: 1 type: string isAdVirtual: type: - boolean - 'null' isCanceled: type: - boolean - 'null' isDisciplineMember: type: - boolean - 'null' isEffectArtist: type: - boolean - 'null' isPrivate: type: - boolean - 'null' isStar: type: - boolean - 'null' isVerified: type: - boolean - 'null' language: minLength: 1 type: - string - 'null' metrics: $ref: '#/components/schemas/TikTokProfileMetrics' music: additionalProperties: false properties: metrics: additionalProperties: false properties: likes: type: - integer - 'null' tracks: type: - integer - 'null' uses: type: - integer - 'null' required: - tracks - uses - likes type: object newReleaseIds: items: minLength: 1 type: string type: - array - 'null' required: - metrics - newReleaseIds type: object predictions: additionalProperties: false properties: ageGroup: minLength: 1 type: - string - 'null' required: - ageGroup type: object privacy: additionalProperties: false properties: followingVisibility: type: - integer - 'null' required: - followingVisibility type: object regionCode: minLength: 1 type: - string - 'null' searchContext: additionalProperties: false properties: description: minLength: 1 type: - string - 'null' name: minLength: 1 type: - string - 'null' nameField: minLength: 1 type: - string - 'null' required: - description - name - nameField type: object secUid: minLength: 1 type: - string - 'null' socialLinks: items: $ref: '#/components/schemas/TikTokSocialLink' type: - array - 'null' stories: additionalProperties: false properties: changedAt: format: date-time minLength: 1 type: - string - 'null' items: items: $ref: '#/components/schemas/TikTokStoryReference' type: - array - 'null' metrics: additionalProperties: false properties: countsByPostType: items: $ref: '#/components/schemas/TikTokStoryCount' type: - array - 'null' required: - countsByPostType type: object required: - items - changedAt - metrics type: object storyStatus: type: - integer - 'null' url: format: uri minLength: 1 type: string verification: additionalProperties: false properties: badgeType: type: - integer - 'null' customLabel: minLength: 1 type: - string - 'null' label: minLength: 1 type: - string - 'null' type: type: - integer - 'null' required: - type - badgeType - label - customLabel type: object required: - id - secUid - handle - displayName - bio - url - createdAt - avatar - isPrivate - isVerified - accountType - isEffectArtist - isAdVirtual - isStar - storyStatus - isDisciplineMember - isCanceled - regionCode - language - category - verification - metrics - commerce - privacy - music - predictions - searchContext - socialLinks - stories type: object InstagramSubtitles: additionalProperties: false properties: confidence: type: - number - 'null' enabled: type: - boolean - 'null' generated: type: - boolean - 'null' locale: minLength: 1 type: - string - 'null' status: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - enabled - generated - status - locale - confidence - url type: object TikTokCollaborator: additionalProperties: false properties: profile: $ref: '#/components/schemas/TikTokProfileReference' status: type: - integer - 'null' required: - profile - status type: object TikTokStoryCount: additionalProperties: false properties: count: type: - integer - 'null' postTypeCode: type: - integer - 'null' required: - postTypeCode - count type: object TikTokServiceCategory: additionalProperties: false properties: code: type: - integer - 'null' name: minLength: 1 type: - string - 'null' required: - name - code type: object TwitterSuggestedQuery: additionalProperties: false properties: text: minLength: 1 type: - string - 'null' required: - text type: object TwitterProfileEntities: additionalProperties: false properties: bio: items: $ref: '#/components/schemas/TwitterEntity' type: - array - 'null' externalUrl: items: $ref: '#/components/schemas/TwitterEntity' type: - array - 'null' required: - bio - externalUrl type: object TwitterRange: additionalProperties: false properties: end: type: integer start: type: integer required: - start - end type: object TikTokCategory: additionalProperties: false properties: avatar: anyOf: - $ref: '#/components/schemas/TikTokAsset' - type: 'null' categoryContext: $ref: '#/components/schemas/TikTokCategoryContext' classification: $ref: '#/components/schemas/TikTokHashtagClassification' cover: anyOf: - $ref: '#/components/schemas/TikTokAsset' - type: 'null' description: minLength: 1 type: - string - 'null' id: minLength: 1 type: string isCommerce: type: - boolean - 'null' isStrongMusic: type: - boolean - 'null' metrics: $ref: '#/components/schemas/TikTokHashtagMetrics' music: items: $ref: '#/components/schemas/TikTokMusicReference' type: - array - 'null' name: minLength: 1 type: - string - 'null' previewPosts: items: $ref: '#/components/schemas/TikTokPostReference' type: - array - 'null' searchContext: $ref: '#/components/schemas/TikTokHashtagSearchContext' url: format: uri minLength: 1 type: string required: - id - name - url - description - isCommerce - isStrongMusic - classification - metrics - avatar - cover - music - searchContext - categoryContext - previewPosts type: object TikTokInteractionSticker: additionalProperties: false properties: hashtag: anyOf: - $ref: '#/components/schemas/TikTokHashtagReference' - type: 'null' index: type: - integer - 'null' isTextHashtag: type: - boolean - 'null' materialIndex: type: - integer - 'null' positions: items: $ref: '#/components/schemas/TikTokStickerPosition' type: - array - 'null' text: minLength: 1 type: - string - 'null' typeCode: type: - integer - 'null' required: - typeCode - index - materialIndex - text - hashtag - isTextHashtag - positions type: object TikTokTextEntity: additionalProperties: false properties: end: type: - integer - 'null' hashtag: anyOf: - $ref: '#/components/schemas/TikTokHashtagReference' - type: 'null' start: type: - integer - 'null' tagId: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' typeCode: type: - integer - 'null' user: anyOf: - $ref: '#/components/schemas/TikTokProfileReference' - type: 'null' required: - type - typeCode - start - end - tagId - user - hashtag type: object TikTokMatchedTrack: additionalProperties: false properties: artistName: minLength: 1 type: - string - 'null' artists: items: $ref: '#/components/schemas/TikTokProfileReference' type: - array - 'null' chorus: $ref: '#/components/schemas/TikTokMusicPreview' cover: anyOf: - $ref: '#/components/schemas/TikTokAsset' - type: 'null' duration: type: - number - 'null' id: minLength: 1 type: - string - 'null' mixedArtistName: minLength: 1 type: - string - 'null' mixedTitle: minLength: 1 type: - string - 'null' release: $ref: '#/components/schemas/TikTokMusicRelease' title: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - title - artistName - mixedTitle - mixedArtistName - cover - duration - chorus - url - artists - release type: object TikTokPostAudio: additionalProperties: false properties: addedTrack: anyOf: - $ref: '#/components/schemas/TikTokMusicReference' - type: 'null' addedVolume: type: - number - 'null' endTime: type: - number - 'null' originalVolume: type: - number - 'null' startTime: type: - number - 'null' track: anyOf: - $ref: '#/components/schemas/TikTokMusicReference' - type: 'null' usesFullSong: type: - boolean - 'null' required: - track - addedTrack - startTime - endTime - originalVolume - addedVolume - usesFullSong type: object TikTokProfileMetrics: additionalProperties: false properties: followers: type: - integer - 'null' following: type: - integer - 'null' likedPosts: type: - integer - 'null' likes: type: - integer - 'null' posts: type: - integer - 'null' visiblePosts: type: - integer - 'null' required: - followers - following - posts - visiblePosts - likes - likedPosts type: object TikTokRatingSource: additionalProperties: false properties: code: type: - integer - 'null' name: minLength: 1 type: - string - 'null' required: - code - name type: object TikTokCategoryContext: additionalProperties: false properties: label: minLength: 1 type: - string - 'null' typeCode: type: - integer - 'null' required: - typeCode - label type: object TwitterCardMediaRef: additionalProperties: false properties: destinationId: minLength: 1 type: - string - 'null' key: minLength: 1 type: - string - 'null' required: - key - destinationId type: object InstagramStreaming: additionalProperties: false properties: dash: anyOf: - $ref: '#/components/schemas/InstagramDASH' - type: 'null' required: - dash type: object TikTokOpeningHoursEntry: additionalProperties: false properties: dayCode: type: - integer - 'null' text: minLength: 1 type: - string - 'null' required: - dayCode - text type: object TwitterBroadcastMedia: additionalProperties: false properties: id: minLength: 1 type: - string - 'null' key: minLength: 1 type: - string - 'null' required: - id - key type: object TikTokPageContinuation: additionalProperties: false properties: maxTime: type: - integer - 'null' minTime: type: - integer - 'null' offset: type: - integer - 'null' pageToken: minLength: 1 type: - string - 'null' required: - pageToken - minTime - maxTime - offset type: object TikTokHashtagMetrics: additionalProperties: false properties: users: type: - integer - 'null' uses: type: - integer - 'null' views: type: - integer - 'null' required: - uses - users - views type: object TikTokMusic: additionalProperties: false properties: album: minLength: 1 type: - string - 'null' appleMusicSongId: minLength: 1 type: - string - 'null' artistName: minLength: 1 type: - string - 'null' artists: items: $ref: '#/components/schemas/TikTokProfileReference' type: - array - 'null' audio: anyOf: - $ref: '#/components/schemas/TikTokAsset' - type: 'null' beatData: anyOf: - $ref: '#/components/schemas/TikTokBeatData' - type: 'null' chartContext: $ref: '#/components/schemas/TikTokMusicChartContext' classification: $ref: '#/components/schemas/TikTokMusicClassification' covers: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' createdAt: format: date-time minLength: 1 type: - string - 'null' duration: type: - number - 'null' durations: $ref: '#/components/schemas/TikTokMusicDurations' externalSongs: items: $ref: '#/components/schemas/TikTokUnspecified' type: - array - 'null' grouping: $ref: '#/components/schemas/TikTokMusicGrouping' hasBehindTheSong: type: - boolean - 'null' hasHumanVoice: type: - boolean - 'null' hasMatchedMetadata: type: - boolean - 'null' id: minLength: 1 type: string isAuthorArtist: type: - boolean - 'null' isAuthorDeleted: type: - boolean - 'null' isOriginal: type: - boolean - 'null' isOriginalSound: type: - boolean - 'null' isPgc: type: - boolean - 'null' isPlayMusic: type: - boolean - 'null' lyricAssets: items: $ref: '#/components/schemas/TikTokLyricAsset' type: - array - 'null' matchedCatalogTrack: anyOf: - $ref: '#/components/schemas/TikTokMusicReference' - type: 'null' matchedSong: anyOf: - $ref: '#/components/schemas/TikTokMatchedTrack' - type: 'null' matchedSound: anyOf: - $ref: '#/components/schemas/TikTokMatchedTrack' - type: 'null' metrics: $ref: '#/components/schemas/TikTokMusicMetrics' mid: minLength: 1 type: - string - 'null' owner: anyOf: - $ref: '#/components/schemas/TikTokProfileReference' - type: 'null' preview: $ref: '#/components/schemas/TikTokMusicPreview' recommendationStatusCode: type: - integer - 'null' release: $ref: '#/components/schemas/TikTokMusicRelease' searchContext: $ref: '#/components/schemas/TikTokMusicSearchContext' similarTracks: items: $ref: '#/components/schemas/TikTokMusicReference' type: - array - 'null' source: $ref: '#/components/schemas/TikTokMusicSource' streamingLinks: items: $ref: '#/components/schemas/TikTokStreamingLink' type: - array - 'null' title: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - mid - title - artistName - album - url - duration - createdAt - isOriginal - isOriginalSound - isAuthorArtist - hasHumanVoice - isAuthorDeleted - isPgc - hasMatchedMetadata - recommendationStatusCode - isPlayMusic - owner - artists - metrics - audio - covers - beatData - durations - release - preview - matchedSong - matchedSound - classification - grouping - streamingLinks - lyricAssets - source - appleMusicSongId - searchContext - chartContext - matchedCatalogTrack - hasBehindTheSong - similarTracks - externalSongs type: object InstagramCommentReference: additionalProperties: false properties: ai: additionalProperties: false properties: type: minLength: 1 type: - string - 'null' required: - type type: object author: anyOf: - $ref: '#/components/schemas/InstagramProfileReference' - type: 'null' createdAt: format: date-time minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' isByPostAuthor: type: - boolean - 'null' isCovered: type: - boolean - 'null' isEdited: type: - boolean - 'null' isLikedByPostAuthor: type: - boolean - 'null' isPinned: type: - boolean - 'null' keywords: items: {} type: - array - 'null' likedByCoauthors: items: $ref: '#/components/schemas/InstagramProfileReference' type: - array - 'null' media: items: $ref: '#/components/schemas/InstagramImage' type: - array - 'null' metrics: $ref: '#/components/schemas/InstagramCommentMetrics' parentId: minLength: 1 type: - string - 'null' pinnedPosition: type: - integer - 'null' postId: minLength: 1 type: - string - 'null' previewUsers: items: $ref: '#/components/schemas/InstagramProfileReference' type: - array - 'null' ranking: additionalProperties: false properties: index: type: - integer - 'null' isRanked: type: - boolean - 'null' replyIndex: type: - integer - 'null' required: - index - replyIndex - isRanked type: object replies: items: $ref: '#/components/schemas/InstagramCommentReference' type: - array - 'null' replyToId: minLength: 1 type: - string - 'null' sharingEnabled: type: - boolean - 'null' status: minLength: 1 type: - string - 'null' text: minLength: 1 type: - string - 'null' translation: additionalProperties: false properties: text: minLength: 1 type: - string - 'null' required: - text type: object required: - id - text - postId - parentId - replyToId - createdAt - author - status - isCovered - isEdited - sharingEnabled - isByPostAuthor - isPinned - pinnedPosition - isLikedByPostAuthor - ai - ranking - keywords - previewUsers - metrics - replies - translation - likedByCoauthors - media type: object TikTokMusicMetrics: additionalProperties: false properties: groupUses: type: - integer - 'null' posts: type: - integer - 'null' ugidUses: type: - integer - 'null' required: - posts - groupUses - ugidUses type: object TikTokComment: additionalProperties: false properties: author: anyOf: - $ref: '#/components/schemas/TikTokProfileReference' - type: 'null' createdAt: format: date-time minLength: 1 type: string entities: items: $ref: '#/components/schemas/TikTokTextEntity' type: - array - 'null' id: minLength: 1 type: string isLikedByCreator: type: - boolean - 'null' isPinned: type: - boolean - 'null' labels: items: $ref: '#/components/schemas/TikTokCommentLabel' type: - array - 'null' language: minLength: 1 type: - string - 'null' media: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' metrics: $ref: '#/components/schemas/TikTokCommentMetrics' parentId: minLength: 1 type: - string - 'null' postId: minLength: 1 type: - string - 'null' predictions: $ref: '#/components/schemas/TikTokCommentPredictions' previewReplies: items: $ref: '#/components/schemas/TikTokCommentReference' type: - array - 'null' replyTo: anyOf: - $ref: '#/components/schemas/TikTokProfileReference' - type: 'null' rootCommentId: minLength: 1 type: - string - 'null' sticker: anyOf: - $ref: '#/components/schemas/TikTokCommentSticker' - type: 'null' text: minLength: 1 type: - string - 'null' required: - id - postId - text - createdAt - language - author - isPinned - isLikedByCreator - parentId - rootCommentId - replyTo - metrics - predictions - entities - labels - previewReplies - media - sticker type: object TwitterMediaRestrictions: additionalProperties: false properties: isDmca: type: - boolean - 'null' required: - isDmca type: object TwitterWithheld: additionalProperties: false properties: copyright: type: - boolean - 'null' description: minLength: 1 type: - string - 'null' scope: minLength: 1 type: - string - 'null' required: - copyright - description - scope type: object InstagramProduct: additionalProperties: false properties: checkout: additionalProperties: false properties: style: minLength: 1 type: - string - 'null' required: - style type: object compoundId: minLength: 1 type: - string - 'null' description: minLength: 1 type: - string - 'null' hasVariants: type: - boolean - 'null' id: minLength: 1 type: - string - 'null' image: anyOf: - $ref: '#/components/schemas/InstagramImage' - type: 'null' isAffiliate: type: - boolean - 'null' isInStock: type: - boolean - 'null' merchant: anyOf: - $ref: '#/components/schemas/InstagramProfileReference' - type: 'null' name: minLength: 1 type: - string - 'null' pricing: additionalProperties: false properties: current: $ref: '#/components/schemas/InstagramPrice' formatted: minLength: 1 type: - string - 'null' full: $ref: '#/components/schemas/InstagramPrice' isUkEuCompliant: type: - boolean - 'null' required: - current - full - formatted - isUkEuCompliant type: object retailerId: minLength: 1 type: - string - 'null' reviewStatus: minLength: 1 type: - string - 'null' thumbnail: anyOf: - $ref: '#/components/schemas/InstagramImage' - type: 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - compoundId - retailerId - name - description - url - hasVariants - isInStock - isAffiliate - reviewStatus - merchant - image - thumbnail - pricing - checkout type: object TikTokCommentLabel: additionalProperties: false properties: text: minLength: 1 type: - string - 'null' typeCode: type: - integer - 'null' required: - text - typeCode type: object TwitterBroadcast: additionalProperties: false properties: broadcaster: anyOf: - $ref: '#/components/schemas/TwitterBroadcaster' - type: 'null' height: type: - integer - 'null' id: minLength: 1 type: - string - 'null' isHighLatency: type: - boolean - 'null' media: anyOf: - $ref: '#/components/schemas/TwitterBroadcastMedia' - type: 'null' orientationCode: type: - integer - 'null' replayEditedStartTime: minLength: 1 type: - string - 'null' scheduledStartAt: format: date-time minLength: 1 type: - string - 'null' source: minLength: 1 type: - string - 'null' state: minLength: 1 type: - string - 'null' title: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' width: type: - integer - 'null' required: - id - url - title - source - state - isHighLatency - width - height - orientationCode - scheduledStartAt - media - broadcaster - replayEditedStartTime type: object TwitterSubscriptions: additionalProperties: false properties: isEligible: type: - boolean - 'null' required: - isEligible type: object TwitterMediaAvailability: additionalProperties: false properties: status: minLength: 1 type: - string - 'null' required: - status type: object TikTokPlaylistReference: additionalProperties: false properties: author: anyOf: - $ref: '#/components/schemas/TikTokProfileReference' - type: 'null' creatorName: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' index: type: - integer - 'null' lastPostAddedAt: format: date-time minLength: 1 type: - string - 'null' metrics: $ref: '#/components/schemas/TikTokPlaylistMetrics' name: minLength: 1 type: - string - 'null' typeCode: type: - integer - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - name - url - creatorName - author - typeCode - index - lastPostAddedAt - metrics type: object TikTokVolumeInfo: additionalProperties: false properties: loudness: type: - number - 'null' loudnessRange: type: - number - 'null' loudnessRangeEnd: type: - number - 'null' loudnessRangeStart: type: - number - 'null' maxVolume: type: - number - 'null' maximumMomentaryLoudness: type: - number - 'null' maximumShortTermLoudness: type: - number - 'null' meanVolume: type: - number - 'null' peak: type: - number - 'null' version: type: - number - 'null' required: - loudness - peak - loudnessRange - loudnessRangeStart - loudnessRangeEnd - maximumMomentaryLoudness - maximumShortTermLoudness - version - maxVolume - meanVolume type: object TikTokEffectCreation: additionalProperties: false properties: isEffectHouse: type: - boolean - 'null' isExternalProducer: type: - boolean - 'null' required: - isEffectHouse - isExternalProducer type: object ErrorEnvelope: properties: error: properties: code: type: string details: additionalProperties: true type: object message: type: string requestId: type: string retryable: type: boolean required: - code - message - requestId - retryable type: object required: - error type: object InstagramPrice: additionalProperties: false properties: amount: minLength: 1 type: - string - 'null' formatted: minLength: 1 type: - string - 'null' strippedFormatted: minLength: 1 type: - string - 'null' required: - amount - formatted - strippedFormatted type: object InstagramCommentMetrics: additionalProperties: false properties: likes: type: - integer - 'null' replies: type: - integer - 'null' required: - likes - replies type: object InstagramProfileFanClub: additionalProperties: false properties: hasExclusiveFeedContent: type: - boolean - 'null' id: minLength: 1 type: - string - 'null' largestPublicBroadcastChannelId: minLength: 1 type: - string - 'null' metrics: additionalProperties: false properties: subscribers: type: - integer - 'null' required: - subscribers type: object name: minLength: 1 type: - string - 'null' required: - id - name - largestPublicBroadcastChannelId - hasExclusiveFeedContent - metrics type: object TikTokMusicRelease: additionalProperties: false properties: date: minLength: 1 type: - string - 'null' isNewRelease: type: - boolean - 'null' required: - isNewRelease - date type: object TikTokSearchHighlight: additionalProperties: false properties: field: minLength: 1 type: - string - 'null' ranges: items: $ref: '#/components/schemas/TikTokTextRange' type: - array - 'null' required: - field - ranges type: object TwitterCardButton: additionalProperties: false properties: action: minLength: 1 type: - string - 'null' destinationId: minLength: 1 type: - string - 'null' style: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' required: - action - style - type - destinationId type: object InstagramCommentSettings: additionalProperties: false properties: enabled: type: - boolean - 'null' hasMore: type: - boolean - 'null' likesEnabled: type: - boolean - 'null' maxVisiblePreviewComments: type: - integer - 'null' preview: items: $ref: '#/components/schemas/InstagramCommentReference' type: - array - 'null' threadingEnabled: type: - boolean - 'null' required: - hasMore - maxVisiblePreviewComments - likesEnabled - threadingEnabled - enabled - preview type: object TwitterPromotion: additionalProperties: false properties: advertiser: anyOf: - $ref: '#/components/schemas/TwitterProfileReference' - type: 'null' required: - advertiser type: object TwitterVerification: additionalProperties: false properties: isBlueVerified: type: - boolean - 'null' legacyVerified: type: - boolean - 'null' type: minLength: 1 type: - string - 'null' required: - legacyVerified - type - isBlueVerified type: object TwitterVisibility: additionalProperties: false properties: hasHiddenLikesOnProfile: type: - boolean - 'null' hasHiddenSubscriptionsOnProfile: type: - boolean - 'null' required: - hasHiddenLikesOnProfile - hasHiddenSubscriptionsOnProfile type: object TikTokProductSKU: additionalProperties: false properties: externalId: minLength: 1 type: - string - 'null' externalProductId: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' required: - id - externalId - externalProductId type: object TikTokMusicReference: additionalProperties: false properties: album: minLength: 1 type: - string - 'null' appleMusicSongId: minLength: 1 type: - string - 'null' artistName: minLength: 1 type: - string - 'null' artists: items: $ref: '#/components/schemas/TikTokProfileReference' type: - array - 'null' audio: anyOf: - $ref: '#/components/schemas/TikTokAsset' - type: 'null' beatData: anyOf: - $ref: '#/components/schemas/TikTokBeatData' - type: 'null' chartContext: $ref: '#/components/schemas/TikTokMusicChartContext' classification: $ref: '#/components/schemas/TikTokMusicClassification' covers: items: $ref: '#/components/schemas/TikTokAsset' type: - array - 'null' createdAt: format: date-time minLength: 1 type: - string - 'null' duration: type: - number - 'null' durations: $ref: '#/components/schemas/TikTokMusicDurations' externalSongs: items: $ref: '#/components/schemas/TikTokUnspecified' type: - array - 'null' grouping: $ref: '#/components/schemas/TikTokMusicGrouping' hasBehindTheSong: type: - boolean - 'null' hasHumanVoice: type: - boolean - 'null' hasMatchedMetadata: type: - boolean - 'null' id: minLength: 1 type: - string - 'null' isAuthorArtist: type: - boolean - 'null' isAuthorDeleted: type: - boolean - 'null' isOriginal: type: - boolean - 'null' isOriginalSound: type: - boolean - 'null' isPgc: type: - boolean - 'null' isPlayMusic: type: - boolean - 'null' lyricAssets: items: $ref: '#/components/schemas/TikTokLyricAsset' type: - array - 'null' matchedCatalogTrack: anyOf: - $ref: '#/components/schemas/TikTokMusicReference' - type: 'null' matchedSong: anyOf: - $ref: '#/components/schemas/TikTokMatchedTrack' - type: 'null' matchedSound: anyOf: - $ref: '#/components/schemas/TikTokMatchedTrack' - type: 'null' metrics: $ref: '#/components/schemas/TikTokMusicMetrics' mid: minLength: 1 type: - string - 'null' owner: anyOf: - $ref: '#/components/schemas/TikTokProfileReference' - type: 'null' preview: $ref: '#/components/schemas/TikTokMusicPreview' recommendationStatusCode: type: - integer - 'null' release: $ref: '#/components/schemas/TikTokMusicRelease' searchContext: $ref: '#/components/schemas/TikTokMusicSearchContext' similarTracks: items: $ref: '#/components/schemas/TikTokMusicReference' type: - array - 'null' source: $ref: '#/components/schemas/TikTokMusicSource' streamingLinks: items: $ref: '#/components/schemas/TikTokStreamingLink' type: - array - 'null' title: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - mid - title - artistName - album - url - duration - createdAt - isOriginal - isOriginalSound - isAuthorArtist - hasHumanVoice - isAuthorDeleted - isPgc - hasMatchedMetadata - recommendationStatusCode - isPlayMusic - owner - artists - metrics - audio - covers - beatData - durations - release - preview - matchedSong - matchedSound - classification - grouping - streamingLinks - lyricAssets - source - appleMusicSongId - searchContext - chartContext - matchedCatalogTrack - hasBehindTheSong - similarTracks - externalSongs type: object TikTokMusicSearchContext: additionalProperties: false properties: description: minLength: 1 type: - string - 'null' name: minLength: 1 type: - string - 'null' relatedQuery: minLength: 1 type: - string - 'null' required: - name - description - relatedQuery type: object InstagramPostReference: additionalProperties: false properties: ai: additionalProperties: false properties: detectionMethod: minLength: 1 type: - string - 'null' label: additionalProperties: false properties: detectionMethod: minLength: 1 type: - string - 'null' isSelfDisclosed: type: - boolean - 'null' subtitle: minLength: 1 type: - string - 'null' text: minLength: 1 type: - string - 'null' required: - text - subtitle - detectionMethod - isSelfDisclosed type: object required: - detectionMethod - label type: object attribution: additionalProperties: false properties: originalPost: anyOf: - $ref: '#/components/schemas/InstagramPostReference' - type: 'null' required: - originalPost type: object author: anyOf: - $ref: '#/components/schemas/InstagramProfileReference' - type: 'null' caption: anyOf: - $ref: '#/components/schemas/InstagramCommentReference' - type: 'null' carousel: additionalProperties: false properties: itemCount: type: - integer - 'null' pendingItemCount: type: - integer - 'null' previousSubmitters: items: $ref: '#/components/schemas/InstagramProfileReference' type: - array - 'null' submissionState: minLength: 1 type: - string - 'null' required: - itemCount - pendingItemCount - submissionState - previousSubmitters type: object code: minLength: 1 type: - string - 'null' collaborators: items: $ref: '#/components/schemas/InstagramProfileReference' type: - array - 'null' comments: $ref: '#/components/schemas/InstagramCommentSettings' createdAt: format: date-time minLength: 1 type: - string - 'null' crossposting: additionalProperties: false properties: isFeedbackAggregated: type: - boolean - 'null' isSharedToFacebook: type: - boolean - 'null' required: - isSharedToFacebook - isFeedbackAggregated type: object fbid: minLength: 1 type: - string - 'null' hasDelayedMetadata: type: - boolean - 'null' hasTaggedUsers: type: - boolean - 'null' hasVisualReplies: type: - boolean - 'null' id: minLength: 1 type: - string - 'null' invitedCollaborators: items: $ref: '#/components/schemas/InstagramProfileReference' type: - array - 'null' isEarlyAccess: type: - boolean - 'null' isFanClubPromo: type: - boolean - 'null' isOpenToPublicSubmission: type: - boolean - 'null' isPaidPartnership: type: - boolean - 'null' isPublicChatWelcomeVideo: type: - boolean - 'null' language: minLength: 1 type: - string - 'null' likeAndViewCountsHidden: type: - boolean - 'null' location: anyOf: - $ref: '#/components/schemas/InstagramLocationReference' - type: 'null' media: items: $ref: '#/components/schemas/InstagramMedia' type: - array - 'null' metrics: $ref: '#/components/schemas/InstagramPostMetrics' notes: items: $ref: '#/components/schemas/InstagramNote' type: - array - 'null' pinning: additionalProperties: false properties: profileUserIds: items: minLength: 1 type: string type: - array - 'null' reelsUserIds: items: minLength: 1 type: string type: - array - 'null' required: - profileUserIds - reelsUserIds type: object productTags: items: $ref: '#/components/schemas/InstagramProductTag' type: - array - 'null' remix: additionalProperties: false properties: allowed: type: - boolean - 'null' carouselRemixesAllowed: type: - boolean - 'null' crosspostingAllowed: type: - boolean - 'null' hasBeenRemixed: type: - boolean - 'null' isRequestingRemixes: type: - boolean - 'null' required: - allowed - carouselRemixesAllowed - hasBeenRemixed - isRequestingRemixes - crosspostingAllowed type: object reuse: additionalProperties: false properties: allowed: type: - boolean - 'null' cutoutStickersAllowed: type: - boolean - 'null' required: - allowed - cutoutStickersAllowed type: object shareCountHidden: type: - boolean - 'null' sharingEnabled: type: - boolean - 'null' taggedUsers: items: $ref: '#/components/schemas/InstagramUserTag' type: - array - 'null' template: anyOf: - $ref: '#/components/schemas/InstagramTemplateInfo' - type: 'null' text: minLength: 1 type: - string - 'null' title: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - code - fbid - type - url - title - text - createdAt - author - caption - media - metrics - comments - taggedUsers - productTags - collaborators - invitedCollaborators - location - isPaidPartnership - isEarlyAccess - likeAndViewCountsHidden - shareCountHidden - hasVisualReplies - hasDelayedMetadata - language - hasTaggedUsers - isOpenToPublicSubmission - sharingEnabled - isFanClubPromo - isPublicChatWelcomeVideo - reuse - remix - pinning - carousel - ai - notes - crossposting - attribution - template type: object TwitterLabel: additionalProperties: false properties: description: anyOf: - $ref: '#/components/schemas/TwitterRichText' - type: 'null' icon: anyOf: - $ref: '#/components/schemas/TwitterImage' - type: 'null' text: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - type - text - icon - url - description type: object TikTokEffectOwnerVerification: additionalProperties: false properties: typeCode: type: - integer - 'null' required: - typeCode type: object TikTokEffectMetrics: additionalProperties: false properties: uses: type: - integer - 'null' views: type: - integer - 'null' required: - uses - views type: object TikTokPlaylist: additionalProperties: false properties: author: anyOf: - $ref: '#/components/schemas/TikTokProfileReference' - type: 'null' creatorName: minLength: 1 type: - string - 'null' id: minLength: 1 type: string index: type: - integer - 'null' lastPostAddedAt: format: date-time minLength: 1 type: - string - 'null' metrics: $ref: '#/components/schemas/TikTokPlaylistMetrics' name: minLength: 1 type: - string - 'null' typeCode: type: - integer - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - name - url - creatorName - author - typeCode - index - lastPostAddedAt - metrics type: object TikTokUnspecified: additionalProperties: false properties: {} type: object TikTokCommentPredictions: additionalProperties: false properties: highPurchaseIntent: type: - boolean - 'null' required: - highPurchaseIntent type: object TwitterCard: additionalProperties: false properties: apps: items: $ref: '#/components/schemas/TwitterCardApp' type: - array - 'null' broadcast: anyOf: - $ref: '#/components/schemas/TwitterBroadcast' - type: 'null' components: items: $ref: '#/components/schemas/TwitterCardComponent' type: - array - 'null' description: minLength: 1 type: - string - 'null' destinations: items: $ref: '#/components/schemas/TwitterCardDestination' type: - array - 'null' displayUrl: format: uri minLength: 1 type: - string - 'null' domain: minLength: 1 type: - string - 'null' event: anyOf: - $ref: '#/components/schemas/TwitterEvent' - type: 'null' imageAltText: items: $ref: '#/components/schemas/TwitterImageAltText' type: - array - 'null' images: items: $ref: '#/components/schemas/TwitterImage' type: - array - 'null' layoutType: minLength: 1 type: - string - 'null' media: items: $ref: '#/components/schemas/TwitterMedia' type: - array - 'null' mediaType: minLength: 1 type: - string - 'null' poll: anyOf: - $ref: '#/components/schemas/TwitterPoll' - type: 'null' profiles: items: $ref: '#/components/schemas/TwitterProfileReference' type: - array - 'null' publisherId: minLength: 1 type: - string - 'null' title: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - type - url - profiles - title - description - domain - displayUrl - mediaType - broadcast - event - publisherId - images - imageAltText - poll - layoutType - components - destinations - media - apps type: object TikTokStoryReference: additionalProperties: false properties: expiresAt: format: date-time minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' mediaTypeCode: type: - integer - 'null' postTypeCode: type: - integer - 'null' required: - id - mediaTypeCode - postTypeCode - expiresAt type: object TwitterProfileReference: additionalProperties: false properties: avatar: anyOf: - $ref: '#/components/schemas/TwitterImage' - type: 'null' banner: anyOf: - $ref: '#/components/schemas/TwitterImage' - type: 'null' bio: minLength: 1 type: - string - 'null' createdAt: format: date-time minLength: 1 type: - string - 'null' displayName: minLength: 1 type: - string - 'null' entities: $ref: '#/components/schemas/TwitterProfileEntities' externalUrl: format: uri minLength: 1 type: - string - 'null' handle: minLength: 1 type: - string - 'null' hasCustomTimelines: type: - boolean - 'null' id: minLength: 1 type: - string - 'null' isLifelineInstitution: type: - boolean - 'null' isPrivate: type: - boolean - 'null' isSuspended: type: - boolean - 'null' isVerified: type: - boolean - 'null' labels: items: $ref: '#/components/schemas/TwitterLabel' type: - array - 'null' location: anyOf: - $ref: '#/components/schemas/TwitterProfileLocation' - type: 'null' metrics: $ref: '#/components/schemas/TwitterProfileMetrics' pinnedPostIds: items: minLength: 1 type: string type: - array - 'null' professional: anyOf: - $ref: '#/components/schemas/TwitterProfessional' - type: 'null' subscriptions: $ref: '#/components/schemas/TwitterSubscriptions' url: format: uri minLength: 1 type: - string - 'null' verification: $ref: '#/components/schemas/TwitterVerification' visibility: $ref: '#/components/schemas/TwitterVisibility' withheld: $ref: '#/components/schemas/TwitterWithheld' required: - id - handle - displayName - bio - url - externalUrl - createdAt - location - avatar - banner - isPrivate - isSuspended - isVerified - hasCustomTimelines - isLifelineInstitution - metrics - verification - pinnedPostIds - entities - withheld - subscriptions - visibility - professional - labels type: object RedditAuthor: additionalProperties: false properties: flair: anyOf: - $ref: '#/components/schemas/RedditFlair' - type: 'null' handle: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' isPremium: type: - boolean - 'null' placeholder: minLength: 1 type: - string - 'null' required: - id - handle - placeholder - isPremium - flair type: object TikTokPostStatus: additionalProperties: false properties: isDeleted: type: - boolean - 'null' isProhibited: type: - boolean - 'null' isUnderReview: type: - boolean - 'null' privacyCode: type: - integer - 'null' reviewedCode: type: - integer - 'null' required: - isDeleted - isProhibited - privacyCode - isUnderReview - reviewedCode type: object TwitterEvent: additionalProperties: false properties: category: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' subtitle: minLength: 1 type: - string - 'null' timelineId: minLength: 1 type: - string - 'null' title: minLength: 1 type: - string - 'null' required: - id - title - subtitle - category - timelineId type: object InstagramProfileContact: additionalProperties: false properties: contactPhone: minLength: 1 type: - string - 'null' email: minLength: 1 type: - string - 'null' method: minLength: 1 type: - string - 'null' phone: minLength: 1 type: - string - 'null' phoneCountryCode: minLength: 1 type: - string - 'null' required: - email - phone - phoneCountryCode - contactPhone - method type: object InstagramProfileLocation: additionalProperties: false properties: address: $ref: '#/components/schemas/InstagramProfileAddress' id: minLength: 1 type: - string - 'null' required: - id - address type: object TikTokProductPricing: additionalProperties: false properties: currency: minLength: 1 type: - string - 'null' marketPrice: type: - integer - 'null' price: type: - integer - 'null' required: - price - marketPrice - currency type: object TikTokHashtagReference: additionalProperties: false properties: id: minLength: 1 type: - string - 'null' name: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - name - url type: object InstagramAudioPart: additionalProperties: false properties: artist: anyOf: - $ref: '#/components/schemas/InstagramProfileReference' - type: 'null' artistName: minLength: 1 type: - string - 'null' artwork: anyOf: - $ref: '#/components/schemas/InstagramImage' - type: 'null' isExplicit: type: - boolean - 'null' musicId: minLength: 1 type: - string - 'null' parentStartTime: type: - number - 'null' startTime: type: - number - 'null' title: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' required: - type - title - artistName - isExplicit - musicId - artist - startTime - parentStartTime - artwork type: object InstagramTemplateSegment: additionalProperties: false properties: assetEndTime: type: - number - 'null' assetStartTime: type: - number - 'null' duration: type: - number - 'null' required: - duration - assetStartTime - assetEndTime type: object TwitterProfileMetrics: additionalProperties: false properties: affiliates: type: - integer - 'null' creatorSubscriptions: type: - integer - 'null' followers: type: - integer - 'null' following: type: - integer - 'null' likedPosts: type: - integer - 'null' mediaPosts: type: - integer - 'null' posts: type: - integer - 'null' required: - followers - following - posts - likedPosts - mediaPosts - creatorSubscriptions - affiliates type: object InstagramStreamVariant: additionalProperties: false properties: bitrate: type: - integer - 'null' codec: minLength: 1 type: - string - 'null' frameRate: type: - number - 'null' height: type: - integer - 'null' id: minLength: 1 type: - string - 'null' mimeType: minLength: 1 type: - string - 'null' qualityLabel: minLength: 1 type: - string - 'null' sampleRate: type: - integer - 'null' sizeBytes: type: - integer - 'null' url: format: uri minLength: 1 type: - string - 'null' width: type: - integer - 'null' required: - id - url - codec - mimeType - qualityLabel - width - height - bitrate - sizeBytes - sampleRate - frameRate type: object RedditEmbedSource: additionalProperties: false properties: name: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - name - url type: object RedditCommunity: additionalProperties: false properties: displayHandle: minLength: 1 type: - string - 'null' handle: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' isQuarantined: type: - boolean - 'null' metrics: $ref: '#/components/schemas/RedditSubredditMetrics' type: minLength: 1 type: - string - 'null' required: - id - handle - displayHandle - type - metrics - isQuarantined type: object TikTokProfileReference: additionalProperties: false properties: accountType: type: - integer - 'null' avatar: anyOf: - $ref: '#/components/schemas/TikTokAsset' - type: 'null' bio: minLength: 1 type: - string - 'null' category: minLength: 1 type: - string - 'null' commerce: additionalProperties: false properties: hasLiveCommerce: type: - boolean - 'null' hasNewProducts: type: - boolean - 'null' level: type: - integer - 'null' required: - level - hasLiveCommerce - hasNewProducts type: object createdAt: format: date-time minLength: 1 type: - string - 'null' displayName: minLength: 1 type: - string - 'null' handle: minLength: 1 type: - string - 'null' id: minLength: 1 type: - string - 'null' isAdVirtual: type: - boolean - 'null' isCanceled: type: - boolean - 'null' isDisciplineMember: type: - boolean - 'null' isEffectArtist: type: - boolean - 'null' isPrivate: type: - boolean - 'null' isStar: type: - boolean - 'null' isVerified: type: - boolean - 'null' language: minLength: 1 type: - string - 'null' metrics: $ref: '#/components/schemas/TikTokProfileMetrics' music: additionalProperties: false properties: metrics: additionalProperties: false properties: likes: type: - integer - 'null' tracks: type: - integer - 'null' uses: type: - integer - 'null' required: - tracks - uses - likes type: object newReleaseIds: items: minLength: 1 type: string type: - array - 'null' required: - metrics - newReleaseIds type: object predictions: additionalProperties: false properties: ageGroup: minLength: 1 type: - string - 'null' required: - ageGroup type: object privacy: additionalProperties: false properties: followingVisibility: type: - integer - 'null' required: - followingVisibility type: object regionCode: minLength: 1 type: - string - 'null' searchContext: additionalProperties: false properties: description: minLength: 1 type: - string - 'null' name: minLength: 1 type: - string - 'null' nameField: minLength: 1 type: - string - 'null' required: - description - name - nameField type: object secUid: minLength: 1 type: - string - 'null' socialLinks: items: $ref: '#/components/schemas/TikTokSocialLink' type: - array - 'null' stories: additionalProperties: false properties: changedAt: format: date-time minLength: 1 type: - string - 'null' items: items: $ref: '#/components/schemas/TikTokStoryReference' type: - array - 'null' metrics: additionalProperties: false properties: countsByPostType: items: $ref: '#/components/schemas/TikTokStoryCount' type: - array - 'null' required: - countsByPostType type: object required: - items - changedAt - metrics type: object storyStatus: type: - integer - 'null' url: format: uri minLength: 1 type: - string - 'null' verification: additionalProperties: false properties: badgeType: type: - integer - 'null' customLabel: minLength: 1 type: - string - 'null' label: minLength: 1 type: - string - 'null' type: type: - integer - 'null' required: - type - badgeType - label - customLabel type: object required: - id - secUid - handle - displayName - bio - url - createdAt - avatar - isPrivate - isVerified - accountType - isEffectArtist - isAdVirtual - isStar - storyStatus - isDisciplineMember - isCanceled - regionCode - language - category - verification - metrics - commerce - privacy - music - predictions - searchContext - socialLinks - stories type: object InstagramBioLink: additionalProperties: false properties: icon: anyOf: - $ref: '#/components/schemas/InstagramImage' - type: 'null' id: minLength: 1 type: - string - 'null' image: anyOf: - $ref: '#/components/schemas/InstagramImage' - type: 'null' isPinned: type: - boolean - 'null' isVerified: type: - boolean - 'null' title: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - title - url - type - isPinned - isVerified - icon - image type: object TwitterImageAltText: additionalProperties: false properties: role: minLength: 1 type: - string - 'null' text: minLength: 1 type: - string - 'null' required: - role - text type: object TikTokChartMetadata: additionalProperties: false properties: cover: anyOf: - $ref: '#/components/schemas/TikTokAsset' - type: 'null' id: minLength: 1 type: - string - 'null' updatedAt: format: date-time minLength: 1 type: - string - 'null' required: - id - updatedAt - cover type: object TikTokStreamingLink: additionalProperties: false properties: platformCode: type: - integer - 'null' songId: minLength: 1 type: - string - 'null' required: - platformCode - songId type: object TwitterPreviousMetrics: additionalProperties: false properties: comments: type: - integer - 'null' likes: type: - integer - 'null' quotes: type: - integer - 'null' required: - likes - quotes - comments type: object TikTokDistrict: additionalProperties: false properties: id: minLength: 1 type: - string - 'null' name: minLength: 1 type: - string - 'null' parentName: minLength: 1 type: - string - 'null' required: - id - name - parentName type: object TikTokPostMetrics: additionalProperties: false properties: comments: type: - integer - 'null' downloads: type: - integer - 'null' likes: type: - integer - 'null' reposts: type: - integer - 'null' saves: type: - integer - 'null' shares: type: - integer - 'null' views: type: - integer - 'null' whatsapp: $ref: '#/components/schemas/TikTokWhatsAppMetrics' required: - likes - comments - views - saves - shares - downloads - reposts - whatsapp type: object TwitterMedia: additionalProperties: false properties: altText: minLength: 1 type: - string - 'null' aspectRatio: anyOf: - $ref: '#/components/schemas/TwitterAspectRatio' - type: 'null' availability: anyOf: - $ref: '#/components/schemas/TwitterMediaAvailability' - type: 'null' duration: type: - number - 'null' features: items: $ref: '#/components/schemas/TwitterMediaFeature' type: - array - 'null' focusRegions: items: $ref: '#/components/schemas/TwitterRectangle' type: - array - 'null' height: type: - integer - 'null' id: minLength: 1 type: - string - 'null' isAnimated: type: - boolean - 'null' isMonetizable: type: - boolean - 'null' key: minLength: 1 type: - string - 'null' palette: items: $ref: '#/components/schemas/TwitterColor' type: - array - 'null' restrictions: anyOf: - $ref: '#/components/schemas/TwitterMediaRestrictions' - type: 'null' sizes: items: $ref: '#/components/schemas/TwitterMediaSize' type: - array - 'null' source: anyOf: - $ref: '#/components/schemas/TwitterMediaSource' - type: 'null' thumbnail: anyOf: - $ref: '#/components/schemas/TwitterImage' - type: 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' variants: items: $ref: '#/components/schemas/TwitterMediaVariant' type: - array - 'null' width: type: - integer - 'null' required: - id - type - key - altText - isAnimated - source - width - height - focusRegions - features - sizes - duration - aspectRatio - variants - url - thumbnail - availability - restrictions - isMonetizable - palette type: object TikTokMusicSource: additionalProperties: false properties: audioAssetId: minLength: 1 type: - string - 'null' sourcePostId: minLength: 1 type: - string - 'null' required: - sourcePostId - audioAssetId type: object TwitterPreview: additionalProperties: false properties: displayTextRange: anyOf: - $ref: '#/components/schemas/TwitterRange' - type: 'null' entities: items: $ref: '#/components/schemas/TwitterEntity' type: - array - 'null' text: minLength: 1 type: - string - 'null' required: - text - entities - displayTextRange type: object TwitterAspectRatio: additionalProperties: false properties: height: type: integer width: type: integer required: - width - height type: object InstagramImage: additionalProperties: false properties: height: type: - integer - 'null' id: minLength: 1 type: - string - 'null' isDefault: type: - boolean - 'null' isSpatial: type: - boolean - 'null' thumbnail: anyOf: - $ref: '#/components/schemas/InstagramImage' - type: 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' variants: items: $ref: '#/components/schemas/InstagramImage' type: - array - 'null' width: type: - integer - 'null' required: - thumbnail - id - type - url - width - height - isDefault - isSpatial - variants type: object TikTokMusicClassification: additionalProperties: false properties: languageLabel: minLength: 1 type: - string - 'null' styleCodes: items: type: integer type: - array - 'null' themeCodes: items: type: integer type: - array - 'null' themes: items: minLength: 1 type: string type: - array - 'null' required: - themes - themeCodes - styleCodes - languageLabel type: object InstagramAudioReference: additionalProperties: false properties: artist: anyOf: - $ref: '#/components/schemas/InstagramProfileReference' - type: 'null' artistId: minLength: 1 type: - string - 'null' artistName: minLength: 1 type: - string - 'null' artwork: anyOf: - $ref: '#/components/schemas/InstagramImage' - type: 'null' clusterId: minLength: 1 type: - string - 'null' compositionStartTime: type: - number - 'null' createdAt: format: date-time minLength: 1 type: - string - 'null' duration: type: - number - 'null' fastStartUrl: format: uri minLength: 1 type: - string - 'null' filters: items: {} type: - array - 'null' hasLyrics: type: - boolean - 'null' highlightStartTimes: items: type: number type: - array - 'null' id: minLength: 1 type: - string - 'null' isAutomaticallyAttributed: type: - boolean - 'null' isCrosspostedFromFacebook: type: - boolean - 'null' isExplicit: type: - boolean - 'null' isTrending: type: - boolean - 'null' metrics: $ref: '#/components/schemas/InstagramAudioMetrics' monetizationType: minLength: 1 type: - string - 'null' musicId: minLength: 1 type: - string - 'null' originalPostId: minLength: 1 type: - string - 'null' overlapDuration: type: - number - 'null' parts: items: $ref: '#/components/schemas/InstagramAudioPart' type: - array - 'null' previewUrl: format: uri minLength: 1 type: - string - 'null' spotify: additionalProperties: false properties: id: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - url type: object startTime: type: - number - 'null' streaming: anyOf: - $ref: '#/components/schemas/InstagramStreaming' - type: 'null' subtype: minLength: 1 type: - string - 'null' title: minLength: 1 type: - string - 'null' type: minLength: 1 type: - string - 'null' url: format: uri minLength: 1 type: - string - 'null' required: - id - type - musicId - artistId - clusterId - title - artistName - artist - isExplicit - hasLyrics - isTrending - subtype - isAutomaticallyAttributed - isCrosspostedFromFacebook - monetizationType - duration - startTime - overlapDuration - compositionStartTime - createdAt - originalPostId - url - fastStartUrl - previewUrl - artwork - streaming - highlightStartTimes - filters - metrics - spotify - parts type: object InstagramProfileContent: additionalProperties: false properties: hasGuides: type: - boolean - 'null' hasHighlights: type: - boolean - 'null' hasLongformMedia: type: - boolean - 'null' hasMusic: type: - boolean - 'null' hasVideos: type: - boolean - 'null' hasVisibleNotes: type: - boolean - 'null' required: - hasHighlights - hasLongformMedia - hasVideos - hasMusic - hasGuides - hasVisibleNotes type: object TwitterPoll: additionalProperties: false properties: choices: items: $ref: '#/components/schemas/TwitterPollChoice' type: - array - 'null' countsAreFinal: type: - boolean - 'null' duration: type: - integer - 'null' endsAt: format: date-time minLength: 1 type: - string - 'null' metrics: additionalProperties: false properties: choices: type: integer required: - choices type: object updatedAt: format: date-time minLength: 1 type: - string - 'null' required: - metrics - choices - endsAt - updatedAt - countsAreFinal - duration type: object RedditCommunityHandle: additionalProperties: false properties: handle: minLength: 1 type: - string - 'null' required: - handle type: object securitySchemes: OpenhandleKey: description: Use an oh_test_ key for synthetic data and $0.000 actual charges, or an oh_live_ key for real public data and normal billing. Legacy oh_ keys remain Live. scheme: bearer type: http OpenhandleMCPOAuth: description: OAuth grants for the MCP endpoint only. REST operations require OpenhandleKey. flows: authorizationCode: authorizationUrl: https://api.openhandle.dev/oauth/authorize scopes: mcp: Read public social data through all MCP tools (legacy default). read:instagram: Read public Instagram data through MCP tools. read:tiktok: Read public TikTok data through MCP tools. read:twitter: Read public X (Twitter) data through MCP tools. tokenUrl: https://api.openhandle.dev/oauth/token type: oauth2 externalDocs: description: Test environment guide url: https://openhandle.dev/docs/test-environment x-openhandle-mcp: documentation: https://openhandle.dev/docs/mcp protectedResourceMetadata: https://api.openhandle.dev/.well-known/oauth-protected-resource/mcp scopesSupported: - mcp - read:instagram - read:tiktok - read:twitter securityScheme: OpenhandleMCPOAuth transport: streamable-http url: https://api.openhandle.dev/mcp x-openhandle-sdks: - documentation: https://openhandle.dev/docs/sdks language: TypeScript package: '@openhandle/sdk' repository: https://github.com/openhandlehq/openhandle-typescript - documentation: https://openhandle.dev/docs/sdks language: Go package: github.com/openhandlehq/openhandle-go repository: https://github.com/openhandlehq/openhandle-go - documentation: https://openhandle.dev/docs/sdks language: Python package: openhandle repository: https://github.com/openhandlehq/openhandle-python x-openhandle-test-data: catalogUrl: /v1/test-data contentHash: sha256:b5b99db8b0b9435d04d230483c54f5accfaa44dfa2cd12962a02e03739edfab0 datasetVersion: 2026-09-07.2 x-openhandle-versioning-policy: https://openhandle.dev/docs/versioning