Shopify AI Rank Checker

Check exactly where your Shopify product ranks when AI shopping assistants like ChatGPT and Gemini search for it. Checks how well a Shopify store's products show up when AI shopping assistants such as ChatGPT, Gemini, Perplexity, Grok, and Copilot search for products, and reports the store's rank and its closest competitors. Searches Shopify's real Global Catalog — the same product index AI assistants read from. Pay-per-call at $0.01 USDC over x402 on Base or Solana — no account, no API key. OpenAPI 3.1.0; 1 operation(s): POST /rank.

OpenAPI Specification

done-shopify-ai-rank-checker-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Shopify AI Rank Checker
  description: Checks how well a Shopify store's products show up when AI shopping assistants such as ChatGPT, Gemini, Perplexity,
    Grok, and Copilot search for products, and reports the store's rank and its closest competitors. Searches Shopify's real
    Global Catalog — the same product index AI assistants read from.
  version: 1.0.0
  contact:
    name: _done
    url: https://forms.gle/5KzuSFH7p8hHtDmz7
    email: info@underscoredone.com
  x-openapi-url: https://shopify-ai-rank-checker.underscoredone.com/openapi.json
  x-logo:
    url: https://underscoredone.com/logo.png
    altText: _done
  x-guidance: Call this when a user wants to know how visible their Shopify store is to AI shopping assistants for specific
    search terms. Provide the store's myshopify.com domain and a list of search keywords. Use 'simple' report_detail for a
    quick rank check, or 'full' for complete competitor data and a data quality score. Keep keyword lists to 10 or fewer per
    call for faster responses; split larger lists into multiple calls.
  x-ai-instructions: Call this when a user wants to know how visible their Shopify store is to AI shopping assistants for
    specific search terms. Provide the store's myshopify.com domain and a list of search keywords. Use 'simple' report_detail
    for a quick rank check, or 'full' for complete competitor data and a data quality score. Keep keyword lists to 10 or fewer
    per call for faster responses; split larger lists into multiple calls.
  x-provider: _done — single-purpose utility APIs for developers and AI agents. Pay per call with USDC on Base Mainnet or
    Solana Mainnet.
  x-pricing:
    model: pay-per-call
    currency: USDC
    network: Base Mainnet or Solana Mainnet
    price: $0.05
  x-keywords:
  - network
  - shopify rank checker
  - ai shopping visibility
  - chatgpt product rank
  - gemini shopping search
  - shopify seo
  - global catalog
  - ucp mcp
  - product rank tracker
  - utility
  - api
  - ai-agent
  - pay-per-call
  - usdc
  - x402
  x-category: shopify rank
  x-provider-url: https://underscoredone.com
  x-agentcash-auth:
    mode: paid
  x-402:
    price: $0.05
    network: eip155:8453
    asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
    pay_to: '0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08'
    facilitator: https://api.cdp.coinbase.com/platform/v2/x402
    scheme: exact
    description: Checks how well a Shopify store's products show up when AI shopping assistants such as ChatGPT, Gemini, Perplexity,
      Grok, and Copilot search for products, and reports the store's rank and its closest competitors. Searches Shopify's
      real Global Catalog — the same product index AI assistants read from.
    mime_type: application/json
    networks:
    - network: eip155:8453
      asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
      pay_to: '0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08'
    - network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
      asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
      pay_to: 8ugAWAXDB8V18kiUrGZTq1oMvU3C6Fxs8hfC6rvzQT3b
paths:
  /rank:
    post:
      tags:
      - shopify rank
      - ai visibility
      - product visibility
      - shopify
      - ai shopping
      - shopify seo
      - ai search ranking
      - llm seo
      - generative engine optimization
      - answer engine optimization
      - geo
      - aeo
      - chatgpt shopping
      - product rank checker
      - ai overview ranking
      summary: Finds your Shopify product's rank in the AI shopping catalog for any search keywords.
      description: Look up where a Shopify store's products show up when AI shopping assistants search for the given phrases,
        and show which competitors rank ahead of it.
      operationId: handler_rank_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Request'
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
              examples:
                success:
                  summary: Successful response
                  value:
                    api_version: 1.0.0
                    results:
                    - keyword: 7 foot pool table
                      rank: 2
                      urlFound: https://www.legacybilliards.com/products/baylor-ii-7-ft-pool-table-modern
                      top10Results:
                      - https://www.playgosports.com/products/gosports-mid-size
                      - https://www.legacybilliards.com/products/baylor-ii-7-ft-pool-table-modern
        '422':
          description: Unprocessable — a required field is missing or the wrong type. Check the detail field for specifics.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: array
        '402':
          description: Payment required. Send a signed USDC payment on Base Mainnet or Solana Mainnet using the x402 protocol.
          headers:
            X-Payment-Response:
              description: x402 payment challenge — base64-encoded JSON with payment details.
              schema:
                type: string
        '400':
          description: Bad request — your input failed validation or could not be processed. Check the detail field for specifics.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
      x-ai-instructions: Call this when a user wants to know how visible their Shopify store is to AI shopping assistants
        for specific search terms. Provide the store's myshopify.com domain and a list of search keywords. Use 'simple' report_detail
        for a quick rank check, or 'full' for complete competitor data and a data quality score. Keep keyword lists to 10
        or fewer per call for faster responses; split larger lists into multiple calls.
      x-guidance: Call this when a user wants to know how visible their Shopify store is to AI shopping assistants for specific
        search terms. Provide the store's myshopify.com domain and a list of search keywords. Use 'simple' report_detail for
        a quick rank check, or 'full' for complete competitor data and a data quality score. Keep keyword lists to 10 or fewer
        per call for faster responses; split larger lists into multiple calls.
      x-payment-info:
        price:
          fixed:
            mode: fixed
            currency: USD
            amount: '0.05'
        protocols:
        - x402: {}
components:
  schemas:
    CompetitorEntry:
      properties:
        position:
          type: integer
          title: Position
          description: Where this product sits in the search results, starting at 1.
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
          description: The product's name as shown in the catalog.
        price:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Price
          description: The product's price, if listed.
        productUrl:
          anyOf:
          - type: string
          - type: 'null'
          title: Producturl
          description: The product's web address.
        shopName:
          anyOf:
          - type: string
          - type: 'null'
          title: Shopname
          description: The name of the store selling this product.
        shopDomain:
          anyOf:
          - type: string
          - type: 'null'
          title: Shopdomain
          description: The store's web address.
        rating:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Rating
          description: The product's customer rating, if it has one.
      type: object
      required:
      - position
      title: CompetitorEntry
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    RankResult:
      properties:
        keyword:
          type: string
          title: Keyword
          description: The search phrase this result is about.
        rank:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rank
          description: Where your product landed in the search results. A blank value means it was not found within the scanned
            results.
        urlFound:
          anyOf:
          - type: string
          - type: 'null'
          title: Urlfound
          description: The exact web address of your product that showed up in the results, if it was found.
        top10Results:
          items:
            anyOf:
            - type: string
            - type: 'null'
          type: array
          title: Top10Results
          description: The web addresses of the top results shown for this search phrase, including yours if it made the list.
        totalScanned:
          anyOf:
          - type: integer
          - type: 'null'
          title: Totalscanned
          description: How many catalog results were checked for this phrase. Only filled in for the full report.
        matchedTitle:
          anyOf:
          - type: string
          - type: 'null'
          title: Matchedtitle
          description: The name of your product that was found. Only filled in for the full report.
        competitorsBeating:
          anyOf:
          - type: integer
          - type: 'null'
          title: Competitorsbeating
          description: How many other products ranked ahead of yours for this phrase. Only filled in for the full report.
        dataQualityScore:
          anyOf:
          - type: integer
          - type: 'null'
          title: Dataqualityscore
          description: A score from 0 to 100 showing how complete your product listing looks (description, images, options,
            ratings, categories). Only filled in for the full report when your product is found.
        enrichmentChecks:
          anyOf:
          - additionalProperties:
              type: boolean
            type: object
          - type: 'null'
          title: Enrichmentchecks
          description: A breakdown of which listing details your product has or is missing. Only filled in for the full report
            when your product is found.
        topCompetitors:
          anyOf:
          - items:
              $ref: '#/components/schemas/CompetitorEntry'
            type: array
          - type: 'null'
          title: Topcompetitors
          description: Details on the top-ranked products for this phrase. Only filled in for the full report.
        notFoundReason:
          anyOf:
          - type: string
          - type: 'null'
          title: Notfoundreason
          description: A plain-English explanation when your product was not found or the check failed.
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
          description: Filled in only if the catalog could not be searched for this phrase.
      type: object
      required:
      - keyword
      title: RankResult
    Request:
      properties:
        shop_domain:
          type: string
          title: Shop Domain
          description: Your store's web address, for example legacybilliards.com or example-store.myshopify.com. You can paste
            it with or without https://.
        keywords:
          items:
            type: string
          type: array
          maxItems: 10
          minItems: 1
          title: Keywords
          description: A list of 1 to 10 search phrases you want to check your store's rank for. Split larger lists across
            multiple calls.
        report_detail:
          type: string
          enum:
          - simple
          - full
          title: Report Detail
          description: Choose 'simple' for a quick rank summary or 'full' for complete competitor and data quality details.
          default: simple
        ships_to_country:
          type: string
          title: Ships To Country
          description: A two-letter country code, such as US or DE, so results reflect what a shopper in that country would
            see.
          default: US
      type: object
      required:
      - shop_domain
      - keywords
      title: Request
      example:
        keywords:
        - 7 foot pool table
        - shuffleboard table
        report_detail: simple
        ships_to_country: US
        shop_domain: legacybilliards.com
    Response:
      properties:
        api_version:
          type: string
          title: Api Version
          description: The version number of this tool.
          default: 1.0.0
        shop_domain:
          type: string
          title: Shop Domain
          description: The store address the results are for, after cleanup.
        ships_to_country:
          type: string
          title: Ships To Country
          description: The shopper country the results reflect.
        results:
          items:
            $ref: '#/components/schemas/RankResult'
          type: array
          title: Results
          description: One result per search phrase you asked about, listed in the same order you provided them.
      type: object
      required:
      - shop_domain
      - ships_to_country
      - results
      title: Response
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
  securitySchemes:
    siwx:
      type: apiKey
      in: header
      name: SIGN-IN-WITH-X
      description: CAIP-122 wallet signature for repeat access after payment
servers:
- url: https://shopify-ai-rank-checker.underscoredone.com
  description: Production
tags:
- name: shopify rank
- name: ai visibility
- name: product visibility
- name: shopify
- name: ai shopping
- name: shopify seo
- name: ai search ranking
- name: llm seo
- name: generative engine optimization
- name: answer engine optimization
- name: geo
- name: aeo
- name: chatgpt shopping
- name: product rank checker
- name: ai overview ranking
x402Version: 2
x-payment-accepts:
- scheme: exact
  network: eip155:8453
  payTo: '0xE9740820225B3918b4ddd1292C7cA4Ca0e2C2F08'
  asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
- scheme: exact
  network: solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
  payTo: 8ugAWAXDB8V18kiUrGZTq1oMvU3C6Fxs8hfC6rvzQT3b
  asset: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v