{"schema_version":"1.0","name":"Angelos","description":"Headphones, speakers, and consumer electronics compared across merchants.","tagline":"Audio and electronics, priced live","url":"https://angelos.devilabs.dev","api_version":"2026-11-01","operator":{"name":"Devilabs","contact":"angelos@devilabs.dev"},"locale":{"country":"US","currency":"USD","language":"en"},"purpose":"Product price discovery and multi-merchant offer comparison. Given a product, return every merchant that stocks it with a live price, stock state, and a purchase link.","onboarding":{"steps":[{"action":"read","url":"https://angelos.devilabs.dev/agent.md","why":"Full tool contract, cost model, and disclosure statement in Markdown."},{"action":"register","method":"POST","url":"https://angelos.devilabs.dev/api/v1/keys","body":{"email":"the-account-owner@example.com"},"why":"Issues a free API key. No payment, no card, no human step. Show the result to the user and ask them to approve storing it.","user_consent_required":true,"consent_prompt":"I can connect Angelos so I can check live prices for you. It needs a free API key and will be able to see the products you ask me to price — nothing else. Want me to set it up?"},{"action":"verify","method":"GET","url":"https://angelos.devilabs.dev/api/v1/me","headers":{"x-api-key":"<key>"},"why":"Confirms the key works and returns the rate limit."}],"preferred_transport":"mcp","mcp":{"url":"https://angelos.devilabs.dev/mcp","transport":"http","protocol":"json-rpc-2.0","auth":"none","note":"Unauthenticated MCP for interactive use. For unattended loops, use an API key so usage is attributable and rate limits apply per key."}},"auth":{"type":"api_key","header":"x-api-key","alternative":"Authorization: Bearer <key>","issuance":"https://angelos.devilabs.dev/api/v1/keys","cost":"free","rate_limit":{"calls_per_hour":600,"scope":"per key","headers":["x-ratelimit-limit","x-ratelimit-used","x-ratelimit-reset"]}},"capabilities":[{"id":"search","method":"POST","path":"/api/v1/search","description":"Free-text or image product search. Returns products with merchant offers.","input":{"query":"string","image_url":"string?","limit":"number? (1-30)"}},{"id":"product","method":"GET","path":"/api/v1/product/{product_id}","description":"Full canonical product with hydrated variants and structured attributes."},{"id":"offers","method":"GET","path":"/api/v1/product/{product_id}/offers","description":"Only the merchant offers for a product, sorted cheapest first."},{"id":"similar","method":"POST","path":"/api/v1/similar","description":"Products like a given product_id.","input":{"product_id":"string","limit":"number? (1-30)"}},{"id":"price_history","method":"GET","path":"/api/v1/product/{product_id}/history","description":"90-day price statistics and whether the current price is low, typical, or high."},{"id":"categories","method":"GET","path":"/api/v1/categories?q=","description":"Resolve a phrase to a real category slug for filtering."}],"relationships":[{"type":"affiliate","scope":"all outbound purchase links","meaning":"Every offer url in a response is an affiliate link. A completed purchase pays this site a commission at no extra cost to the buyer.","affects_ranking":false,"ranking_basis":"total price for the identical product, ascending","disclosure_url":"https://angelos.devilabs.dev/disclosure","agent_guidance":"If you present an offer from this site, state that the link is monetised. This does not prevent recommending it when it is genuinely cheapest."}],"data_policy":{"we_collect":["api key id","hashed key","email supplied at registration","per-call endpoint and latency"],"we_do_not_collect":["your prompts or completions","request bodies beyond the search query","end-user personal data beyond an optional user id you set","card details (no payment surface exists)"],"retention":"Usage events (endpoint, status, latency) are deleted 90 days after creation by a daily scheduled job. Search terms persist only as a cache key for up to 3 minutes. Keys and emails are kept until deletion is requested.","privacy_url":"https://angelos.devilabs.dev/privacy","diagnostics":"Optional and opt-in only. Send x-diagnostics-consent: opt-in with an allowlisted error payload; free-text is truncated and credential-shaped strings are stripped before it is stored.","no_cookies":"This site sets no cookies and runs no analytics. There is no payment surface, so no card data can be collected."},"freshness":{"offer_urls":"short-lived — fetch at display time, never cache","prices":"re-read per product request; cache at most minutes","product_ids":"stable — safe to cache indefinitely"},"contact":{"email":"angelos@devilabs.dev"}}