Skip to main content

ID Management

Understanding how Request IDs and Quote IDs work is essential for proper RFQ integration.

Request ID

The Request ID is a deterministic identifier generated by Jupiter for each quote request.

  • Generation: Created by hashing the /quote endpoint request headers and all parameters (token addresses, amounts, user wallet, etc.)
  • Deterministic: Identical request parameters will always produce the same Request ID
  • Purpose: Enables idempotency and request deduplication
  • Scope: Generated and managed by Jupiter's RFQ system

Example scenario:

{
"inToken": "So11111111111111111111111111111111111111112",
"outToken": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"inAmount": "1000000000",
"taker": "8xYN..."
}
// Request ID: "94f052fa-3f..."

Quote ID

The Quote ID is a unique identifier for each quote response.

  • Generation: Derived by combining your webhook's internal UUID with the Request ID
  • Format: {webhook_uuid}_{request_id} (handled internally by Jupiter)
  • Uniqueness: Guaranteed unique even for multiple quotes with the same Request ID
  • Purpose: Uniquely identifies a specific quote for execution

Example flow:

1. Jupiter generates Request ID from parameters → "94f052fa-3f..."
2. Your webhook receives the request
3. Jupiter creates Quote ID using your webhook UUID + Request ID → "8fcc669f-21..."
4. Quote ID is used for swap execution

Key Implications

For Quote Generation

  • Multiple requests with identical parameters will have different Request ID
  • Each response gets a unique Quote ID, even for duplicate Request IDs
  • You can use Request IDs for traceability

For Swap Execution

  • The Quote ID in the swap request uniquely identifies which quote to execute
  • Quote IDs are tied to your webhook through the internal UUID component
  • Quote validity and expiration should be tracked using the Quote ID