{
"error": {
"code": "QUOTE_EXPIRED",
"message": "The quote has expired. Please request a new quote.",
"details": { "quote_id": "1f581bfe-25de-42aa-9429-6802412850b3", "valid_until": "2025-08-21T07:56:57.981Z" },
"request_id": "req_...",
"timestamp": "2025-08-21T08:00:02Z"
}
}
Retrieve Hedge — Status & Errors
Endpoint: GET /v1/portfolios/{portfolio_id}/conversions/hedge
HTTP
Example error.code
When
200
—
Hedge details returned
400
VALIDATION_ERROR
Bad query param (e.g., malformed conversion_id)
401
AUTHENTICATION_FAILED
Token invalid/missing
403
AUTHORIZATION_FAILED
No access to portfolio/hedge
404
HEDGE_NOT_FOUND
No hedge matches the provided identifiers
429
RATE_LIMITED
Rate cap hit
500/503
INTERNAL_ERROR, VENUE_UNAVAILABLE
Temporary fault
Sample 404
{
"error": {
"code": "HEDGE_NOT_FOUND",
"message": "No hedge found for the specified conversion_id.",
"details": { "conversion_id": "conv-uuid" },
"request_id": "req_...",
"timestamp": "2025-08-21T08:06:01Z"
}
}
Idempotency, Retries & Rate Limits
Topic
Guidance
Idempotency
For POSTs (/conversions/hedge), send Idempotency-Key (v4 UUID). Reusing the same key within 24h yields the original result or a 409 if the parameters differ.
Retries (client)
Retry GET on 500/503/429 with exponential backoff (e.g., 200ms → 400ms → 800ms, jitter). For POST hedge, rely on idempotency rather than blind retries.
Retry-After
On 429/503, honor Retry-After (seconds).
Time bounds
Quotes are valid until valid_until (ISO-8601). Re-price after expiry.
Request IDs
Log request_id from error responses for support correlation.