CartViral Products API

The Products API from CartViral — 4 operation(s) for products.

Operations 4

POST /products/import Import products from a store or product URL #
GET /products Catalog products with their CartViral score #
GET /products/{product_id}/listing-copy Marketplace listing copy and SEO/GEO for a product (1 credit the first time… #
GET /products/{product_id}/copy/{tool} Ad copy, social captions, a creator brief or a 30-day content plan for a… #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cartviral-com:cartviral-com-products-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cartviral-com-products-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CartViral Products API
  version: 1.0.0
  description: 'AI product videos for e-commerce: import products, generate TikTok, Reels and Shorts clips, get download links, and work with the CartViral Earn creator marketplace. Same operations as the MCP server at https://app.cartviral.com/mcp. Docs: https://cartviral.com/api'
  contact:
    name: CartViral
    email: support@cartviral.com
    url: https://cartviral.com
servers:
- url: https://app.cartviral.com/api/v1
security:
- bearer: []
- oauth:
  - mcp
tags:
- name: Products
paths:
  /products/import:
    post:
      operationId: importProducts
      summary: Import products from a store or product URL
      description: 'Import products into the account''s catalog from a public link: a Shopify storefront link imports the whole published catalog (up to 750 products); a WooCommerce store link imports its catalog; a product page on Shopify, Amazon, TikTok Shop, Etsy or most other sites imports that product. Re-importing the same link updates products in place.'
      x-openai-isConsequential: true
      parameters: []
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '400':
          description: Invalid input or the action could not be done; body has an error message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid credentials
        '429':
          description: 'Rate limit: 120 calls per minute per key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  description: Public store or product page URL (https://...)
                html:
                  type: string
                  description: 'Optional: the page''s HTML as the user''s browser sees it (browser extension), for sites that block servers such as eBay, Etsy or Walmart'
              required:
              - url
      tags:
      - Products
  /products:
    get:
      operationId: listProducts
      summary: Catalog products with their CartViral score
      description: Products in the account's catalog with their id, price, photo count and CartViral score (0-100; 'push' products are the best candidates for clips). Use the id with generate_clips.
      x-openai-isConsequential: false
      parameters:
      - name: search
        in: query
        required: false
        schema:
          type: string
          description: Optional text to match in the product title
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 20
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '400':
          description: Invalid input or the action could not be done; body has an error message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid credentials
        '429':
          description: 'Rate limit: 120 calls per minute per key'
      tags:
      - Products
  /products/{product_id}/listing-copy:
    get:
      operationId: getListingCopy
      summary: Marketplace listing copy and SEO/GEO for a product (1 credit the first time…
      description: 'Marketplace-ready copy for one catalog product, written only from its real facts (never invented specs, claims or reviews) - the same claims as its clips. Amazon title/Item Highlights/5 bullets/backend search terms, a Shopify SEO title/meta description/image alt text/description, 13 Etsy tags, and GEO (AI search): FAQ pairs, an attributes table and Product + FAQPage JSON-LD. Cached per product until it changes: a first write costs 1 credit, calling it again for the same, unchanged product is free.'
      x-openai-isConsequential: true
      parameters:
      - name: product_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '400':
          description: Invalid input or the action could not be done; body has an error message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid credentials
        '429':
          description: 'Rate limit: 120 calls per minute per key'
      tags:
      - Products
  /products/{product_id}/copy/{tool}:
    get:
      operationId: getCopy
      summary: Ad copy, social captions, a creator brief or a 30-day content plan for a…
      description: 'One of Text & SEO''s 4 more tools for a catalog product, written only from its real facts (never invented specs, claims, discounts or reviews). tool=ad_copy: 5 Meta primary texts, 5 headlines, 5 descriptions, 3 TikTok ad texts, following the paid-ad rules (no absolutes, no fake discounts or reviews). tool=social_captions: 3 captions, a hashtag set and alt text for each of TikTok, Instagram Reels, YouTube Shorts and Pinterest. tool=creator_brief: a one-page brief for a human UGC creator or a CartViral Earn generator - facts, audience, 3 key messages, 3 hooks, shots to get, do''s/don''ts, the #ad disclosure rule. tool=content_plan: a 30-day content calendar built from CartViral''s own Video/Photos/Carousels formats. Cached per product and per tool until the product changes: a first write costs 1 credit, calling it again for the same, unchanged product is free.'
      x-openai-isConsequential: true
      parameters:
      - name: product_id
        in: path
        required: true
        schema:
          type: string
      - name: tool
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        '400':
          description: Invalid input or the action could not be done; body has an error message
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid credentials
        '429':
          description: 'Rate limit: 120 calls per minute per key'
      tags:
      - Products
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
      required:
      - error
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: API key from Account → AI agents (cv_live_...), or an OAuth access token
    oauth:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://app.cartviral.com/oauth/authorize
          tokenUrl: https://app.cartviral.com/oauth/token
          refreshUrl: https://app.cartviral.com/oauth/token
          scopes:
            mcp: Use your CartViral account