- Brand
- Shopify
- Category
- Commerce
- Primary Subcategory
- Ecommerce Operations Platforms
Integration details
Description
Shopify for Claude makes starting, running, and growing an online store as easy as having a conversation. Turn a small business idea into an ecommerce website with Shopify’s AI store builder: describe what you sell, create your store, add products, and sell online. Already have a Shopify store? Connect it to manage inventory across locations, create discount codes, review orders and customer details, and pull analytics on your store’s performance. Shopify supports selling online, in person, B2B, on marketplaces, and selling internationally. Whether you run a print on demand business, sell digital products, operate an online boutique, dropship, or serve wholesale buyers, Shopify gives you the foundation to build, sell, and grow.
- Integration type
- Connector
- Verification status
Verified connectorVerified connectors are published by Anthropic or an approved partner and are eligible for organic discovery in Claude.- Platform
- Claude
- Primary Subcategory
- Ecommerce Operations Platforms
- Secondary Subcategories
- Email & SMS Lifecycle Marketing AutomationMarketing & Commerce Data IntegrationMarketplace Seller, Dropship & Wholesale ToolsVehicle Marketplaces & Listings
- Brand
- Shopify
- Access
- No account required
- First tracked
- 2026-04-29
- Tool count
- 25
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Agent DiscoverabilityClaude Discoverability ScoreUpdated dailyThe first to track the ChatGPT, Claude, Muse, Grok & Google ecosystems, with the largest database on the core platforms. Tracked daily since .
91/100
Winning#1of 137
in Ecommerce Operations Platforms- Picked
- 91.3/100
- Found
- 72.8/100
- Positioned
- 90.7/100
Category leaderboard
Ecommerce Operations Platforms
- 1S
Shopify91
- 2S
ShipBob53
- 3A
AfterShip Channels for TikTok Shop33
- 4A
AfterShip Post-Purchase33
- 5S
Shippo20
Get alerts for Shopify
Get updates when Shopify’s Discoverability Score or category rank changes.
Competing in Claude Ecommerce Operations Platforms
View Category25 tools agents can invoke
Add one or more products to a collection in the connected Shopify store. Use this when the user wants to organize products into a collection. Find the collection's GID with search_collections first.
add-to-collection
Update the status of multiple products at once. Accepts a list of product IDs or a collectionId and a target status (ACTIVE, DRAFT, or ARCHIVED). Each product is updated individually so partial failures are possible. When using collectionId, only the first 50 products in the collection will be updated.
bulk-update-product-status
Create a new collection in the connected Shopify store and publish it to the Online Store. Use this when the user wants to organize products into a new group. COLLECTION TYPES: - Manual collection: pass `productIds` to add specific products. - Smart collection: pass `ruleSet` with conditions to auto-populate products. - `productIds` and `ruleSet` are mutually exclusive — provide one or neither. SMART COLLECTION RULES: - Common rule columns: TAG, VENDOR, TYPE, TITLE, VARIANT_PRICE. - Common relations: EQUALS, NOT_EQUALS, CONTAINS, NOT_CONTAINS, STARTS_WITH, ENDS_WITH, GREATER_THAN, LESS_THAN. - `appliedDisjunctively: true` means products matching ANY rule are included (OR logic). - `appliedDisjunctively: false` means products must match ALL rules (AND logic). IMAGE REQUIREMENTS: - Images must be publicly accessible HTTPS URLs (e.g. https://example.com/photo.jpg). - Local file paths (e.g. /mnt/data/..., file://...) are NOT supported and will fail. - If you only have a local file or a generated image, ask the user for a publicly accessible HTTPS URL; this host cannot upload one. - Avoid placeholder or non-deterministic image URLs (e.g. picsum.photos) for real collections.
create-collection
Create a percentage-based discount code for the connected Shopify store. Use this when the merchant wants to set up a new discount code with a specific percentage off — including one limited to particular products or to a collection — with optional minimum purchase or quantity requirements. SCOPE — what the discount applies to: - Call both search_products and search_collections on whatever the merchant named, even if the first one already matches — a product and a collection can share a name. If both match, ask the merchant which they meant rather than picking one. - Specific products ("20% off the Snake Plant", "put these three items on sale"): pass productIds with their product GIDs, up to 50 of them. Look the GIDs up with search_products or get-product first. - An existing collection ("20% off everything in Summer Sale"), or any set larger than 50 products: pass collectionId. - Every product in the store: omit both. - productIds and collectionId are mutually exclusive. Passing both is rejected before anything is created. Do NOT create a collection just to scope a discount to products. This tool discounts products directly in one call, so a collection made only as a stepping stone leaves the merchant with one they never asked for. This is not a restriction on create-collection itself: if the merchant asked for a collection, create it and then scope the discount to it with collectionId. What matters is why the collection exists — one the merchant wants is fine, one invented to work around productIds is not. BEFORE CALLING — get two answers from the merchant, in one message if both are missing. Do not call this tool until you have both, and do not fill either in yourself: there is no default start date and no default audience. - When the discount starts: right away, or on a specific date. Pass startsAt as an ISO 8601 timestamp: the current date and time for "right away", or the date the merchant chose. - Who can use it: every customer, or only certain customer segments. Pass customerEligibility="all_customers" once the merchant confirms everyone, or customerSegments with the names of segments that exist on this store. One exception: if the merchant wants the discount limited to a customer segment and you do not know which segments this store has, call with startsAt set and both customerEligibility and customerSegments omitted. Nothing is created; the tool replies with the store's segment names. Show them to the merchant, then call again with the one they choose.
create-discount
Create a new product in the connected Shopify store. If create-product-interactive is available, prefer it over create-product. Use this when the user wants to add a product with a title, description, variants, images, or other product details. VARIANTS & OPTIONS: - When providing `variants`, you MUST also provide the `options` field as a string array of option names. - Example: for a single default variant use `options: ['Title']`, for Size/Color variants use `options: ['Size', 'Color']`. - The `options` field must be an array of strings (e.g. `['Size', 'Color']`), NOT an array of objects. - Each variant's `optionValues` must reference option names declared in the `options` array. INVENTORY TRACKING: - To enable inventory tracking on variants, set `inventoryItem: { tracked: true }` on each variant. - If omitted, inventory defaults to untracked and set-inventory will not work as expected. IMAGE REQUIREMENTS: - Images must be publicly accessible HTTPS URLs (e.g. https://example.com/photo.jpg). - Local file paths (e.g. /mnt/data/..., file://...) are NOT supported and will fail. - If you only have a local file or a generated image, ask the user for a publicly accessible HTTPS URL; this host cannot upload one. - Avoid placeholder or non-deterministic image URLs (e.g. picsum.photos) for real products. - The first image provided becomes the product's featured image. COLLECTION: - Optionally pass `collectionId` to add the product to a collection after creation. - To add to multiple collections, use add-to-collection afterward.
create-product
Discover queries, mutations, and named types in the Shopify Admin GraphQL schema. This tool only inspects the schema; it never executes an operation. Every call needs operation or type_name; a call with neither is rejected. Set operation to 'query' or 'mutation' to list top-level field names, optionally filtered by a case-insensitive search. Supply an exact field_name to inspect its arguments, return type, and description; skip the name list if the field is already known. Set operation to 'schema' and type_name to a namedType returned by discovery to inspect one named type. Objects and interfaces list field names and return types; input objects list input fields and isOneOf without recursively expanding nested types. Enums list values, and unions/interfaces list possible types. Supply field_name for one field's or enum value's details. Inspect only unfamiliar types needed by the operation, including custom scalars whose formats are unknown. Reuse discovered details and skip built-in scalars (String, Int, Float, Boolean, ID). Never guess fields. QueryRoot and Mutation must be discovered with operation 'query' or 'mutation'. After constructing an operation, call graphql_query or graphql_mutation to execute it. Those execution tools validate before sending the operation to Admin. search_docs_chunks supplements discovery with examples but never replaces it. Documentation questions go straight to search_docs_chunks.
graphql_schema
Retrieve detailed information about a specific Shopify collection by its GID, including title, description, image, products, and rules (for smart collections). MUST be called whenever the user refers to a collection they own or previously created — regardless of phrasing. Trigger phrases include: "my collection", "that collection", "the collection", "show me my collection", "get my collection", or any reference to a previously created or known collection. "Show" and "get" mean the same thing here: always fetch live data from Shopify. Do NOT rely on memory or prior responses — always call this tool for the source of truth.
get-collection
Retrieve inventory levels for all variants of a product across locations. Use this when the user asks about stock quantities, inventory availability, or wants to see how much inventory is at each location for a given product.
get-inventory-levels
Retrieve detailed information about a specific Shopify order including line items, fulfillment status, shipping address, and tracking. Use this when the user asks about a particular order's details or status.
get-order
Retrieve detailed information about a specific Shopify product by its GID, including title, status, vendor, variants, images, tags, and inventory. MUST be called whenever the user refers to a product they own or previously created — regardless of phrasing. Trigger phrases include: "my product", "that product", "the product", "show me my product", "get my product", "pull up the product", "open my product", or any reference to a previously created or known product. "Show" and "get" mean the same thing here: always fetch live data from Shopify. Do NOT rely on memory or prior responses — always call this tool for the source of truth.
get-product
Retrieve basic information about the connected Shopify store including name, domain, email, plan, currency, timezone, and country. Use this when you need store context to tailor advice (e.g. plan limitations, currency for pricing, timezone for scheduling), when the user asks about their store details, or to verify which store is connected.
get-shop-info
Execute a GraphQL mutation against the Shopify Admin API when no dedicated built-in tool covers the request. Before execution, call graphql_schema with operation 'mutation' to discover the exact mutation field and its arguments. Then use operation 'schema' and type_name to inspect unfamiliar input and return types, following nested named types as needed. Never guess fields. search_docs_chunks can supplement discovery with examples but never replaces it. Some dangerous mutations are blocked for safety (e.g. refunds, gift card writes, staff management, theme deletion, theme publishing). Theme file writes (themeFilesCopy, themeFilesUpsert) are allowed on unpublished themes only — writes that target the live/MAIN theme are blocked. If a mutation is blocked, inform the user and suggest they perform the action in Shopify admin. After constructing the mutation, call this tool to execute it. The host app will prompt the user for confirmation before executing. setup-mcp also validates the operation against its pinned Admin schema before sending it to Admin. After executing, present the results clearly rather than dumping raw JSON.
graphql_mutation
Execute a read-only GraphQL query against the Shopify Admin API when no dedicated built-in tool covers the request. Raw schema introspection (__schema / __type) is not allowed through this tool. Use graphql_schema with operation 'query' to find an unknown query field or inspect its arguments and return type. Use operation 'schema' and type_name only for unfamiliar types needed by the query, including custom scalars whose value formats are unknown. Reuse schema details already discovered; skip built-in scalars (String, Int, Float, Boolean, ID). Never guess fields. After constructing the query, call this tool to execute it. The server validates Admin GraphQL against its pinned schema before sending the query to Admin. search_docs_chunks supplements schema discovery with examples but cannot replace it. For pagination select pageInfo { hasNextPage endCursor }, then use the returned endCursor as the after variable. Present results clearly to the user rather than dumping raw JSON. For writes, discover the operation with graphql_schema using operation 'mutation', then use graphql_mutation.
graphql_query
Retrieve a list of customers from the connected Shopify store, including name, email, phone, order count, and total spent. Use this when the user asks about their customers, wants to look up a specific customer, or needs customer data for analysis. SEARCH SYNTAX: When the user is looking for a specific customer (by name, email, tag, etc.), ALWAYS pass a structured `query` using Shopify's customer search syntax. Do NOT pass a bare free-text term like `Smith` for a name search — Shopify's default fields match addresses, tags, company names, and notes, which returns unrelated customers. Field filters use `field:value`. Combine with `AND` / `OR` / `NOT`; parenthesize subqueries. Ranges use `:<`, `:<=`, `:>`, `:>=` on numeric / date fields. Name lookups should query BOTH first and last name, e.g. for "customers named Smith" use `first_name:Smith OR last_name:Smith`. Supported filter fields: - Name: `first_name`, `last_name` - Contact: `email`, `phone` - Location: `country` (full name or code, e.g. `Canada` / `CA`) - Account state: `state` (`enabled` | `invited` | `disabled` | `declined`) - Marketing: `accepts_marketing` (boolean), `email_marketing_state` (`subscribed` | `not_subscribed` | `pending` | `invalid` | `redacted`) - Tags: `tag`, `tag_not` - Numeric (support ranges): `orders_count`, `total_spent`, `id` - Date (support ranges): `created_at`, `updated_at`, `order_date`, `last_abandoned_order_date` — use ISO 8601 in quotes, e.g. `created_at:>'2024-01-01'` RECENCY OF ORDERS: To filter by when a customer placed an order, use `order_date` — NOT `updated_at`. `order_date` matches customers who have at least one order within the given date range. `updated_at` is bumped by profile edits too, so it's a leaky proxy. For abandoned-checkout recency, use `last_abandoned_order_date`. Compose either with the same date syntax shown for `created_at` / `updated_at` above; for relative windows ("last N days"), compute the cutoff from the current date in your context. Examples: - `Find customers named Smith` → `first_name:Smith OR last_name:Smith` - `Customers with gmail addresses` → `email:*@gmail.com` - `Customers with more than 5 orders` → `orders_count:>5` - `Customers from Canada` → `country:Canada` - `VIP customers` → `tag:vip` - `Subscribed to email` → `email_marketing_state:subscribed` IMPORTANT — invalid field names are silently ignored and return everything. Only use the fields listed above. Do NOT invent fields like `name:`, `full_name:`, `customer_name:`, or `city:`.
list-customers
Retrieve recent orders from the connected Shopify store. Returns order name, customer, totals, financial and fulfillment status. Use this when the user asks about their orders, wants an overview of recent sales, or needs to find a specific order.
list-orders
Run a ShopifyQL analytics query. Returns tabular results with automatic chart visualization. IMPORTANT: Always use FROM...SHOW syntax. Use TIMESERIES for time charts, GROUP BY for categories. ## Sales & Revenue - FROM sales SHOW gross_sales TIMESERIES day SINCE -30d UNTIL today - FROM sales SHOW orders, gross_sales, discounts, sales_reversals, net_sales, shipping_charges, taxes, total_sales TIMESERIES day SINCE -30d UNTIL today - FROM sales SHOW total_sales TIMESERIES day SINCE -30d UNTIL today COMPARE TO previous_period - FROM sales SHOW gross_sales, discounts, sales_reversals, net_sales, shipping_charges, taxes, total_sales - FROM sales SHOW average_order_value TIMESERIES day SINCE -30d UNTIL today ## Orders - FROM sales SHOW orders TIMESERIES day SINCE -7d UNTIL today - FROM fulfillments SHOW orders_fulfilled, orders_shipped, orders_delivered TIMESERIES day SINCE -30d UNTIL today ## Products - FROM sales SHOW gross_sales, net_sales, orders GROUP BY product_title ORDER BY gross_sales DESC LIMIT 10 - FROM inventory SHOW starting_inventory_units, ending_inventory_units, inventory_units_sold, sell_through_rate GROUP BY product_title, product_variant_title ## Customers - FROM sales SHOW returning_customers, customers, returning_customer_rate TIMESERIES day SINCE -30d UNTIL today - FROM sales SHOW new_customers, returning_customers TIMESERIES day SINCE -30d UNTIL today ## Sessions & Conversion - FROM sessions SHOW sessions, online_store_visitors TIMESERIES day SINCE -30d UNTIL today - FROM sessions SHOW sessions, sessions_with_cart_additions, sessions_that_reached_checkout, sessions_that_completed_checkout, conversion_rate TIMESERIES day SINCE -30d UNTIL today - FROM sessions SHOW sessions GROUP BY session_device_type SINCE -30d UNTIL today - FROM sessions SHOW sessions GROUP BY session_country SINCE -30d UNTIL today ## Marketing & Referrals - FROM sales SHOW orders, total_sales GROUP BY order_referrer_source, order_referrer_name SINCE -30d UNTIL today - FROM sessions SHOW sessions WHERE referrer_source = 'social' GROUP BY referrer_name SINCE -30d UNTIL today ## Tables: sales, sessions, customers, fulfillments, inventory, payments. There is no orders table: count orders with FROM sales SHOW orders ## Time grouping: TIMESERIES day/week/month. Category grouping: GROUP BY column ## Comparison: COMPARE TO previous_period. Aggregates: WITH TOTALS, PERCENT_CHANGE
run-analytics-query
Search and browse collections on a Shopify store. Use this whenever the user wants to see, find, or look at collections in their store. Trigger phrases include: 'show me my collections', 'what collections do I have', 'list my collections', 'find a collection', 'search collections', or any reference to viewing multiple collections. 'Show' and 'get' mean the same thing: always fetch live data from Shopify. Do NOT summarize from memory. Use this when the user wants to: - list or search collections - find a collection by name - check what collections exist in their store - find a collection GID to use with add-to-collection or create-product Returns collection data from the connected store via the Shopify Admin API. Results are capped at 50 per call. When `pageInfo.hasNextPage` is true, more matches exist than were returned. Tell the user you are showing the first N results and offer two paths: (a) load more via `after: pageInfo.endCursor`, or (b) refine the search with a stricter query. Only act on one of those paths when the user asks; do not auto-paginate. SEARCH SYNTAX: Free text matches across default fields (e.g. `summer`, `"new arrivals"`). Field filters use `field:value`. Combine with `AND` / `OR` / `NOT`; parenthesize subqueries. Ranges use `:<`, `:<=`, `:>`, `:>=` on numeric/date fields. Example: `collection_type:smart AND title:sale*`. IMPORTANT — invalid field names are silently ignored and return everything. Only use the fields listed below, as flat names. Do NOT invent dotted paths like `collection.title` or `rules.column`. Supported filter fields: - Text / exact: `title`, `handle`, `collection_type` (custom|smart) - Numeric (support ranges): `id` - Date (support ranges): `updated_at`, `published_at` — use ISO 8601 in quotes, e.g. `updated_at:>'2024-01-01'` - ID: `product_id` (collections containing the given product) - Publication: `published_status` (e.g. `published`, `unpublished`, `online_store_channel`) Note: there is no server-side filter for product count, rules, or sort order. For those, filter by `collection_type` and inspect the returned `productsCount` / `sortOrder` fields client-side, or narrow with `title:` / `handle:`.
search_collections
Search and browse products on a Shopify store. MUST be called whenever the user wants to see, find, or look at products in their store. Trigger phrases include: 'show me my products', 'what products do I have', 'list my products', 'browse my catalog', 'find a product', 'search for', or any reference to viewing multiple products. 'Show' and 'get' mean the same thing: always fetch live data from Shopify. Do NOT summarize from memory. Use this when the user wants to: - list or search products - look up a specific product by ID or handle - check product status or details - browse what's in their catalog Returns product data from the connected store via the Shopify Admin API. Results are capped at 50 per call. When `pageInfo.hasNextPage` is true, more matches exist than were returned. Tell the user you are showing the first N results and offer two paths: (a) load more via `after: pageInfo.endCursor`, or (b) refine the search with a stricter query. Only act on one of those paths when the user asks; do not auto-paginate. SEARCH SYNTAX: Free text matches across default fields (e.g. `shoes`, `"green hoodie"`). Field filters use `field:value`. Combine with `AND` / `OR` / `NOT`; parenthesize subqueries. Ranges use `:<`, `:<=`, `:>`, `:>=` on numeric/date fields. Example: `price:<=25 AND status:active`. IMPORTANT — invalid field names are silently ignored and return everything. Only use the fields listed below, as flat names. Do NOT invent dotted paths like `variants.price`, `product.tag`, or `variant.sku`. Supported filter fields: - Text / exact: `title`, `vendor`, `product_type`, `handle`, `sku`, `barcode`, `variant_title`, `tag`, `tag_not`, `status` (active|archived|draft) - Numeric (support ranges): `price` (matches products with ANY variant whose price satisfies the condition), `inventory_total`, `id`, `variant_id` - Date (support ranges): `created_at`, `updated_at`, `published_at` — use ISO 8601 in quotes, e.g. `created_at:>'2024-01-01'` - Boolean: `gift_card`, `bundles`, `is_price_reduced`, `out_of_stock_somewhere`, `tracks_inventory`, `has_only_default_variant` - ID: `collection_id`, `category_id` Price examples (cross-variant semantics): - `price:<=25` — products with at least one variant priced $25 or less - `price:>100 price:<=500` — products with at least one variant in $100–$500 - `price:25` — products with at least one variant priced exactly $25 SHOULD populate `search_summary` with a concise but descriptive plain-text heading in the user's language. Use a noun phrase that identifies the results as products instead of repeating only the search term—for example, "Your sneaker products", not "Your sneakers". The widget displays this text verbatim, so do not use Markdown. For a min/max of every variant or a product-wide price band, this tool cannot express it server-side; tell the user and suggest narrowing with `price:` plus another filter (e.g. `product_type:`, `vendor:`, `tag:`).
search_products
Set the available inventory quantity for a specific inventory item at a given location. Always call get-inventory-levels first to get the inventoryItemId, locationId, and current available quantity. Pass the current quantity as compareQuantity so the update fails safely if stock changed since you read it.
set-inventory
Switch to a different Shopify store. Call this tool whenever the user wants to work with a different store — including when they ask to fetch data, manage products, or perform any action on another shop. Revokes the current store's access token so the next tool call will prompt authorization for a new store. IMPORTANT: You must always make a follow-up tool call after this tool returns. If the user requested a specific action (e.g. fetch products), call that tool next. Otherwise, you MUST call get-shop-info to complete the shop switch.
switch-shop
Update an existing collection's title, description, image, sort order, or rules. Use this when the user wants to modify, change, or edit collection details. Trigger phrases include: "update my collection", "change the collection", "edit the collection", "rename the collection". IMAGE REQUIREMENTS: - Images must be publicly accessible HTTPS URLs (e.g. https://example.com/photo.jpg). - Local file paths (e.g. /mnt/data/..., file://...) are NOT supported and will fail. - If you only have a local file or a generated image, ask the user for a publicly accessible HTTPS URL; this host cannot upload one. - Avoid placeholder or non-deterministic image URLs (e.g. picsum.photos) for real collections. SMART COLLECTION RULES: - Pass `ruleSet` to update the rules for a smart collection. - Common rule columns: TAG, VENDOR, TYPE, TITLE, VARIANT_PRICE. - Common relations: EQUALS, NOT_EQUALS, CONTAINS, NOT_CONTAINS, STARTS_WITH, ENDS_WITH, GREATER_THAN, LESS_THAN. - Passing `ruleSet` replaces all existing rules. Omitting it leaves rules unchanged.
update-collection
Update an existing product's title, description, status, images, variant pricing, or variant option values (e.g. color, size names). Use this when the user wants to modify, change, or edit product details — including status, variant prices, option values, or images. Trigger phrases include: 'update my product', 'change the price', 'edit the product', 'modify my product', 'rename the variant', 'change the color name'. IMAGE REQUIREMENTS: - Images must be publicly accessible HTTPS URLs (e.g. https://example.com/photo.jpg). - Local file paths (e.g. /mnt/data/..., file://...) are NOT supported and will fail. - If you only have a local file or a generated image, ask the user for a publicly accessible HTTPS URL; this host cannot upload one. - Avoid placeholder or non-deterministic image URLs (e.g. picsum.photos) for real products. REPLACING IMAGES: - To replace specific images, first use get-product to find the mediaId of the image(s) to remove. - Pass those mediaId values in removeMediaIds, and provide the new images in the images array. - To remove images without adding new ones, pass removeMediaIds without images.
update-product
This tool will take in the user prompt, search shopify.dev, and return relevant documentation and code examples that will help answer the user's question.
No public description for this tool yet.
Compatibility no-op for clients that still call this tool. It always returns success and does not validate GraphQL syntax or schema. For Admin GraphQL, graphql_query and graphql_mutation validate operations against setup-mcp's pinned Admin schema immediately before execution.
Shopify Claude Connector FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Shopify's Claude Connector discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Shopify alternatives on Claude?
As of 2026-11-02, Shopify competes with ShipBob, AfterShip Channels for TikTok Shop, AfterShip Post-Purchase, Shippo, Amazon Selling Partner, Merchkit, Square, AIOD Discounts & Free Gift and 128 more in Claude Ecommerce Operations Platforms, ranked by public Discoverability Score.
Where does Shopify rank in Ecommerce Operations Platforms on Claude?
As of 2026-11-02, Shopify ranks #1 of 137 in Claude Ecommerce Operations Platforms with a Discoverability Score of 91/100 (Winning).
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.