{"openapi":"3.0.3","info":{"title":"ephemeral public API","version":"v0","description":"Read-only API v0 for quotes, token market info, and health. Non-custodial: this API never holds a key and never signs or sends a transaction. Platform fees appear only as computed amounts on each quote. Signed webhooks are coming soon. Integrators can request access for a revenue share program; terms are provided after review."},"servers":[{"url":"https://feed.ephemeral.money","description":"Production"}],"paths":{"/api/v1/health":{"get":{"summary":"API health","operationId":"getHealth","responses":{"200":{"description":"Service is up."}}}},"/api/v1/quote":{"get":{"summary":"Quote preview","operationId":"getQuotePreview","description":"Returns a swap quote preview. The platform fee is a computed amount in the output mint. This endpoint does not sign or send a transaction.","parameters":[{"name":"inputMint","in":"query","required":true,"schema":{"type":"string"}},{"name":"outputMint","in":"query","required":true,"schema":{"type":"string"}},{"name":"amount","in":"query","required":true,"schema":{"type":"string"},"description":"Input amount in base units."},{"name":"slippageBps","in":"query","required":false,"schema":{"type":"integer"},"description":"Optional user slippage tolerance, as an integer, capped by the server."}],"responses":{"200":{"description":"Quote preview with fee as an amount."},"400":{"description":"Invalid parameters."},"429":{"description":"Rate limited."},"502":{"description":"Upstream quote failed."}}}},"/api/v1/fees":{"get":{"summary":"Fee policy","operationId":"getFees","description":"Explains that fees are returned as computed amounts on quotes. Does not publish a schedule.","responses":{"200":{"description":"Fee policy, no schedule."}}}},"/api/v1/token/{mint}":{"get":{"summary":"Token market info","operationId":"getToken","parameters":[{"name":"mint","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Market info for the mint."},"400":{"description":"Invalid mint."},"502":{"description":"Market data unavailable."}}}},"/api/v1/openapi.json":{"get":{"summary":"OpenAPI document","operationId":"getOpenApi","responses":{"200":{"description":"OpenAPI 3 document."}}}},"/api/v1/webhooks":{"get":{"summary":"Webhooks (coming soon)","operationId":"getWebhooks","responses":{"200":{"description":"Placeholder. Signed webhooks are not available in API v0."}}}},"/api/v1/keys/request":{"post":{"summary":"Request API access","operationId":"requestApiKey","description":"Collects name, email, project, and intended use only. No secret is issued in the response. Requests are stored for review.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","email","project","use"],"properties":{"name":{"type":"string","maxLength":80},"email":{"type":"string","format":"email","maxLength":120},"project":{"type":"string","maxLength":120},"use":{"type":"string","maxLength":500}}}}}},"responses":{"200":{"description":"Request received."},"400":{"description":"Invalid fields."},"429":{"description":"Rate limited."}}}}}}