openapi: 3.2.0 info: title: Monocrawl TikTok Shop API version: 0.1.0 description: One key, one envelope, one credit meter across social, search, commerce and web data. contact: name: Monocrawl support url: https://www.monocrawl.com/contact termsOfService: https://www.monocrawl.com/legal/terms-and-conditions servers: - url: https://www.monocrawl.com security: - ApiKeyHeader: [] tags: - name: TikTok Shop paths: /v1/tiktokshop/creator-showcase: get: operationId: tiktokshop_creator_showcase tags: - TikTok Shop summary: Creator showcase description: The products a TikTok creator promotes in their public showcase — creator-commerce intelligence. Paged by cursor. Costs 2 credits per successful live response. parameters: - name: handle in: query required: true schema: type: string example: mrtiktokreviews description: TikTok username without the @. - name: region in: query required: false schema: type: string description: Two-letter region code. The current source only serves US; other regions may return source-unavailable without a customer charge. Region is never silently changed. - name: cursor in: query required: false schema: type: string description: Opaque cursor from the previous page. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/tiktokshop/creator-showcase.json title: tiktokshop/creator-showcase data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: cursor: description: Opaque next-page token; pass it back unchanged. Null does not prove complete history. type: - string - 'null' dropped: description: Optional dropped supplied by this operation. Null means unknown. type: - number - 'null' items: description: Returned records. Source coverage and completeness vary. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' image: description: Optional image supplied by this operation. Null means unknown. type: - string - 'null' images: description: Optional images supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' price: description: Source price. Currency, taxes and availability depend on the listing. type: - object - 'null' properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' discount_fraction: description: Optional discount fraction supplied by this operation. Null means unknown. type: - number - 'null' formatted: description: Optional formatted supplied by this operation. Null means unknown. type: - string - 'null' original_amount: description: Optional original amount supplied by this operation. Null means unknown. type: - number - 'null' sku_id: description: Optional sku id supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true rating: description: Source rating; read its accompanying scale and vote count. type: - number - 'null' review_count: description: Optional review count supplied by this operation. Null means unknown. type: - number - 'null' seller_id: description: Optional seller id supplied by this operation. Null means unknown. type: - string - 'null' sold_count: description: Optional sold count supplied by this operation. Null means unknown. type: - number - 'null' title: description: Source title when supplied. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - image properties: image: description: Optional image supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - images properties: images: description: Optional images supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - price properties: price: description: Source price. Currency, taxes and availability depend on the listing. type: - object properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' discount_fraction: description: Optional discount fraction supplied by this operation. Null means unknown. type: - number - 'null' formatted: description: Optional formatted supplied by this operation. Null means unknown. type: - string - 'null' original_amount: description: Optional original amount supplied by this operation. Null means unknown. type: - number - 'null' sku_id: description: Optional sku id supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - rating properties: rating: description: Source rating; read its accompanying scale and vote count. type: - number - required: - review_count properties: review_count: description: Optional review count supplied by this operation. Null means unknown. type: - number - required: - seller_id properties: seller_id: description: Optional seller id supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - sold_count properties: sold_count: description: Optional sold count supplied by this operation. Null means unknown. type: - number - required: - title properties: title: description: Source title when supplied. type: - string minLength: 1 - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - cursor: null dropped: 0 items: - id: example image: https://example.com/example images: - example platform: example price: amount: 0 currency: example discount_fraction: 0 formatted: example original_amount: 0 sku_id: example rating: 0 review_count: 0 seller_id: example sold_count: 0 title: example url: https://example.com/example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 2 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/tiktokshop/product: get: operationId: tiktokshop_product tags: - TikTok Shop summary: TikTok Shop product description: 'One TikTok Shop product: title, prices, images, sold count, rating and review count, categories, seller and SKUs. SKU-level stock is included where available; it is a source-reported value, not a guaranteed real-time inventory or checkout confirmation. Costs 2 credits per successful live response.' parameters: - name: url in: query required: true schema: type: string example: https://www.tiktok.com/shop/pdp/goli-ashwagandha-gummies-with-vitamin-d-ksm-66-vegan-non-gmo/1729587769570529799 description: Product URL - name: region in: query required: false schema: type: string example: US description: Storefront region (US is the reliable one today) - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/tiktokshop/product.json title: tiktokshop/product data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: categories: description: Optional categories supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' images: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array - 'null' items: {} platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' price: description: Source price. Currency, taxes and availability depend on the listing. type: - object - 'null' properties: currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' currency_symbol: description: Optional currency symbol supplied by this operation. Null means unknown. type: - string - 'null' da_info: description: Optional da info supplied by this operation. Null means unknown. type: - string - 'null' discount: description: Optional discount supplied by this operation. Null means unknown. type: - string - 'null' is_interval_price: description: Optional is interval price supplied by this operation. Null means unknown. type: - boolean - 'null' max_sku_price: type: - number - string - 'null' description: Decimal source amounts are normalized to JSON numbers in the accompanying currency. Non-numeric source labels may remain text; null is unknown. min_sku_original_price: type: - number - string - 'null' description: Decimal source amounts are normalized to JSON numbers in the accompanying currency. Non-numeric source labels may remain text; null is unknown. min_sku_price: type: - number - string - 'null' description: Decimal source amounts are normalized to JSON numbers in the accompanying currency. Non-numeric source labels may remain text; null is unknown. need_icon: description: Optional need icon supplied by this operation. Null means unknown. type: - boolean - 'null' original_price: description: Optional original price supplied by this operation. Null means unknown. type: - string - 'null' panel_schema: description: Optional panel schema supplied by this operation. Null means unknown. type: - string - 'null' real_price: description: Optional real price supplied by this operation. Null means unknown. type: - string - 'null' show_hot_zone: description: Optional show hot zone supplied by this operation. Null means unknown. type: - boolean - 'null' symbol_position: description: Optional symbol position supplied by this operation. Null means unknown. type: - number - 'null' max_sku_original_price: type: - number - string - 'null' description: Decimal source amounts are normalized to JSON numbers in the accompanying currency. Non-numeric source labels may remain text; null is unknown. additionalProperties: true rating: description: Source rating; read its accompanying scale and vote count. type: - number - 'null' review_count: description: Optional review count supplied by this operation. Null means unknown. type: - number - 'null' sale_region: description: Optional sale region supplied by this operation. Null means unknown. type: - string - 'null' seller: description: Optional seller supplied by this operation. Null means unknown. type: - object - 'null' properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' location: description: Optional location supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' product_count: description: Optional product count supplied by this operation. Null means unknown. type: - number - 'null' tiktok_url: description: Optional tiktok url supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true shop: description: Optional shop supplied by this operation. Null means unknown. type: - object - 'null' properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' products: description: Optional products supplied by this operation. Null means unknown. type: - number - 'null' review_count: description: Optional review count supplied by this operation. Null means unknown. type: - number - 'null' sold_count: description: Optional sold count supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true skus: description: Optional skus supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' price: description: Source price. Currency, taxes and availability depend on the listing. type: - object - 'null' properties: discount: description: Optional discount supplied by this operation. Null means unknown. type: - string - 'null' original_price: description: Optional original price supplied by this operation. Null means unknown. type: - string - 'null' original_price_value: description: Optional original price value supplied by this operation. Null means unknown. type: - string - 'null' real_price: description: Optional real price supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true additionalProperties: true stock: description: Optional stock supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true sold_count: description: Optional sold count supplied by this operation. Null means unknown. type: - number - 'null' title: description: Source title when supplied. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - categories properties: categories: description: Optional categories supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - images properties: images: description: Source array was empty in the reviewed captures; item fields remain unspecified. type: - array items: {} - required: - price properties: price: description: Source price. Currency, taxes and availability depend on the listing. type: - object properties: currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' currency_symbol: description: Optional currency symbol supplied by this operation. Null means unknown. type: - string - 'null' da_info: description: Optional da info supplied by this operation. Null means unknown. type: - string - 'null' discount: description: Optional discount supplied by this operation. Null means unknown. type: - string - 'null' is_interval_price: description: Optional is interval price supplied by this operation. Null means unknown. type: - boolean - 'null' max_sku_price: type: - number - string - 'null' description: Decimal source amounts are normalized to JSON numbers in the accompanying currency. Non-numeric source labels may remain text; null is unknown. min_sku_original_price: type: - number - string - 'null' description: Decimal source amounts are normalized to JSON numbers in the accompanying currency. Non-numeric source labels may remain text; null is unknown. min_sku_price: type: - number - string - 'null' description: Decimal source amounts are normalized to JSON numbers in the accompanying currency. Non-numeric source labels may remain text; null is unknown. need_icon: description: Optional need icon supplied by this operation. Null means unknown. type: - boolean - 'null' original_price: description: Optional original price supplied by this operation. Null means unknown. type: - string - 'null' panel_schema: description: Optional panel schema supplied by this operation. Null means unknown. type: - string - 'null' real_price: description: Optional real price supplied by this operation. Null means unknown. type: - string - 'null' show_hot_zone: description: Optional show hot zone supplied by this operation. Null means unknown. type: - boolean - 'null' symbol_position: description: Optional symbol position supplied by this operation. Null means unknown. type: - number - 'null' max_sku_original_price: type: - number - string - 'null' description: Decimal source amounts are normalized to JSON numbers in the accompanying currency. Non-numeric source labels may remain text; null is unknown. additionalProperties: true - required: - rating properties: rating: description: Source rating; read its accompanying scale and vote count. type: - number - required: - review_count properties: review_count: description: Optional review count supplied by this operation. Null means unknown. type: - number - required: - sale_region properties: sale_region: description: Optional sale region supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - seller properties: seller: description: Optional seller supplied by this operation. Null means unknown. type: - object properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' location: description: Optional location supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' product_count: description: Optional product count supplied by this operation. Null means unknown. type: - number - 'null' tiktok_url: description: Optional tiktok url supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - shop properties: shop: description: Optional shop supplied by this operation. Null means unknown. type: - object properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' products: description: Optional products supplied by this operation. Null means unknown. type: - number - 'null' review_count: description: Optional review count supplied by this operation. Null means unknown. type: - number - 'null' sold_count: description: Optional sold count supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - skus properties: skus: description: Optional skus supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - object - 'null' properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' price: description: Source price. Currency, taxes and availability depend on the listing. type: - object - 'null' properties: discount: description: Optional discount supplied by this operation. Null means unknown. type: - string - 'null' original_price: description: Optional original price supplied by this operation. Null means unknown. type: - string - 'null' original_price_value: description: Optional original price value supplied by this operation. Null means unknown. type: - string - 'null' real_price: description: Optional real price supplied by this operation. Null means unknown. type: - object - 'null' properties: {} additionalProperties: true additionalProperties: true stock: description: Optional stock supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true - required: - sold_count properties: sold_count: description: Optional sold count supplied by this operation. Null means unknown. type: - number - required: - title properties: title: description: Source title when supplied. type: - string minLength: 1 x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - categories: - example id: example images: [] platform: example price: currency: example currency_symbol: example da_info: example discount: example is_interval_price: false max_sku_price: example min_sku_original_price: example min_sku_price: example need_icon: false original_price: example panel_schema: example real_price: example show_hot_zone: false symbol_position: 0 rating: 0 review_count: 0 sale_region: example seller: id: example location: example name: example product_count: 0 tiktok_url: https://example.com/example shop: id: example products: 0 review_count: 0 sold_count: 0 skus: - id: example price: discount: example original_price: example original_price_value: example real_price: {} stock: 0 sold_count: 0 title: example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 2 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/tiktokshop/product-reviews: get: operationId: tiktokshop_product_reviews tags: - TikTok Shop summary: Product reviews description: 'Reviews for a TikTok Shop product: rating, text, reviewer, SKU, verified-purchase and incentivized flags, with the product''s rating summary. Costs 2 credits per successful live response.' parameters: - name: url in: query required: true schema: type: string example: https://www.tiktok.com/shop/pdp/1732195276672373419 description: Product page URL (or pass product_id). - name: product_id in: query required: false schema: type: string description: Product id — alternative to url. - name: region in: query required: false schema: type: string description: Two-letter region code. - name: cursor in: query required: false schema: type: string description: Page number, starting at 1. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/tiktokshop/product-reviews.json title: tiktokshop/product-reviews data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' cursor: description: Opaque next-page token; pass it back unchanged. Null does not prove complete history. type: - string - 'null' dropped: description: Optional dropped supplied by this operation. Null means unknown. type: - number - 'null' has_more: description: Source continuation indicator; null means unknown. type: - boolean - 'null' items: description: Returned records. Source coverage and completeness vary. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: author: description: Public author information supplied with this record. type: - string - 'null' country: description: Optional country supplied by this operation. Null means unknown. type: - string - 'null' created_at: description: Source creation time, not the API retrieval time. type: - string - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' images: description: Optional images supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' incentivized: description: Optional incentivized supplied by this operation. Null means unknown. type: - boolean - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' product_id: description: Optional product id supplied by this operation. Null means unknown. type: - string - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - number - 'null' sku: description: Optional sku supplied by this operation. Null means unknown. type: - string - 'null' text: description: Source text when supplied. type: - string - 'null' verified_purchase: description: Optional verified purchase supplied by this operation. Null means unknown. type: - boolean - 'null' additionalProperties: true allOf: - anyOf: - required: - author properties: author: description: Public author information supplied with this record. type: - string minLength: 1 - required: - country properties: country: description: Optional country supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - created_at properties: created_at: description: Source creation time, not the API retrieval time. type: - string minLength: 1 - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - images properties: images: description: Optional images supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - incentivized properties: incentivized: description: Optional incentivized supplied by this operation. Null means unknown. type: - boolean - required: - product_id properties: product_id: description: Optional product id supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - rating properties: rating: description: Source rating; read its accompanying scale and vote count. type: - number - required: - sku properties: sku: description: Optional sku supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - text properties: text: description: Source text when supplied. type: - string minLength: 1 - required: - verified_purchase properties: verified_purchase: description: Optional verified purchase supplied by this operation. Null means unknown. type: - boolean review_count: description: Optional review count supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - count: 0 cursor: null dropped: 0 has_more: false items: - author: example country: example created_at: '2026-09-01T12:00:00Z' id: example images: - example incentivized: false platform: example product_id: example rating: 0 sku: example text: example verified_purchase: false review_count: 0 default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 2 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/tiktokshop/search: get: operationId: tiktokshop_search tags: - TikTok Shop summary: Product search description: 'Search TikTok Shop products: title, image, price, units sold, rating and shop. Paged by page-number cursor. Costs 2 credits per successful live response.' parameters: - name: query in: query required: true schema: type: string example: shoes description: 'What to search for. Omit limit: there is no supported page-size control. Use cursor for continuation.' - name: cursor in: query required: false schema: type: string description: Pass the returned cursor unchanged to get more results. This endpoint has no page-size control; limit is unsupported. - name: region in: query required: false schema: type: string example: US description: Two-letter region code. - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/tiktokshop/search.json title: tiktokshop/search data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: count: description: Number of records in this response, not lifetime or total matches. type: - number - 'null' cursor: description: Opaque next-page token; pass it back unchanged. Null does not prove complete history. type: - string - 'null' dropped: description: Optional dropped supplied by this operation. Null means unknown. type: - number - 'null' items: description: Returned records. Source coverage and completeness vary. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: free_shipping: description: Optional free shipping supplied by this operation. Null means unknown. type: - boolean - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' image: description: Optional image supplied by this operation. Null means unknown. type: - string - 'null' images: description: Optional images supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' price: description: Source price. Currency, taxes and availability depend on the listing. type: - object - 'null' properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' formatted: description: Optional formatted supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true rating: description: Source rating; read its accompanying scale and vote count. type: - number - 'null' seller_id: description: Optional seller id supplied by this operation. Null means unknown. type: - string - 'null' shop: description: Optional shop supplied by this operation. Null means unknown. type: - string - 'null' sold_count: description: Optional sold count supplied by this operation. Null means unknown. type: - number - 'null' title: description: Source title when supplied. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - free_shipping properties: free_shipping: description: Optional free shipping supplied by this operation. Null means unknown. type: - boolean - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - image properties: image: description: Optional image supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - images properties: images: description: Optional images supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - price properties: price: description: Source price. Currency, taxes and availability depend on the listing. type: - object properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' formatted: description: Optional formatted supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - rating properties: rating: description: Source rating; read its accompanying scale and vote count. type: - number - required: - seller_id properties: seller_id: description: Optional seller id supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - shop properties: shop: description: Optional shop supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - sold_count properties: sold_count: description: Optional sold count supplied by this operation. Null means unknown. type: - number - required: - title properties: title: description: Source title when supplied. type: - string minLength: 1 - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - count: 0 cursor: null dropped: 0 items: - free_shipping: false id: example image: https://example.com/example images: - example platform: example price: amount: 0 currency: example formatted: example rating: 0 seller_id: example shop: example sold_count: 0 title: example url: https://example.com/example default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 2 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true /v1/tiktokshop/shop-products: get: operationId: tiktokshop_shop_products tags: - TikTok Shop summary: Shop products description: Every product a TikTok Shop store lists, with prices, sales counts and ratings. Paged by cursor. Costs 2 credits per successful live response. parameters: - name: url in: query required: true schema: type: string example: https://www.tiktok.com/shop/store/goli-nutrition/7495794203056835079 description: TikTok Shop store URL - name: sort_by in: query required: false schema: type: string enum: - top - new_releases example: top description: 'top or new_releases (default top) Accepted values: top, new_releases. Case, spaces, hyphens and underscores are interchangeable.' - name: region in: query required: false schema: type: string example: US description: Two-letter region code (default US) - name: cursor in: query required: false schema: type: string example: '' description: Opaque cursor from the previous page - name: dry_run in: query required: false schema: type: string enum: - '1' - '0' - 'true' - 'false' example: '1' description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.' - name: X-Max-Credits in: header required: false schema: type: integer minimum: 0 maximum: 9007199254740991 example: 5 description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs. security: - ApiKeyHeader: [] - BearerKey: [] responses: '200': description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.' content: application/json: schema: allOf: - $ref: '#/components/schemas/Success' - type: object properties: data: $schema: https://json-schema.org/draft/2020-12/schema $id: https://www.monocrawl.com/schemas/tiktokshop/shop-products.json title: tiktokshop/shop-products data fields description: Optional data supplied by this operation. Null means unknown. type: object properties: cursor: description: Opaque next-page token; pass it back unchanged. Null does not prove complete history. type: - string - 'null' dropped: description: Optional dropped supplied by this operation. Null means unknown. type: - number - 'null' has_more: description: Source continuation indicator; null means unknown. type: - boolean - 'null' items: description: Returned records. Source coverage and completeness vary. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: object properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' image: description: Optional image supplied by this operation. Null means unknown. type: - string - 'null' images: description: Optional images supplied by this operation. Null means unknown. type: - array - 'null' items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' platform: description: Optional platform supplied by this operation. Null means unknown. type: - string - 'null' price: description: Source price. Currency, taxes and availability depend on the listing. type: - object - 'null' properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' discount_fraction: description: Optional discount fraction supplied by this operation. Null means unknown. type: - number - 'null' formatted: description: Optional formatted supplied by this operation. Null means unknown. type: - string - 'null' original_amount: description: Optional original amount supplied by this operation. Null means unknown. type: - number - 'null' sku_id: description: Optional sku id supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true rating: description: Source rating; read its accompanying scale and vote count. type: - number - 'null' review_count: description: Optional review count supplied by this operation. Null means unknown. type: - number - 'null' seller_id: description: Optional seller id supplied by this operation. Null means unknown. type: - string - 'null' sold_count: description: Optional sold count supplied by this operation. Null means unknown. type: - number - 'null' title: description: Source title when supplied. type: - string - 'null' url: description: Original source URL when supplied. type: - string - 'null' additionalProperties: true allOf: - anyOf: - required: - id properties: id: description: Source identifier. Preserve the supplied type and exact value. type: - string minLength: 1 - required: - image properties: image: description: Optional image supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - images properties: images: description: Optional images supplied by this operation. Null means unknown. type: - array items: description: Optional record supplied by this operation. Null means unknown. type: - string - 'null' - required: - price properties: price: description: Source price. Currency, taxes and availability depend on the listing. type: - object properties: amount: description: Optional amount supplied by this operation. Null means unknown. type: - number - 'null' currency: description: Optional currency supplied by this operation. Null means unknown. type: - string - 'null' discount_fraction: description: Optional discount fraction supplied by this operation. Null means unknown. type: - number - 'null' formatted: description: Optional formatted supplied by this operation. Null means unknown. type: - string - 'null' original_amount: description: Optional original amount supplied by this operation. Null means unknown. type: - number - 'null' sku_id: description: Optional sku id supplied by this operation. Null means unknown. type: - string - 'null' additionalProperties: true - required: - rating properties: rating: description: Source rating; read its accompanying scale and vote count. type: - number - required: - review_count properties: review_count: description: Optional review count supplied by this operation. Null means unknown. type: - number - required: - seller_id properties: seller_id: description: Optional seller id supplied by this operation. Null means unknown. type: - string minLength: 1 - required: - sold_count properties: sold_count: description: Optional sold count supplied by this operation. Null means unknown. type: - number - required: - title properties: title: description: Source title when supplied. type: - string minLength: 1 - required: - url properties: url: description: Original source URL when supplied. type: - string minLength: 1 shop: description: Optional shop supplied by this operation. Null means unknown. type: - object - 'null' properties: followers: description: Optional followers supplied by this operation. Null means unknown. type: - number - 'null' id: description: Source identifier. Preserve the supplied type and exact value. type: - string - 'null' logo: description: Optional logo supplied by this operation. Null means unknown. type: - string - 'null' name: description: Optional name supplied by this operation. Null means unknown. type: - string - 'null' products_count: description: Optional products count supplied by this operation. Null means unknown. type: - number - 'null' rating: description: Source rating; read its accompanying scale and vote count. type: - number - 'null' region: description: Optional region supplied by this operation. Null means unknown. type: - string - 'null' reviews_count: description: Optional reviews count supplied by this operation. Null means unknown. type: - number - 'null' sold_count: description: Optional sold count supplied by this operation. Null means unknown. type: - number - 'null' url: description: Original source URL when supplied. type: - string - 'null' videos_count: description: Optional videos count supplied by this operation. Null means unknown. type: - number - 'null' additionalProperties: true additionalProperties: true required: - items x-contract-version: '2026-09-22' x-validation-scope: Required success payload structure; optional fields and source completeness remain separate. examples: - cursor: null dropped: 0 has_more: false items: - id: example image: https://example.com/example images: - example platform: example price: amount: 0 currency: example discount_fraction: 0 formatted: example original_amount: 0 sku_id: example rating: 0 review_count: 0 seller_id: example sold_count: 0 title: example url: https://example.com/example shop: followers: 0 id: example logo: example name: example products_count: 0 rating: 0 region: example reviews_count: 0 sold_count: 0 url: https://example.com/example videos_count: 0 default: description: The error envelope — the same shape for every non-2xx status. content: application/json: schema: $ref: '#/components/schemas/Error' x-credits: 2 x-production-available: true x-capacity: status: not_assessed message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee. x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes. x-live-proven: true components: schemas: Error: type: object required: - success - error - credits_used - request_id properties: success: const: false error: type: object required: - type - message - status properties: type: type: string enum: - UNAUTHORIZED - KEY_REVOKED - KEY_LIMIT_EXCEEDED - RATE_LIMITED - INSUFFICIENT_CREDITS - RESOURCE_NOT_FOUND - INVALID_PARAMETERS - TARGET_ACCESS_DENIED - UPSTREAM_ERROR - UPSTREAM_TIMEOUT - FREE_CAPACITY_UNAVAILABLE - CAPACITY_UNAVAILABLE - ENDPOINT_NOT_FOUND - ENDPOINT_NOT_AVAILABLE - FAIR_USE_EXCEEDED - INTERNAL_ERROR message: type: string status: type: integer doc_url: type: string description: Deep link to the exact section of the errors guide for this type. details: type: object credits_used: type: - integer - 'null' description: Confirmed net charge; null when billing is pending reconciliation. Inspect error.details.billing_status and retain request_id. credits_remaining: type: integer request_id: type: string Success: type: object required: - success - platform - endpoint - data - credits_used - credits_remaining - request_id properties: _completeness: type: object description: Reported response completeness, not a guarantee of complete platform history. Missing source assertions remain unknown. properties: state: type: string enum: - complete - partial - unknown scope: type: string inspection_limited: type: boolean success: const: true platform: type: string endpoint: type: string description: The resolved path, e.g. `/v1/github/profile`. data: description: Amazon responses include marketplace.country and marketplace.domain (resolved request marketplace, UK by default). X profiles preserve location, bio_link and cover_url when supplied. TikTok profiles preserve commerce_user, seller, region, location and business_category when supplied; region identifies the account region rather than personal residence. TikTok comments use platform_default selection, which can change between fetches; keep the same video and options when following cursors. Amazon review variant is readable text. Facebook profiles preserve cover_url, following and created_at when supplied; likes_count and followers are distinct and follower totals may be rounded. Endpoint-specific normalized payload, not one universal post/profile schema. Many lists use items/count/cursor; a null cursor means no usable next cursor was supplied, not proof that all history was retrieved. Check has_more and warnings where present. Social full-profile bundles use posts_cursor and posts_pagination.next_params; retain all returned next parameters. YouTube channel bundles instead use recent_videos, cursor and recent_videos_pagination. Inspect complete/partial/legs where supplied for bounded or failed components. Optional model-derived fields are labelled, not source facts. credits_used: type: integer credits_remaining: type: integer request_id: type: string cached: type: boolean stale: type: boolean description: True only for an explicitly labelled, zero-credit reference snapshot served after a temporary upstream failure. age_seconds: type: integer minimum: 0 description: Age of a stale snapshot since its original retrieval; not reset by outage recovery. fetched_at: type: string format: date-time description: Original retrieval time of a stale snapshot, in UTC. synthetic: type: boolean description: Present and true only on the explicitly requested /sandbox surface. Synthetic responses are representative and charged 0 credits; production /v1 never returns them. degraded: type: boolean description: Reserved for sandbox compatibility. Production /v1 reports upstream failure as an error and never serves a representative fallback. securitySchemes: ApiKeyHeader: type: apiKey in: header name: x-api-key description: Your API key (`mn_…`), from the console. The recommended style. BearerKey: type: http scheme: bearer description: The same key as a Bearer token, for clients that only expose an Authorization field. Keys are never accepted in the query string — URLs leak into logs and referrers. x-provenance: method: harvested publisher: Monocrawl source: https://www.monocrawl.com/openapi.json note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json); stamped by stamp-openapi-provenance.py (roadmap#793)