Skip to main content
Skip to main content

Maker API

warning

The Silhouette REST API v1 spec is in beta and may change as RFQ workflows evolve.

Maker-side RFQ operations (maker-scoped).

Operations

EndpointOperation IDSummaryAuth
POST /v1/rfq/quotescreateMakerQuoteSubmit a quote.HMAC
GET /v1/rfq/quoteslistMakerQuotesList the maker's quotes.HMAC
POST /v1/rfq/quotes/{quoteId}/cancelcancelMakerQuoteCancel a quote.HMAC
GET /v1/rfq/requests/openlistMakerRequestsList open RFQs to quote.HMAC

Submit a quote

POST /v1/rfq/quotes

FieldValue
Operation IDcreateMakerQuote
AuthenticationHMAC

Submits a quote for an open RFQ. The quote competes with every other maker's quote for the same RFQ and wins on best price (rfq.md 7); the engine selects a winner at the RFQ deadline, so this is accepted asynchronously (202). Requires a maker-scoped credential.

Parameters

None.

Request body

Content type: application/json

Schema: CreateMakerQuoteRequest

FieldTypeRequiredDescription
rfqIdRfqIdYes
instrumentIdInstrumentIdYes
sideSideYes
makerPaysQuoteLegYes
makerReceivesQuoteLegYes
expiryMsUnixMillisYesThe quote's expiry; the engine converts it to seconds for the on-chain Permit2 deadline.
xchangenull | XchangeBundleNoxchange-mode settlement bundle; omit for inventory-mode makers.

Responses

StatusDescriptionSchema
202Quote accepted; stored as SUBMITTED.CreateMakerQuoteResponse
400Invalid request: the body or query parameters failed validation. The error code is INVALID_REQUEST; details.errors carries the field-level reasons.ErrorResponse
401Unauthorized: missing or expired credentials, or an unknown access key.ErrorResponse
403Credential is not maker-scoped.ErrorResponse
500Internal server error.ErrorResponse

List the maker's quotes

GET /v1/rfq/quotes

FieldValue
Operation IDlistMakerQuotes
AuthenticationHMAC

Returns the authenticated maker's own quotes, cursor-paginated and optionally filtered by status. A maker polls this to learn outcomes: a SELECTED quote carries the engine-signed Permit2 authorisation it relays to settle on-chain. Requires a maker-scoped credential.

Parameters

NameInRequiredTypeDescription
limitqueryNointeger (int32)Page size. Defaults to 50, maximum 100.
cursorqueryNostringOpaque pagination cursor from a previous page's nextCursor. Clients must not parse or construct it.
statusqueryNoarray of QuoteStatusFilter by one or more quote statuses. Repeat the key for multiple, e.g. ?status=SELECTED&status=SETTLED.

Request body

None.

Responses

StatusDescriptionSchema
200The maker's quotes (SELECTED ones carry their permit).MakerQuotesPage
400Invalid request: the body or query parameters failed validation. The error code is INVALID_REQUEST; details.errors carries the field-level reasons.ErrorResponse
401Unauthorized: missing or expired credentials, or an unknown access key.ErrorResponse
403Credential is not maker-scoped.ErrorResponse
500Internal server error.ErrorResponse

Cancel a quote

POST /v1/rfq/quotes/{quoteId}/cancel

FieldValue
Operation IDcancelMakerQuote
AuthenticationHMAC

Retracts one of the maker's own still-SUBMITTED quotes before the RFQ's auction selects a winner - and so before the maker holds any signed permit. The quote is marked CANCELLED and drops out of the auction, and both the maker (quoteStatus) and the RFQ owner (quotes) are notified; the response carries the CANCELLED quote. To re-price instead, submit a fresh quote for the same RFQ, which replaces the prior terms. Requires a maker-scoped credential.

Parameters

NameInRequiredTypeDescription
quoteIdpathYesstring (uuid)The quote to cancel.

Request body

None.

Responses

StatusDescriptionSchema
200Quote cancelled; dropped from the auction.MakerQuote
401Unauthorized: missing or expired credentials, or an unknown access key.ErrorResponse
403Quote belongs to another maker, or the credential is not maker-scoped.ErrorResponse
404Not found.ErrorResponse
409Quote is no longer open to cancel (already selected, settled, expired, or cancelled).ErrorResponse
500Internal server error.ErrorResponse

List open RFQs to quote

GET /v1/rfq/requests/open

FieldValue
Operation IDlistMakerRequests
AuthenticationHMAC

Returns the open RFQs (Pending requests) on the pairs the authenticated maker is approved for, cursor-paginated. A maker polls this at its own cadence, then submits quotes for the ones it wants. Requires a maker-scoped credential.

Parameters

NameInRequiredTypeDescription
limitqueryNointeger (int32)Page size. Defaults to 50, maximum 100.
cursorqueryNostringOpaque pagination cursor from a previous page's nextCursor. Clients must not parse or construct it.

Request body

None.

Responses

StatusDescriptionSchema
200Open RFQs the maker may quote.OpenRfqsPage
400Invalid request: the body or query parameters failed validation. The error code is INVALID_REQUEST; details.errors carries the field-level reasons.ErrorResponse
401Unauthorized: missing or expired credentials, or an unknown access key.ErrorResponse
403Credential is not maker-scoped.ErrorResponse
500Internal server error.ErrorResponse