{"openapi": "3.1.0", "info": {"title": "BootLeads API", "version": "2", "description": "\nE-commerce store intelligence API. Search and retrieve store profiles\nincluding platform, products, apps, contact info, social media, and Shopify details.\n\nHow each field is collected and its coverage by platform are described in the\n[data fields reference](https://bootleads.com/data/attributes/); the\n[filter reference](https://bootleads.com/data/filters/) lists which filters the API supports.\n\n## Authentication\n\nAll requests require a Bearer token in the `Authorization` header:\n\n```\nAuthorization: Bearer YOUR_API_KEY\n```\n\nAPI keys are available on the [Account Settings](https://bootleads.com/dashboard/account/) page.\nRequires an active **Enterprise** subscription.\n\n## Row balance\n\nEvery store returned by `stores/search` or `stores/mget` counts as one row against your balance.\nThe balance refills by **50,000 rows** at 00:00 UTC each day and holds up to **3,000,000 rows**;\nyour first Enterprise subscription starts full and renewals do not reset it. Responses carry `X-Rows-Remaining`\nand `X-Rows-Refill-At`, except errors returned before the balance is read (authentication, validation, rate limit).\nOnce the balance is used up, requests return `429` with the code `row_quota_exhausted` and a `Retry-After` header.\n\n## Rate limits\n\nAll endpoints are rate-limited to **3 requests per second** per API key.\nExceeding the limit returns `429` with a `Retry-After` header.\n\n## Pagination\n\nSearch results use **cursor-based pagination**. Each response includes\n`has_more` and `next_cursor`. Pass `next_cursor` back in `page.cursor`\nto fetch the next page. Do not mix cursor with filters or sort. Cursors do not expire.\n\nEvery page also returns `resume_cursor`, including the last one. To sync, page with `sort.created_at=asc`,\nsave it, and pass it later to get the stores added since; in the default newest-first order it carries on towards\nolder stores instead. The bookmark follows `created_at`, while filters are checked against each store as it is\nnow, so a store that only matches after it was added (a password-protected store that opens, a category filled\nin later) is not returned; see [Pagination and syncing](https://bootleads.com/api/v2/docs/#pagination) for a\nsync that catches them.\n\n## Terms of use\n\nAll APIs are governed by our standard terms.\nYou may integrate our data into your products, but may not:\n\n- Resell raw data\n- Replicate bootleads.com services\n"}, "paths": {"/api/v2/stores/search": {"post": {"operationId": "apps_api_v2_router_search_stores", "summary": "Search stores", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/SearchResponse"}}}}}, "description": "Search for stores using filters and full-text keyword search. Results are paginated using an opaque cursor. Pass `next_cursor` from the response into `page.cursor` to retrieve the next page. When using a cursor, do not include filters or custom sort. Every page also returns `resume_cursor`, a bookmark that picks up after the last store on the page, even on the last page. Each returned store counts against the row balance.", "tags": ["Stores"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/StoreSearchRequest"}}}, "required": true}, "security": [{"BearerAuth": []}]}}, "/api/v2/stores/mget": {"post": {"operationId": "apps_api_v2_router_mget_stores", "summary": "Get stores by IDs", "parameters": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/MgetResponse"}}}}}, "description": "Retrieve up to 50 stores by their domain names in a single request. The response separates found results from missing IDs. Each found store counts against the row balance.", "tags": ["Stores"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/StoreMgetRequest"}}}, "required": true}, "security": [{"BearerAuth": []}]}}, "/api/v2/filters": {"get": {"operationId": "apps_api_v2_router_list_filters", "summary": "List filters and their values", "parameters": [{"in": "query", "name": "key", "schema": {"anyOf": [{"enum": ["platform", "keyword", "language", "country", "currency", "avg_price_usd", "product_count", "created_at", "technologies", "technology_category", "status", "category", "subcategory", "province", "ships_to", "latest_product_at", "followers", "social_platforms", "meta_ads", "fb_ad_count", "tracker_platforms", "business_model", "traits", "previous_platforms", "pages", "apps", "theme", "domain_type", "tld", "domain_registered"], "type": "string"}, {"type": "null"}], "description": "Return only this filter", "title": "Key"}, "required": false, "description": "Return only this filter"}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FilterOptionsResponse"}}}}}, "description": "Every filter `stores/search` accepts, with how to write it, what it means and, for filters that take values from a list, the values you can use with approximate store counts. Pass `key` to get one filter. Does not count against the row balance.", "tags": ["Reference"], "security": [{"BearerAuth": []}]}}}, "components": {"schemas": {"AppOut": {"example": {"image": "https://cdn.shopify.com/app-store/listing_images/xxx/icon/xxx.png", "name": "Example Reviews App", "slug": "example-app", "url": "https://apps.shopify.com/example-app"}, "properties": {"slug": {"description": "Shopify app slug", "title": "Slug", "type": "string"}, "name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "App display name", "title": "Name"}, "image": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "App icon URL", "title": "Image"}, "url": {"description": "Shopify App Store URL", "title": "Url", "type": "string"}}, "required": ["slug", "name", "image", "url"], "title": "AppOut", "type": "object"}, "AppsOut": {"properties": {"active": {"description": "Currently installed apps", "items": {"$ref": "#/components/schemas/AppOut"}, "title": "Active", "type": "array"}}, "required": ["active"], "title": "AppsOut", "type": "object"}, "ContactOut": {"properties": {"email": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "description": "Branded email addresses found on the store's website", "title": "Email"}, "phone": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "description": "Phone numbers found on the store's website, in international (+\u2026) or local format", "title": "Phone"}, "whatsapp": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "description": "WhatsApp numbers from chat links, as digits with the country code and no '+'", "title": "Whatsapp"}}, "title": "ContactOut", "type": "object"}, "FbAdsOut": {"properties": {"count": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Estimated number of Meta (Facebook/Instagram) ads the store started in the last 30 days", "title": "Count"}, "last_start_date": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Start date of the most recently detected ad, at midnight UTC", "title": "Last Start Date"}}, "title": "FbAdsOut", "type": "object"}, "ProductOut": {"properties": {"count": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Number of products in the catalog", "title": "Count"}, "avg_price": {"anyOf": [{"type": "number"}, {"type": "null"}], "description": "Average product price in the store's local currency", "title": "Avg Price"}, "avg_price_usd": {"anyOf": [{"type": "number"}, {"type": "null"}], "description": "Average product price converted to USD", "title": "Avg Price Usd"}, "currency": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Local currency code, e.g. 'USD', 'EUR'", "title": "Currency"}}, "title": "ProductOut", "type": "object"}, "SearchResponse": {"properties": {"has_more": {"description": "Whether more results are available", "title": "Has More", "type": "boolean"}, "next_cursor": {"description": "Opaque cursor for the next page (empty string if no more results)", "title": "Next Cursor", "type": "string"}, "resume_cursor": {"description": "Bookmark that continues after the last store on this page, returned on every page including the last. With `sort.created_at=asc`, save it to fetch stores added later (stores that only match the filters after they were added are not returned); in the default newest-first order it carries on towards older stores", "title": "Resume Cursor", "type": "string"}, "results": {"description": "List of matching stores", "items": {"$ref": "#/components/schemas/StoreOut"}, "title": "Results", "type": "array"}}, "required": ["has_more", "next_cursor", "resume_cursor", "results"], "title": "SearchResponse", "type": "object"}, "ShopifyOut": {"properties": {"myshopify": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "The store's *.myshopify.com subdomain", "title": "Myshopify"}, "offers_installments": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the store offers installment payment options (e.g. Shop Pay Installments)", "title": "Offers Installments"}, "theme_schema_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Name of the active Shopify theme, e.g. 'Dawn'", "title": "Theme Schema Name"}, "payment_methods": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "description": "Accepted payment methods, e.g. 'SHOP_PAY', 'APPLE_PAY'", "title": "Payment Methods"}, "registration_country": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Country where the Shopify account was registered", "title": "Registration Country"}, "province": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Store's province or state", "title": "Province"}, "city": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Store's city", "title": "City"}, "ships_to_countries": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "description": "Country codes the store ships to", "title": "Ships To Countries"}}, "title": "ShopifyOut", "type": "object"}, "SocialOut": {"properties": {"platforms": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "description": "Social platform identifiers, e.g. 'instagram', 'tiktok'", "title": "Platforms"}, "total_followers": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "Estimated total followers across all linked platforms", "title": "Total Followers"}, "link": {"anyOf": [{"additionalProperties": {"type": "string"}, "type": "object"}, {"type": "null"}], "description": "Mapping of platform to profile URL", "title": "Link"}, "followers": {"anyOf": [{"additionalProperties": {"type": "integer"}, "type": "object"}, {"type": "null"}], "description": "Mapping of platform to estimated follower count", "title": "Followers"}}, "title": "SocialOut", "type": "object"}, "StoreOut": {"example": {"apps": {"active": [{"image": "https://cdn.shopify.com/app-store/listing_images/xxx/icon/xxx.png", "name": "Example Reviews App", "slug": "example-app", "url": "https://apps.shopify.com/example-app"}]}, "categories": ["Apparel & Accessories / Shoes & Footwear"], "contact": {"email": ["hello@example-store.com"], "phone": ["+12125550147"], "whatsapp": ["12125550147"]}, "country": "US", "created_at": "2025-01-15T10:30:00.000Z", "description": "Handmade leather shoes, shipped from New York.", "fb_ads": {"count": 12, "last_start_date": "2025-03-18T00:00:00+00:00"}, "has_android_app": false, "has_ios_app": false, "id": "example-store.com", "is_cod": false, "language": "en", "platform": "shopify", "product": {"avg_price": 39.99, "avg_price_usd": 39.99, "count": 128, "currency": "USD"}, "shopify": {"city": "New York", "myshopify": "example-store.myshopify.com", "offers_installments": false, "payment_methods": ["SHOP_PAY", "APPLE_PAY"], "province": "New York", "registration_country": "US", "ships_to_countries": ["US", "CA", "GB"], "theme_schema_name": "Dawn"}, "social": {"followers": {"instagram": 15200, "tiktok": 3200}, "link": {"instagram": "https://www.instagram.com/examplestore", "tiktok": "https://www.tiktok.com/@examplestore"}, "platforms": ["instagram", "tiktok"], "total_followers": 18400}, "status": "active", "technologies": {"active": [{"category": "email_sms_marketing", "id": "klaviyo", "name": "Klaviyo", "website": "https://www.klaviyo.com/"}], "checked_at": "2025-03-20T14:00:00.000Z"}, "title": "Example Store", "updated_at": "2025-03-20T14:00:00.000Z"}, "properties": {"id": {"description": "Store domain, used as the unique identifier", "title": "Id", "type": "string"}, "platform": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "E-commerce platform, e.g. 'shopify', 'woocommerce'", "title": "Platform"}, "title": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Store name extracted from the website", "title": "Title"}, "description": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Store's meta description extracted from the homepage", "title": "Description"}, "country": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Country the store is based in (ISO 3166-1 alpha-2), e.g. 'US', not the markets it sells to: the registration country for Shopify, inferred from store settings and site signals elsewhere", "title": "Country"}, "language": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Primary language code (ISO 639-1), e.g. 'en'", "title": "Language"}, "status": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "'active', or 'password_protected' for a store behind a password page. Search returns only these two; mget can also return 'closed', 'no_products', 'redirected' or 'spam'", "title": "Status"}, "categories": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "description": "Store categories, e.g. 'Apparel & Accessories / Shoes & Footwear'", "title": "Categories"}, "is_dropshipping": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the store is identified as a dropshipping business", "title": "Is Dropshipping"}, "is_cod": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the store supports cash on delivery", "title": "Is Cod"}, "is_print_on_demand": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the store is identified as a print-on-demand business", "title": "Is Print On Demand"}, "has_ios_app": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the store has a published iOS app", "title": "Has Ios App"}, "has_android_app": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "description": "Whether the store has a published Android app", "title": "Has Android App"}, "created_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Date when the store was first discovered by our crawler", "title": "Created At"}, "updated_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Date when the store was last crawled", "title": "Updated At"}, "product": {"anyOf": [{"$ref": "#/components/schemas/ProductOut"}, {"type": "null"}]}, "apps": {"anyOf": [{"$ref": "#/components/schemas/AppsOut"}, {"type": "null"}]}, "technologies": {"anyOf": [{"$ref": "#/components/schemas/TechnologiesOut"}, {"type": "null"}]}, "contact": {"anyOf": [{"$ref": "#/components/schemas/ContactOut"}, {"type": "null"}]}, "social": {"anyOf": [{"$ref": "#/components/schemas/SocialOut"}, {"type": "null"}]}, "fb_ads": {"anyOf": [{"$ref": "#/components/schemas/FbAdsOut"}, {"type": "null"}]}, "shopify": {"anyOf": [{"$ref": "#/components/schemas/ShopifyOut"}, {"type": "null"}]}}, "required": ["id"], "title": "StoreOut", "type": "object"}, "TechnologiesOut": {"properties": {"active": {"description": "Technologies detected on the latest homepage scan, across all platforms", "items": {"$ref": "#/components/schemas/TechnologyOut"}, "title": "Active", "type": "array"}, "checked_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "When the homepage was last scanned for technologies", "title": "Checked At"}}, "required": ["active"], "title": "TechnologiesOut", "type": "object"}, "TechnologyOut": {"example": {"category": "email_sms_marketing", "id": "klaviyo", "name": "Klaviyo", "website": "https://www.klaviyo.com/"}, "properties": {"id": {"description": "Stable technology id, e.g. `klaviyo`", "title": "Id", "type": "string"}, "name": {"description": "Technology display name", "title": "Name", "type": "string"}, "category": {"description": "Category id, e.g. `email_sms_marketing`", "title": "Category", "type": "string"}, "website": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Vendor website", "title": "Website"}}, "required": ["id", "name", "category"], "title": "TechnologyOut", "type": "object"}, "DateTimeRange": {"additionalProperties": false, "properties": {"min": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "Start date (inclusive, ISO 8601)", "title": "Min"}, "max": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "description": "End date (inclusive, ISO 8601)", "title": "Max"}}, "title": "DateTimeRange", "type": "object"}, "IntegerRange": {"additionalProperties": false, "properties": {"min": {"anyOf": [{"maximum": 2147483647, "minimum": 0, "type": "integer"}, {"type": "null"}], "description": "Lower bound (inclusive)", "title": "Min"}, "max": {"anyOf": [{"maximum": 2147483647, "minimum": 0, "type": "integer"}, {"type": "null"}], "description": "Upper bound (inclusive)", "title": "Max"}}, "title": "IntegerRange", "type": "object"}, "NumberRange": {"additionalProperties": false, "properties": {"min": {"anyOf": [{"type": "number"}, {"type": "null"}], "description": "Lower bound (inclusive)", "title": "Min"}, "max": {"anyOf": [{"type": "number"}, {"type": "null"}], "description": "Upper bound (inclusive)", "title": "Max"}}, "title": "NumberRange", "type": "object"}, "PageInput": {"additionalProperties": false, "properties": {"size": {"default": 50, "description": "Number of results per page (1-100)", "maximum": 100, "minimum": 1, "title": "Size", "type": "integer"}, "cursor": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Opaque cursor from a previous response's `next_cursor` or `resume_cursor`", "title": "Cursor"}}, "title": "PageInput", "type": "object"}, "SortInput": {"additionalProperties": false, "properties": {"created_at": {"default": "desc", "description": "Sort by when we first found the store", "enum": ["asc", "desc"], "title": "Created At", "type": "string"}}, "title": "SortInput", "type": "object"}, "StoreSearchRequest": {"additionalProperties": false, "example": {"country": ["US", "GB"], "keyword": "shoes", "page": {"size": 20}, "platform": ["shopify"], "sort": {"created_at": "desc"}}, "properties": {"platform": {"anyOf": [{"items": {"type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by platform, e.g. `shopify`, `woocommerce`", "title": "Platform"}, "keyword": {"anyOf": [{"maxLength": 200, "type": "string"}, {"type": "null"}], "description": "Full-text search on store title and description", "title": "Keyword"}, "language": {"anyOf": [{"items": {"type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by language code, e.g. `en`, `fr`", "title": "Language"}, "country": {"anyOf": [{"items": {"type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by country code, e.g. `US`, `GB`", "title": "Country"}, "currency": {"anyOf": [{"items": {"type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by product currency, e.g. `USD`, `EUR`", "title": "Currency"}, "avg_price_usd": {"anyOf": [{"$ref": "#/components/schemas/NumberRange"}, {"type": "null"}], "description": "Filter by average product price in USD"}, "product_count": {"anyOf": [{"$ref": "#/components/schemas/IntegerRange"}, {"type": "null"}], "description": "Filter by number of products"}, "created_at": {"anyOf": [{"$ref": "#/components/schemas/DateTimeRange"}, {"type": "null"}], "description": "Filter by when we first found the store"}, "technologies": {"anyOf": [{"items": {"type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by detected technology id, e.g. `klaviyo`, `judge_me`; any match", "title": "Technologies"}, "technology_category": {"anyOf": [{"items": {"type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by technology category, e.g. `email_sms_marketing`, `reviews_ugc`; any match", "title": "Technology Category"}, "status": {"anyOf": [{"items": {"enum": ["active", "password_protected"], "type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Store status; only `active` stores are returned unless this is set", "title": "Status"}, "category": {"anyOf": [{"items": {"type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by category key, e.g. `electronics`; matches stores in any of the chosen categories or subcategories", "title": "Category"}, "subcategory": {"anyOf": [{"items": {"type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by subcategory key, e.g. `phones-tablets`; matches stores in any of the chosen categories or subcategories", "title": "Subcategory"}, "province": {"anyOf": [{"items": {"pattern": "^[A-Z]{2}:.+$", "type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by state or province as `COUNTRY:Name`, e.g. `US:California` (Shopify only)", "title": "Province"}, "ships_to": {"anyOf": [{"items": {"type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by country code the store ships to, e.g. `US`; `*` for worldwide (Shopify only)", "title": "Ships To"}, "latest_product_at": {"anyOf": [{"$ref": "#/components/schemas/DateTimeRange"}, {"type": "null"}], "description": "Filter by when the newest product was added"}, "followers": {"anyOf": [{"$ref": "#/components/schemas/IntegerRange"}, {"type": "null"}], "description": "Filter by total social followers"}, "social_platforms": {"anyOf": [{"items": {"type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by linked social network, e.g. `instagram`, `tiktok`; any match", "title": "Social Platforms"}, "meta_ads": {"anyOf": [{"enum": ["active", "ever", "never"], "type": "string"}, {"type": "null"}], "description": "Meta (Facebook and Instagram) ads: started one in the last 30 days, ever ran, or never ran", "title": "Meta Ads"}, "fb_ad_count": {"anyOf": [{"$ref": "#/components/schemas/IntegerRange"}, {"type": "null"}], "description": "Filter by Meta ads started in the last 30 days"}, "tracker_platforms": {"anyOf": [{"items": {"type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by tracking pixel vendor, e.g. `facebook`, `tiktok`; any match", "title": "Tracker Platforms"}, "business_model": {"anyOf": [{"items": {"enum": ["dropshipping", "pod", "cod"], "type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by business model; any match", "title": "Business Model"}, "traits": {"anyOf": [{"items": {"enum": ["shopify_plus", "has_mobile_app", "platform_changed", "offers_installments"], "type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by store traits; all must match", "title": "Traits"}, "previous_platforms": {"anyOf": [{"items": {"type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by the platform a store ran on before, e.g. `woocommerce`; any match", "title": "Previous Platforms"}, "pages": {"anyOf": [{"items": {"type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by page type linked from the homepage, e.g. `wholesale`; any match", "title": "Pages"}, "apps": {"anyOf": [{"items": {"type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by Shopify app slug, e.g. `judgeme`, `klaviyo-email-marketing`; any match (Shopify only)", "title": "Apps"}, "theme": {"anyOf": [{"items": {"type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by Shopify theme name, e.g. `Dawn`; any match (Shopify only)", "title": "Theme"}, "domain_type": {"anyOf": [{"items": {"enum": ["custom", "platform"], "type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Custom domain or a platform address such as myshopify.com", "title": "Domain Type"}, "tld": {"anyOf": [{"items": {"type": "string"}, "maxItems": 100, "type": "array"}, {"type": "null"}], "description": "Filter by domain ending without the dot, e.g. `com`, `co.uk`", "title": "Tld"}, "domain_registered": {"anyOf": [{"$ref": "#/components/schemas/DateTimeRange"}, {"type": "null"}], "description": "Filter by domain registration date"}, "page": {"allOf": [{"$ref": "#/components/schemas/PageInput"}], "description": "Pagination options"}, "sort": {"allOf": [{"$ref": "#/components/schemas/SortInput"}], "description": "Sort options"}, "fields": {"anyOf": [{"items": {"enum": ["id", "platform", "title", "description", "country", "language", "status", "categories", "is_dropshipping", "is_cod", "is_print_on_demand", "has_ios_app", "has_android_app", "created_at", "updated_at", "product", "apps", "technologies", "contact", "social", "fb_ads", "shopify"], "type": "string"}, "type": "array"}, {"type": "null"}], "description": "Top-level keys of each store to return, e.g. `[\"title\", \"contact\"]`. `id` and `created_at` are always returned. Omit for the full store. A cursor keeps the fields of the request that started it; pass `fields` again to change them", "title": "Fields"}}, "title": "StoreSearchRequest", "type": "object"}, "MgetResponse": {"properties": {"missing_ids": {"description": "IDs that were not found", "items": {"type": "string"}, "title": "Missing Ids", "type": "array"}, "results": {"description": "Found stores in the same order as requested", "items": {"$ref": "#/components/schemas/StoreOut"}, "title": "Results", "type": "array"}}, "required": ["missing_ids", "results"], "title": "MgetResponse", "type": "object"}, "StoreMgetRequest": {"additionalProperties": false, "example": {"ids": ["allbirds.com", "wyrmwoodgaming.com", "andymation.com"]}, "properties": {"ids": {"description": "Store domains to retrieve (1-50)", "items": {"type": "string"}, "maxItems": 50, "minItems": 1, "title": "Ids", "type": "array"}, "fields": {"anyOf": [{"items": {"enum": ["id", "platform", "title", "description", "country", "language", "status", "categories", "is_dropshipping", "is_cod", "is_print_on_demand", "has_ios_app", "has_android_app", "created_at", "updated_at", "product", "apps", "technologies", "contact", "social", "fb_ads", "shopify"], "type": "string"}, "type": "array"}, {"type": "null"}], "description": "Top-level keys of each store to return, e.g. `[\"title\", \"contact\"]`. `id` and `created_at` are always returned. Omit for the full store", "title": "Fields"}}, "required": ["ids"], "title": "StoreMgetRequest", "type": "object"}, "FilterOptionsQuery": {"properties": {"key": {"anyOf": [{"enum": ["platform", "keyword", "language", "country", "currency", "avg_price_usd", "product_count", "created_at", "technologies", "technology_category", "status", "category", "subcategory", "province", "ships_to", "latest_product_at", "followers", "social_platforms", "meta_ads", "fb_ad_count", "tracker_platforms", "business_model", "traits", "previous_platforms", "pages", "apps", "theme", "domain_type", "tld", "domain_registered"], "type": "string"}, {"type": "null"}], "description": "Return only this filter", "title": "Key"}}, "title": "FilterOptionsQuery", "type": "object"}, "FilterOptionsResponse": {"properties": {"filters": {"items": {"$ref": "#/components/schemas/FilterOut"}, "title": "Filters", "type": "array"}}, "required": ["filters"], "title": "FilterOptionsResponse", "type": "object"}, "FilterOut": {"properties": {"key": {"description": "Request field name in `stores/search`", "title": "Key", "type": "string"}, "type": {"description": "How to write it: `array` of values, `range` or `date_range` as `{min, max}`, a single `choice`, or free `text`", "title": "Type", "type": "string"}, "description": {"description": "What the filter matches", "title": "Description", "type": "string"}, "platforms": {"anyOf": [{"items": {"type": "string"}, "type": "array"}, {"type": "null"}], "description": "Platforms the filter applies to; absent when all", "title": "Platforms"}, "docs_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Reference page for the filter", "title": "Docs Url"}, "values": {"anyOf": [{"items": {"$ref": "#/components/schemas/FilterValueOut"}, "type": "array"}, {"type": "null"}], "description": "Values you can use; absent for ranges and text", "title": "Values"}}, "required": ["key", "type", "description"], "title": "FilterOut", "type": "object"}, "FilterValueOut": {"properties": {"key": {"description": "Value to send in the filter", "title": "Key", "type": "string"}, "label": {"description": "Display name; may change, unlike `key`", "title": "Label", "type": "string"}, "count": {"description": "Approximate number of stores with this value, refreshed hourly", "title": "Count", "type": "integer"}}, "required": ["key", "label", "count"], "title": "FilterValueOut", "type": "object"}}, "securitySchemes": {"BearerAuth": {"type": "http", "description": "Pass your API key in the `Authorization` header:\n\n```\nAuthorization: Bearer YOUR_API_KEY\n```\n\nAPI keys are available on the [Account Settings](https://bootleads.com/dashboard/account/) page. Requires an active Enterprise subscription.", "scheme": "bearer"}}}, "servers": []}