Discount Filter Shop Developer Resources: API, OpenAPI, MCP
Discount Filter Shop API and developer resources
This page is the developer portal for discountfiltershop.com, the Discount Filter Shop online store for genuine OEM refrigerator water and air filters. It lists every machine-readable resource on this host, how to authenticate with the least privilege needed, the request quotas, the versioning policy, and the conventions that make the site readable by AI agents.
Quick links
- OpenAPI 3.1 specification (
/openapi.json): the Discount Filter Shop API in one document, with security schemes, permission scopes, quota headers and the error format. - API catalog (
/.well-known/api-catalog, RFC 9727): every API on this host as a linkset. - AI catalog (
/.well-known/ai-catalog.json, also served at/.well-known/ard.json): the agentic resources of this host (MCP server card, OpenAPI specification, API catalog, llms.txt) for discovery registries. - MCP server card (
/.well-known/mcp/server-card.json): connection details of the MCP server. - Authentication guide (
/auth.md): how to obtain credentials. - llms.txt: a plain-text overview of the store, its policies, products and guides, written for AI agents.
- sitemap.xml: every indexable URL.
Store API (public, no key)
The WooCommerce Store API at https://discountfiltershop.com/wp-json/wc/store/v1 lets any client search the catalog, build a cart and check out. No credentials are required.
curl "https://discountfiltershop.com/wp-json/wc/store/v1/products?search=EDR1RXD1"
curl -i "https://discountfiltershop.com/wp-json/wc/store/v1/cart"The cart response carries a Cart-Token header. Send it back as the Cart-Token request header on POST /wc/store/v1/cart/add-item and POST /wc/store/v1/checkout. Prices are returned in cents as strings ("4699" is $46.99). Shipping is free on every order and only US addresses are accepted. The full endpoint list, parameters and response schemas are in the OpenAPI specification; the upstream reference is the WooCommerce Store API documentation.
Filter identification from a photo
POST https://discountfiltershop.com/wp-json/dfs/v1/water-match with a JSON body {"image": "<base64>", "media_type": "image/jpeg"} returns the replacement filter model code, the brand, a confidence level and whether the model needs a chip-authenticated genuine filter. Limit: 10 requests per hour per IP address. This is the engine behind the Water Match tool.
Shop management API (WooCommerce REST API v3)
https://discountfiltershop.com/wp-json/wc/v3 gives integrations access to orders, products and customers. Credentials are WooCommerce API keys (consumer key and secret, HTTP Basic over HTTPS). Each key is issued with exactly one permission scope:
| Scope | Grants |
|---|---|
read | GET requests only |
write | POST, PUT and DELETE only |
read_write | Both |
Ask for read unless you need to change data. Keys can be issued by the store owner, or requested through the WooCommerce app authorization flow described in the authentication guide. The scope list is also published as RFC 9728 metadata at /.well-known/oauth-protected-resource/wp-json/wc/v3.
MCP server (site administration)
A Model Context Protocol server runs on this host: Streamable HTTP at https://discountfiltershop.com/wp-json/stifli-flex-mcp/v1/messages (MCP 2026-07-28) and legacy SSE at https://discountfiltershop.com/wp-json/stifli-flex-mcp/v1/sse. Connection details are published in the server card. The server is protected by an OAuth 2.1 authorization server on this host (authorization code flow with PKCE, refresh tokens, dynamic client registration) and is reserved for authorized staff accounts. Discovery documents: the RFC 9728 resource metadata named by the WWW-Authenticate header of a 401 response, and /.well-known/oauth-authorization-server (RFC 8414).
Markdown for agents
Every page on discountfiltershop.com is available as Markdown. Either send Accept: text/markdown to the page URL (the response is text/markdown; charset=utf-8 with Vary: Accept), or replace the trailing slash with .md: the homepage is /index.md, a guide at /guides/example/ is /guides/example.md. Each Markdown document starts with a frontmatter block (title, description, canonical URL, last update). A 404 requested as Markdown returns a Markdown body with links back to the catalog, the sitemap and llms.txt.
curl -sS -i -H "Accept: text/markdown" https://discountfiltershop.com/
curl -sS https://discountfiltershop.com/index.mdErrors
Every JSON endpoint returns {"code": "...", "message": "...", "data": {"status": <http status>}, "hint": "...", "docs": "..."} on failure: hint says how to recover and docs links to the OpenAPI specification. 401 means missing credentials, 403 means the key lacks the scope, 429 means the quota below is used up. A 404 or 406 on an HTML page is also answered in JSON when the request carries Accept: application/json.
Rate limits
Every response of the REST API (/wp-json/, all namespaces) carries the quota headers of the IETF HTTPAPI draft draft-ietf-httpapi-ratelimit-headers: RateLimit-Policy names the policy that applies to you, RateLimit tells how many requests remain in the current window and in how many seconds it resets. The same values are repeated as RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for older clients.
| Client | Quota | Counted per |
|---|---|---|
| Without credentials | 600 requests per 60-second window | IP address |
| With credentials (API key, OAuth token) | 1200 requests per 60-second window | Account |
RateLimit-Policy: "anonymous";q=600;w=60
RateLimit: "anonymous";r=599;t=42Over quota, the API answers 429 with a Retry-After header (seconds) and the JSON error rest_too_many_requests. Wait that long, then resume at a slower pace; a client that keeps one request in flight at a time never reaches the limit. The photo identification endpoint keeps its own limit of 10 requests per hour per IP address.
Versioning and deprecation
Every API is versioned in its URL path (/wc/store/v1, /wc/v3, /dfs/v1) and a published version never receives breaking changes: fields and endpoints may be added, existing ones keep their meaning. When an endpoint or a version is retired, its responses announce it at least six months before it stops working, with the Deprecation header (RFC 9745, the date it was deprecated), the Sunset header (RFC 8594, the date after which it may stop responding) and a Link with rel="deprecation" pointing to this section. The legacy WooCommerce namespaces /wc/v1 and /wc/v2 are deprecated (superseded by /wc/v3) and already carry the Deprecation header; no sunset date is set for them. The info.version of the OpenAPI document changes whenever its content changes.
Deprecation: @1539734400
Link: <https://discountfiltershop.com/developers/#versioning>; rel="deprecation"; type="text/html"Contact
Questions about the Discount Filter Shop API: support@discountfiltershop.com.