export YSAERE_API_KEY=ysa_prod_YOUR_KEY
curl -sS -X POST https://api.ysaere.com/v1/intel/estimate \
-H "Authorization: Bearer $YSAERE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"endpoint":"angel-report"}'
MCP: estimate_credits with {"tool":"angel_intelligence"}.
curl -sS -X POST https://api.ysaere.com/v1/intel/angel-report \
-H "Authorization: Bearer $YSAERE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: angel-$(date +%s)" \
-d '{"target":"Acme AI (pre-seed)"}'
# → data.run_id — poll GET /v1/reports/{run_id}
# MCP: wait_for_report {"report_id":"…","timeout_seconds":90}
CI: POST /v1/intel/ci-report (100 cr). On HTTP 402 read required, balance, topup_url.
MCP hosts usually poll with wait_for_report. Scripts and backends can register a webhook so completion is pushed.
curl -sS -X POST https://api.ysaere.com/v1/webhooks \
-H "Authorization: Bearer $YSAERE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/hooks/ysaere","events":["report.completed"]}'
# Returns signing secret once — verify HMAC on delivery.
# Also: report.failed · run.completed (alias) · *
# SSRF-safe URLs only (no localhost / private IPs).
Manage deliveries: GET /v1/webhooks/{id}/deliveries. Full schema in OpenAPI.