Skip to main content
This guide covers how to provide liquidity to JupiterZ, Jupiter’s RFQ (Request For Quote) system, using the V1 webhook model. You host a webhook implementing the RFQ API schema, Jupiter sends it quote requests and taker-signed transactions, and your system co-signs and lands the fills.
V1 (webhook) and V2 (gRPC streaming) run concurrently. V2 does not replace V1: you can integrate with either or both. They sit in different parts of Jupiter’s stack: V1 works directly in the JupiterZ program and APIs (your quotes are served on the JupiterZ paths and fills settle through the Order Engine program), while V2 streams orderbooks that Metis consumes, with fills executing through the Jupiter v6 swap aggregator program.
RFQ Flow

Integration process

  1. Host a service that implements the RFQ webhook API schema, see Webhook API.
  2. Complete the acceptance and integration tests from the rfq-webhook-toolkit.
  3. Register your webhook with Jupiter. You will be onboarded to Edge (pre-production) before going live.
The rfq-webhook-toolkit repository owns the code-level mechanics:
  • Sample server: a Rust implementation of the webhook API.
  • OpenAPI schema: the exact request and response shapes for every endpoint.
  • Integration tests: acceptance tests (offline, against your webhook) and integration tests (against Edge, real mainnet swaps).
  • Troubleshooting: common issues during integration.
To register your webhook and begin onboarding, submit a request through the support form. For pre-integration questions, ask in the developer support channel on Discord.

Continue

Webhook API

The endpoints your service implements, response codes, timeouts, token advertising, and IDs.

Quoting and fills

Fulfillment requirements, quote expiry, and how fees are applied.

Settlement and special cases

The Order Engine program, Squads multisig takers, the circuit breaker, and testing.

Streaming Integration (V2)

The gRPC streaming model, an alternative that runs concurrently with V1.