← Back to all apps

Tonita

Shoppingby Tonita, Inc.
Launched Jun 5, 2026 on ChatGPT

Tonita is a search engine for apparel and accessories, built to work with how you actually think about shopping. It brings together products from hundreds of stores, thousands of brands, and millions of items — all in one place, from clothing and footwear to cosmetics and everyday essentials.

There isn’t just one way to shop. Sometimes you’re focused on price or practicality; other times it’s about style, fit, materials, or longevity. What matters can shift with the situation — work, travel, special occasions, outdoor use, or everyday wear. Tonita brings these options together, making it easier for you to browse, compare, and make an informed choice.

Within ChatGPT, Tonita works best as part of a conversation. You can explore broad questions, half-formed ideas, or specific constraints naturally — whether that means thinking through what to buy for a particular occasion, learning about materials or categories, or narrowing in on a specific kind of product. ChatGPT helps shape your thoughts into useful searches, and Tonita surfaces a wide set of relevant results for you to browse, compare, and refine as the picture becomes clearer. (For more advanced tools like virtual try-on, saving favorites, and deeper browsing, Tonita can also be used directly at Tonita.co.)

Tonita is built to support the way you actually think about shopping — by priorities, context, and tradeoffs — rather than forcing everything into rigid categories. This includes the ability to search and explore across aspects like:

• Budget and value: From fast fashion and sale finds to higher-end pieces, investment items, and everyday staples. • Style and aesthetic: Minimalist, maximalist, classic, streetwear, formal, playful, utilitarian, fashion-forward, or timeless — and combinations of these. • Trends and longevity: What’s popular right now, last season’s styles, and pieces meant to stay relevant beyond a trend cycle. • Use case and setting: Work, travel, special occasions, outdoor use, events, lounging, or everyday wear. • Fit, sizing, and comfort: Different body types and needs, including petite and extended sizing, relaxed or tailored fits, and comfort-first designs. • Materials and feel: Natural fibers, synthetics, performance fabrics, lightweight layers, structured pieces, or materials chosen for warmth, breathability, or softness. • Durability and care: Easy-care basics, machine-washable items, wrinkle-resistant pieces, or garments meant to be worn, repaired, and kept longer. • Sustainability priorities: Interest in materials, production methods, longevity, or brands taking different approaches to environmental impact. • Brand familiarity and discovery: Well-known labels alongside emerging brands, niche designers, and alternatives to the usual options. • Putting a full look together: Apparel, footwear, accessories, jewelry, and cosmetics, considered side by side rather than in isolation.

2ChatGPT Tools
Tonita, Inc.Developer
ShoppingCategory

Available Tools

Tonita Get Listing Details

tonita-get-listing-details
Full Description

Get detailed information for one or more product listings.

When to use this tool

Call tonita-get-listing-details whenever you need to know more about specific products that have already appeared in search results. Common scenarios:

  • Shopper asks about a product: "Tell me more about that Nike shoe" —

you need the full description, available sizes, and images.

  • Preparing for visual search: Before calling tonita-search with

query_images, you need the image_id from this tool's response.

  • Comparing products: The shopper wants to compare two or three items

side by side — fetch all their details in one call.

  • Understanding before searching: The shopper says "find me more like

this". Call this tool first to understand what "this" is (its style, color, brand, price range), then construct a well-informed search.

What you get back

For each listing ID, the response includes:

  • url: The product page URL on the retailer's site.
  • text / structured fields: Title, description, price, brand, sizes,

and other metadata (varies by retailer).

  • thumbnail_image: An object with image_id and image_url — the

image_id is what you pass to tonita-search query_images for visual search.

Examples

Get details for a single product
{"listing_ids": ["thursdayboots.com!6c66be1f3d6c7f00"]}
Get details for multiple products to compare
{"listing_ids": [
  "thursdayboots.com!6c66be1f3d6c7f00",
  "nike.com!a1b2c3d4e5f67890"
]}
Workflow: shopper says "more like this" about a listing

1. Call tonita-get-listing-details with {"listing_ids": ["thursdayboots.com!6c66be1f3d6c7f00"]} 2. Read the response: it's a "navy blue wool overcoat" with image_id "89e667d28336d70f" 3. Call tonita-search with retrieval_queries=["navy blue wool overcoat"], query_images=[{"image_id": "89e667d28336d70f"}], prioritize_visual_similarity=true

Parameters (1 required)
Required
listing_idsarray

A list of listing IDs to retrieve details for. **How to use:** Pass the listing IDs from a previous `tonita-search` result. Each listing in the search results has a `listingId` field — collect the ones you need and pass them here. **Why this matters:** This is the only way to get full product details (description, all images, sizes, URL) and the `image_id` needed for visual search. **Rules:** - Maximum 10 listing IDs per call in normal use. - IDs must come from a previous tonita-search result. **Example:** ['thursdayboots.com!6c66be1f3d6c7f00', 'nike.com!a1b2c3d4e5f67890']

Tonita Search

tonita-search
Full Description

Search Tonita's product catalog to find clothing and apparel items.

When to use this tool

Call tonita-search whenever a shopper wants to find, browse, discover, or compare products. Common scenarios:

  • Direct product search: "Find me red dresses under $100"
  • Filtered browsing: "Show me Nike running shoes, not from Amazon"
  • Visual similarity: "Find items that look like this jacket" (using a

reference image from a previous tonita-get-listing-details call)

  • Exploratory shopping: "What summer dresses do you have?"

How search works

Search operates in two phases:

1. Retrieval — The engine fetches candidate products using retrieval_queries. Each query string is matched independently against the product catalog, and candidates are pooled together. More queries = broader candidate pool (up to a few variations).

2. Ranking — The pooled candidates are re-scored using reranking_query (falls back to the first retrieval_queries entry if omitted), combined with structured signals like product_type, gender, color, price, and brand preferences.

When prioritize_visual_similarity is enabled and query_images are provided, the engine also retrieves visually similar products and visual-similarity scores influence the final ranking.

Important rules

  • One product type per call. Searching for "shirts and pants and shoes" in

one call produces poor results. Make three separate calls instead, each focused on one type.

  • Keep queries objective and literal. The search engine has no pop-culture

or trend knowledge. "hot girl walk shoes" won't return good results — use "women's white athleisure sneakers" instead.

  • Never reference other products in queries. Don't write "similar to the

Patagonia jacket". Instead, call tonita-get-listing-details first, read the product details, then construct a new descriptive query based on them.

  • Use listing details for visual search. When the shopper says "more like

this" about a previously shown product, call tonita-get-listing-details to get the image_id, then pass it in query_images with prioritize_visual_similarity set to true.

  • Omit what you don't know. It is OK to leave optional fields as null. For

example, if the user has no brand or color preference, leave those fields null — do not guess.

Examples

Simple search
{
  "retrieval_queries": ["red satin midi dress"],
  "product_type": "dress",
  "gender": "Womens"
}
Search with brand and price filters
{
  "retrieval_queries": [
    "running shoes for daily training",
    "men's cushioned running sneakers",
    "lightweight jogging shoes for men"
  ],
  "product_type": "running shoes",
  "gender": "Mens",
  "restrict_to_brands": ["Nike", "Adidas", "New Balance"],
  "price_constraints": "under $150"
}
Search with color
{
  "retrieval_queries": ["leather crossbody bag"],
  "product_type": "bag",
  "gender": "Womens",
  "color": "black",
  "color_hex": "#000000",
  "price_constraints": "under $200"
}
Visual search (find products that look like a reference listing)
{
  "retrieval_queries": ["minimalist white low-top sneaker"],
  "product_type": "sneakers",
  "gender": "Womens",
  "query_images": [{"image_id": "89e667d28336d70f"}],
  "prioritize_visual_similarity": true
}
Visual search with a shopper photo (base64 or URL)
{
  "retrieval_queries": ["white leather low-top sneaker"],
  "product_type": "sneakers",
  "gender": "Womens",
  "query_images": [{"base64": "data:image/jpeg;base64,/9j/4AAQ..."}],
  "prioritize_visual_similarity": true
}
Detailed search with custom reranking query
{
  "retrieval_queries": [
    "summer floral wrap dress",
    "women's floral print midi dress"
  ],
  "reranking_query": "floral wrap dress; summer weight; midi length; feminine",
  "product_type": "dress",
  "gender": "Womens",
  "exclude_brands": ["SHEIN"],
  "price_constraints": "between $50 and $200",
  "carousel_title": "Summer floral wrap dresses"
}
Parameters (4 required, 13 optional)
Required
genderstring

The target gender for the product. **How to use:** Pick the value that best matches the shopper's intent from: Mens, Womens, Kids, Boys, Girls, Gender-Neutral, Unknown. **Why this matters:** Gender is woven into every retrieval and ranking query. Setting it correctly prevents the search engine from wasting retrieval slots on the wrong half of the catalog. **Rules:** - Use 'Gender-Neutral' when the product category is not gendered (e.g., phone cases, tote bags). - Use 'Unknown' only when the shopper has not indicated a preference and the product is gendered. **Examples:** 'Womens' for 'women's summer dress', 'Mens' for 'men's running shoes', 'Kids' for 'children's rain boots'

Options:MensWomensKidsBoysGirlsGender-NeutralUnknown
product_typestring

The specific type of product to search for. **How to use:** Set this to a single, narrow product category. Use the most specific term that fits — 'running shoes' rather than 'shoes', 'midi dress' rather than 'dress' — when the shopper has been specific. **Why this matters:** The search engine uses product_type to filter the catalog and construct retrieval queries. A vague type like 'clothing' returns unfocused results because the catalog is organized by specific categories. **Rules:** - Must be a single product type. To search for shirts AND pants, make two separate tool calls. - Never use 'clothing', 'apparel', or 'outfit'. - Do not include adjectives — product_type is the category, not the description. **Examples:** 'dress', 'running shoes', 'denim jacket', 'crossbody bag', 'sunglasses', 'bikini top', 'cargo pants'

querystring

The main search query describing what the user is looking for. This will be used for ranking results.

retrieval_queriesarray

One or more search queries used to retrieve candidate products from the catalog. **How to use:** Write concise, objective, natural-language descriptions of the desired product. Each string is run as an independent retrieval query; candidates are pooled before ranking. Use multiple entries to broaden recall (different synonyms or phrasings for the same intent). **Why this matters:** These queries drive which products enter the candidate pool. Clear, literal wording produces much better results than vague or pop-culture phrasing. **Rules:** - Keep each query objective and literal. - Never reference other products (e.g., 'similar to the Patagonia jacket'). Describe attributes directly. - Use at most 5 queries for text search. - When `prioritize_visual_similarity` is true, use exactly ONE query that captures the visual essence of what the shopper wants. **Good examples:** ['white women's low-top sneakers; leather upper; minimalist design'], ['men's navy blue wool overcoat'] **Bad examples:** ['shoes for hot girl walks'], ['something like the Nikes I saw earlier']

Optional
additional_queriesarray

Additional query variations to improve retrieval coverage. These are different phrasings of the same intent.

Default: null
carousel_titlestring

A short display title for the search results. Falls back to the first `retrieval_queries` entry if omitted. **How to use:** Write a concise, shopper-facing label that summarizes the results — like a carousel heading. **Examples:** 'Red dresses under $100', 'Nike running shoes', 'Bags similar to your selection'

Default: null
colorstring

The desired color of the product, as a human-readable name. **How to use:** Set this to the color the shopper wants. Use simple, standard color names. If the shopper has no color preference, leave this null. **Why this matters:** The color name is woven into the retrieval and ranking queries, helping the search engine favor products described with that color in their title and metadata. **Examples:** 'red', 'navy blue', 'forest green', 'black', 'cream', 'burgundy'

Default: null
color_hexstring

The desired color as a 6-digit RGB hex code (e.g., '#FF0000' for red). **How to use:** When you know the exact color (for example, from a previously shown listing's metadata), pass it here. If the shopper just says 'red' and you don't have an exact hex, you can either pick a representative hex or leave this null and rely on `color` alone. **Why this matters:** The search engine uses this hex code to visually rescore results — products whose images are closer to this color get a ranking boost. This is more precise than the text-based `color` field because it operates on actual pixel data from product images. **Examples:** '#FF0000' (red), '#000000' (black), '#1E3A5F' (navy blue), '#228B22' (forest green)

Default: null
exclude_brandsarray

Brands to exclude from the search results. **How to use:** Set this when the shopper explicitly says they do NOT want products from certain brands. Leave null if no brands to exclude. **Why this matters:** Excluded brands are factored into the reranking query so those products rank lower. **Example:** ['SHEIN', 'Temu']

Default: null
exclude_domainsarray

Retailer domains (websites) to exclude from results. **How to use:** Set this when the shopper explicitly says they do NOT want products from certain retailers. Use domain names (e.g., 'amazon.com'). Leave null if no retailers to exclude. **Why this matters:** This sets a hard filter — no products from these domains will be returned, regardless of how relevant they are. **Example:** ['amazon.com', 'walmart.com']

Default: null
include_brandsarray

Brands to include in the search results. Set to null if no brand preference.

Default: null
include_domainsarray

Retailer domains (websites) to include in results. **How to use:** Set this when the shopper explicitly wants products only from certain retailers. Each value must be a domain name (e.g., 'nike.com'), not a display name (e.g., NOT 'Nike'). Invalid domains are silently ignored. Leave null if no retailer preference. **Why this matters:** This sets a hard filter on the search results — only products from these domains will be returned. Use the domain list from the system instructions to find valid domain names. **Rules:** - Use domain names, not brand names (e.g., 'nordstrom.com' not 'Nordstrom'). - 'Show me similar items' does NOT mean same retailer. **Example:** ['nordstrom.com', 'zappos.com']

Default: null
price_constraintsstring

The shopper's price constraints, as a natural-language string. **How to use:** Express the price preference the way the shopper did. If the shopper has no price preference, leave this null. **Why this matters:** Price is woven into the reranking query so results favor products in the right range. This is a soft preference, not a hard filter. **Examples:** 'under $50', 'between $100 and $200', 'around $75', 'under $500', 'luxury price range'

Default: null
prioritize_visual_similarityboolean

Whether to prioritize visual similarity over text-based relevance (matches chat `prioritize_visual_similarity`). **How to use:** Set to true when the shopper wants products that LOOK LIKE a reference image or a previously shown product. Must be used together with `query_images`. **Why this matters:** When enabled, visual similarity scores drive ranking more than text matching. **Rules when true:** - You MUST also provide `query_images`. - Set `retrieval_queries` to ONE query capturing the visual essence of what the shopper wants. - Keep `reranking_query` very simple (basic category/features). **Example:** User says 'more shoes like this'. After `tonita-get-listing-details`, call `tonita-search` with retrieval_queries=['minimal white leather sneaker'], prioritize_visual_similarity=true, query_images=[{"image_id": "89e667d28336d70f"}]

Default: False
query_imagesarray

Images for visual retrieval (matches chat `query_images`). **How to use:** Provide one entry per reference image using exactly one of: - `image_id` — from `tonita-get-listing-details` (`thumbnail_image.image_id`) when referencing a prior result - `base64` — when the shopper attached a photo - `url` — when you have a direct HTTPS link to a product photo You can include up to 5 images. **Why this matters:** The search engine encodes these images and retrieves catalog items whose product photos are visually similar. **Rules:** - Always set `prioritize_visual_similarity` to true when providing query images. - Use exactly one `retrieval_queries` entry for visual search. **Examples:** - Catalog: [{"image_id": "89e667d28336d70f"}] - User photo: [{"base64": "data:image/jpeg;base64,/9j/..."}] - URL: [{"url": "https://cdn.example.com/shoe.jpg"}]

Default: null
reranking_querystring

A detailed query used specifically for ranking/scoring the retrieved candidates. Falls back to the first `retrieval_queries` entry if omitted. **How to use:** When the shopper's intent has nuances that matter for ranking but would hurt retrieval, express them here. Use semicolons to separate sub-phrases. **Why this matters:** Retrieval queries should be broad to catch all relevant products. The reranking query can be more specific to push the best matches to the top. **When `prioritize_visual_similarity` is true:** Keep this very simple (basic category/features only). Over-constraining suppresses strong visual matches. **Example:** retrieval_queries=['summer dress'], reranking_query='floral wrap dress; summer weight fabric; midi length; feminine silhouette'

Default: null
restrict_to_brandsarray

Brands to restrict results to. **How to use:** Only set this when the shopper has explicitly asked to see specific brand(s). If the user says 'show me Nike shoes', set this to ["Nike"]. If they have no brand preference, leave null. **Why this matters:** Brand names are added to retrieval queries and brand filters tighten which products can appear. **Rules:** - Only populate when the shopper explicitly wants specific brands. - 'Show me similar items' does NOT mean same brand — don't auto-populate from a referenced listing's brand. **Example:** ['Nike', 'Adidas', 'New Balance']

Default: null