curl --request GET \
--url https://public-test.blips.network/quotes/{quoteId}/current \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://public-test.blips.network/quotes/{quoteId}/current"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://public-test.blips.network/quotes/{quoteId}/current', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://public-test.blips.network/quotes/{quoteId}/current",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://public-test.blips.network/quotes/{quoteId}/current"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public-test.blips.network/quotes/{quoteId}/current")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-test.blips.network/quotes/{quoteId}/current")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"quoteId": "Quote:quote_current_01",
"transactionId": "Transaction:019542f5-b3e7-1d02-0000-000000000012",
"createdAt": "2026-04-05T12:00:00Z",
"expiresAt": "2026-04-05T12:05:00Z",
"lockedCurrencySide": "SENDING",
"lockedCurrencyAmount": "100000",
"sendingAmount": {
"currencyCode": "SGD",
"amountMinor": "100000"
},
"receivingAmount": {
"currencyCode": "PHP",
"amountMinor": "4200000"
},
"feesTotal": {
"currencyCode": "SGD",
"amountMinor": "500"
},
"exchangeRate": 42,
"feesIncluded": true,
"status": "PROCESSING",
"freshness": {
"status": "FRESH",
"evaluatedAt": "2026-04-05T12:01:00Z"
},
"outgoingTransaction": {
"transactionId": "Transaction:019542f5-b3e7-1d02-0000-000000000013",
"status": "PROCESSING",
"settledAt": null
},
"incomingTransaction": {
"transactionId": "Transaction:019542f5-b3e7-1d02-0000-000000000014",
"status": "PENDING",
"settledAt": null
}
}{
"status": 400,
"code": "INVALID_REQUEST",
"message": "Invalid quoteId path value",
"details": {
"quoteId": "must be a non-empty quote identifier"
}
}{
"status": 401,
"code": "UNAUTHORIZED",
"message": "Invalid or missing API credentials",
"details": {}
}{
"status": 404,
"code": "QUOTE_NOT_FOUND",
"message": "Quote not found",
"details": {}
}{
"status": 500,
"code": "INTERNAL_ERROR",
"message": "Internal service error",
"details": {}
}Read the default live/current state of a quote.
Read the default live/current quote-state view for a quote created earlier through POST /quotes. This is the primary current-state readback path; use GET /quotes/ for retained historical detail.
curl --request GET \
--url https://public-test.blips.network/quotes/{quoteId}/current \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://public-test.blips.network/quotes/{quoteId}/current"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://public-test.blips.network/quotes/{quoteId}/current', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://public-test.blips.network/quotes/{quoteId}/current",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://public-test.blips.network/quotes/{quoteId}/current"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public-test.blips.network/quotes/{quoteId}/current")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-test.blips.network/quotes/{quoteId}/current")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"quoteId": "Quote:quote_current_01",
"transactionId": "Transaction:019542f5-b3e7-1d02-0000-000000000012",
"createdAt": "2026-04-05T12:00:00Z",
"expiresAt": "2026-04-05T12:05:00Z",
"lockedCurrencySide": "SENDING",
"lockedCurrencyAmount": "100000",
"sendingAmount": {
"currencyCode": "SGD",
"amountMinor": "100000"
},
"receivingAmount": {
"currencyCode": "PHP",
"amountMinor": "4200000"
},
"feesTotal": {
"currencyCode": "SGD",
"amountMinor": "500"
},
"exchangeRate": 42,
"feesIncluded": true,
"status": "PROCESSING",
"freshness": {
"status": "FRESH",
"evaluatedAt": "2026-04-05T12:01:00Z"
},
"outgoingTransaction": {
"transactionId": "Transaction:019542f5-b3e7-1d02-0000-000000000013",
"status": "PROCESSING",
"settledAt": null
},
"incomingTransaction": {
"transactionId": "Transaction:019542f5-b3e7-1d02-0000-000000000014",
"status": "PENDING",
"settledAt": null
}
}{
"status": 400,
"code": "INVALID_REQUEST",
"message": "Invalid quoteId path value",
"details": {
"quoteId": "must be a non-empty quote identifier"
}
}{
"status": 401,
"code": "UNAUTHORIZED",
"message": "Invalid or missing API credentials",
"details": {}
}{
"status": 404,
"code": "QUOTE_NOT_FOUND",
"message": "Quote not found",
"details": {}
}{
"status": 500,
"code": "INTERNAL_ERROR",
"message": "Internal service error",
"details": {}
}Authorizations
Integration-key Basic Auth (clientId:clientSecret) as documented in docs/public/AUTHENTICATION.md.
Path Parameters
Quote identifier returned by quote creation and other quote read/list flows. Use it to read the current state of an existing quote.
Response
Live current quote state returned.
Primary live/current quote-state read model returned by GET /quotes/{quoteId}/current.
Stable BLIPS quote identifier for this quote.
Public transaction identifier linked to this quote state.
RFC 3339 timestamp when this quote was created.
RFC 3339 timestamp when this quote expires.
Which side of the quote amount is locked.
SENDING, RECEIVING Locked amount in minor units on the selected locked currency side.
^[0-9]+$Current sender-side amount for this quote.
Show child attributes
Show child attributes
Current receiver-side amount for this quote.
Show child attributes
Show child attributes
Current total fees for this quote.
Show child attributes
Show child attributes
Current quoted exchange rate.
Whether the current quote amounts already include fees.
Status of this quote in the live/current read model.
Optional freshness evaluation for this live/current quote view.
Show child attributes
Show child attributes
Bounded linked outgoing transaction snapshot once execution has started.
Show child attributes
Show child attributes
Bounded linked incoming transaction snapshot once execution has started.
Show child attributes
Show child attributes