Makeup by Mario · Authentication Profile

Makeup By Mario Authentication

Authentication

MAKEUP BY MARIO has no developer program and issues no API keys, so there is no developer-facing auth page to read. What exists instead is a two-tier model that was established by probe: everything public about the store — catalog, cart, checkout scaffolding, policies — is reachable with NO credential at all, and only customer-account data sits behind OpenID Connect. That first tier is the unusual part. Three independent machine-readable surfaces on this host answered anonymously with HTTP 200 on 2026-08-25.

Makeup by Mario declares 5 security scheme(s) across its OpenAPI definitions.

CompanyBeautyCosmeticsConsumer Packaged GoodsE-CommerceDirect to ConsumerRetailAgentic CommerceShopifyGraphQLMCPUniversal Commerce Protocol
Methods: Schemes: 5 OAuth flows: API key in:

Security Schemes

none
agent-profile
idempotency-key
openIdConnect
apiKey

Source

Authentication Profile

makeup-by-mario-authentication.yml Raw ↑
generated: '2026-08-25'
method: probed
source: >-
  https://www.makeupbymario.com/.well-known/openid-configuration +
  https://www.makeupbymario.com/.well-known/oauth-authorization-server + live anonymous
  probes of the GraphQL, Storefront MCP and UCP MCP endpoints
description: >-
  MAKEUP BY MARIO has no developer program and issues no API keys, so there is no
  developer-facing auth page to read. What exists instead is a two-tier model that was
  established by probe: everything public about the store — catalog, cart, checkout
  scaffolding, policies — is reachable with NO credential at all, and only customer-account
  data sits behind OpenID Connect. That first tier is the unusual part. Three independent
  machine-readable surfaces on this host answered anonymously with HTTP 200 on 2026-08-25.
schemes:
- id: anonymous-storefront
  type: none
  applies_to:
  - https://www.makeupbymario.com/api/2026-04/graphql.json
  - https://www.makeupbymario.com/api/mcp
  - https://www.makeupbymario.com/api/ucp/mcp
  - https://www.makeupbymario.com/products.json
  verified: '2026-08-25'
  evidence: >-
    Full GraphQL introspection, MCP initialize, and MCP tools/list on both servers all
    returned 200 with no Authorization header and no
    X-Shopify-Storefront-Access-Token. This is a Shopify configuration choice, not an
    oversight in our probe — the same probe returns 401/403 on stores that require a
    storefront token.
  note: >-
    Anonymous does not mean unbounded. The GraphQL API is query-cost throttled and the MCP
    endpoints are rate-limited per IP; see rate-limits/.
- id: ucp-agent-profile
  type: agent-profile
  applies_to: [https://www.makeupbymario.com/api/ucp/mcp]
  parameter: meta["ucp-agent"].profile
  location: JSON-RPC params
  required: true
  format: URI
  verified: '2026-08-25'
  evidence: >-
    Required on all thirteen UCP tools' inputSchema. resources/list and prompts/list without
    it return JSON-RPC error -32001 "UCP discovery failed", data.code invalid_profile_url,
    content "Unable to fetch agent profile: Missing profile uri".
  note: >-
    This is identity, not authorization — the agent declares who it is by publishing a
    resolvable profile document, and the server fetches it. There is no secret, no
    issuance step and no revocation surface. It is the only credential-shaped requirement
    on the whole agent surface.
- id: complete-checkout-idempotency
  type: idempotency-key
  applies_to: [https://www.makeupbymario.com/api/ucp/mcp]
  parameter: meta["idempotency-key"]
  required: true
  scope: complete_checkout only
  verified: '2026-08-25'
  note: >-
    Not an auth scheme, recorded here because it is the second required member of the same
    meta object. See conventions/ for the full treatment.
- id: customer-account-oidc
  type: openIdConnect
  openid_configuration: https://www.makeupbymario.com/.well-known/openid-configuration
  oauth_authorization_server: https://www.makeupbymario.com/.well-known/oauth-authorization-server
  issuer: https://shopify.com/authentication/27548221505
  authorization_endpoint: https://shopify.com/authentication/27548221505/oauth/authorize
  token_endpoint: https://shopify.com/authentication/27548221505/oauth/token
  end_session_endpoint: https://shopify.com/authentication/27548221505/logout
  jwks_uri: https://shopify.com/authentication/27548221505/.well-known/jwks.json
  grant_types: [authorization_code, refresh_token, 'urn:ietf:params:oauth:grant-type:jwt-bearer']
  response_types: [code]
  pkce: [S256]
  token_endpoint_auth_methods: [client_secret_basic, client_secret_post]
  id_token_signing_alg: [RS256]
  subject_types: [public]
  scopes: [openid, email, 'customer-account-api:full', 'customer-account-mcp-api:full']
  claims: [iss, sub, aud, exp, iat, nonce, sid, email, email_verified]
  applies_to: customer account data (orders, addresses, saved payment methods)
  verified: '2026-08-25'
  note: >-
    The issuer is per-merchant — it carries this store's Shopify shop id 27548221505 — so
    the discovery document is specific to MAKEUP BY MARIO even though the authorization
    server is operated by Shopify. Note the fourth scope,
    customer-account-mcp-api:full: an authenticated customer-account MCP surface is
    declared here that no anonymous probe can reach.
- id: storefront-customer-access-token
  type: apiKey
  header: X-Shopify-Customer-Access-Token
  applies_to: [https://www.makeupbymario.com/api/2026-04/graphql.json]
  required_for: QueryRoot.customer and the 13 customer* mutations
  verified: derived from graphql/makeup-by-mario-storefront.graphql
  note: >-
    Minted by the customerAccessTokenCreate mutation. This is the older Storefront-API
    customer path, coexisting with the OIDC customer-account path above.
tiers:
- tier: public
  credential: none
  reaches: catalog, collections, editorial content, store policies, cart, checkout scaffolding, localisation
- tier: agent
  credential: a resolvable UCP agent profile URI
  reaches: all thirteen UCP commerce tools including complete_checkout
- tier: customer
  credential: OIDC authorization code + PKCE, or a Storefront customer access token
  reaches: that customer's orders, addresses and saved payment methods
absent:
- No developer portal, no API key issuance, no OAuth client registration for third parties.
- No mutual TLS, no HTTP signatures, no bearer-token scheme of the brand's own.
- No /.well-known/security.txt and no /.well-known/oauth-protected-resource.
docs: https://www.makeupbymario.com/agents.md

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This security artifact
curl "https://apis.io/api/v1/security/makeup-by-mario-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

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