makeup.land V1 API

REST API for the makeup.land storefront under https://makeup.land/api/v1 — 21 operations across Products (cross-lingual q, exact Hebrew tag, brand, ΔE 2000 near_hex shade matching, hue_family, sort), Brands, Customers (lookup, upsert, tags, M Club opportunities, best deals), Cart (get, add, patch, delete, clear — all idempotent), Orders (read-only, six status axes), Gift Cards (public validate, scoped redeem), Payment Links, Register (partner onboarding with webhook + WhatsApp dispatch) and Proposals (catalog enrichment). Bearer ml_ tokens with scopes full / register / giftcards / proposals and a read_only flag; phone (E.164) selects the customer on phone-keyed endpoints.

Operations 21

GET /api/v1/brands List all brands with product counts #
GET /api/v1/products Browse / search the catalog #
GET /api/v1/customers Look up a customer by phone or email #
POST /api/v1/customers Create or update a customer (bulk-import friendly) #
PATCH /api/v1/customers/{id}/tags Add / remove / replace tags on a customer #
GET /api/v1/customers/{id}/opportunities Open M-Club opportunities + referral metadata for a customer #
GET /api/v1/customers/best-deals Personalised best-deal candidates for a customer #
GET /api/v1/cart Read the current cart for a phone-keyed customer #
DELETE /api/v1/cart Clear all carts for a customer #
POST /api/v1/cart/items Add or increment a cart line item #
PATCH /api/v1/cart/items/{lineItemId} Update an existing cart line item #
DELETE /api/v1/cart/items/{lineItemId} Remove a cart line item #
GET /api/v1/orders List a customer's orders #
GET /api/v1/gift-cards List gift cards owned by a customer (as recipient) #
GET /api/v1/gift-cards/validate Public gift-card balance / validity check #
POST /api/v1/gift-cards/redeem Apply a gift card to an order #
POST /api/v1/register Trusted customer registration intake (WA-inbound + partner) #
GET /api/v1/registrations Paginated registration audit log #
GET /api/v1/registrations/{id} Single registration with full webhook + WhatsApp audit #
POST /api/v1/proposals Batch-submit catalog enrichment proposals #

Documentation

Specifications

Other Resources

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/makeup-land-v1-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

makeup-land-openapi.yml Raw ↑
# makeup.land API — OpenAPI 3.1.0
# Harvested VERBATIM from https://makeup.land/openapi.json on 2026-09-19 (HTTP 200, application/json, 149,073 bytes)
# and re-serialized to YAML without any content change. The byte-for-byte original is openapi/_original/makeup-land-openapi.json.
# Ownership: servers[] https://makeup.land, info.title 'makeup.land API', info.contact makeup.land — the provider's own host.
# servers[]: https://makeup.land is the provider's declared server and is CORRECT — every path carries the /api/v1 prefix,
# so the effective base is https://makeup.land/api/v1 (as apis.yml, the agent card and RFC 9728 metadata state). Not rewritten.
openapi: 3.1.0
info:
  title: makeup.land API
  version: 1.0.0
  summary: REST API for makeup.land — Hebrew-RTL professional cosmetics storefront with bilingual product data, ILS + ℳ-credit dual-tender pricing, and agent-friendly endpoints.
  description: |-
    All endpoints live under `/api/v1/`. Bearer tokens are issued from the admin panel and carry a scope (`full` / `register` / `giftcards` / `proposals`) plus an optional `read_only` flag. Phone-keyed endpoints (cart, gift cards list, payment links, best deals) accept a phone in the query string instead. The public `/gift-cards/validate` endpoint is the only fully unauthenticated route.

    Catalog is Hebrew-primary (he-IL); monetary values that end in `_cents` are integer agorot (100 = ₪1). Products can also be priceable in ℳ-credits — see `credit_price` on variants.

    ## Versioning & deprecation policy

    The current major version is `v1`, exposed under `/api/v1/`. Breaking changes always land under a new major version path (`/api/v2/`); additive changes (new optional fields, new endpoints, new error_code values) ship in-place on `v1` without notice.

    When an endpoint or field is scheduled for removal, responses include the `Deprecation: true` and `Sunset: <RFC 7231 HTTP-date>` headers (per RFC 8594 / RFC 9745) for at least 6 months before the sunset date, with a `Link: <docs>; rel="deprecation"` header pointing at the migration guide. No V1 endpoint is currently deprecated.

    ## Error handling

    Every error response carries `{ error: <human-readable>, error_code: <enum> }` plus situational extras (e.g. `available`, `requested` on `409 insufficient_stock`; `row_errors` on `422 validation_failed`). `error_code` is the stable contract — agents should branch on it. The `error` string may shift in copy or language.

    ## Idempotency

    Mutation endpoints (POST/PATCH/DELETE) accept an `Idempotency-Key` request header. Retries with the same key inside a 24h window are guaranteed to be either no-ops or replays of the original response, never duplicate effects. Recommended pattern: a UUIDv4 generated by the caller per logical operation.
  contact:
    name: makeup.land
    url: https://makeup.land
  license:
    name: Proprietary
    url: https://makeup.land/terms-of-service
servers:
- url: https://makeup.land
  description: Production
tags:
- name: Products
  description: Catalog browsing + semantic search
- name: Brands
  description: Brand directory
- name: Customers
  description: Customer CRUD + tags + opportunities + best deals
- name: Cart
  description: Phone-keyed cart read/write (ILS + ℳ-credits)
- name: Orders
  description: Customer order history
- name: Gift Cards
  description: Recipient cards, validation, redemption
- name: Payment Links
  description: Outstanding payment requests
- name: Register
  description: External registration intake + audit


# --- truncated at 32 KB (237 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/makeup-land/refs/heads/main/openapi/makeup-land-openapi.yml