curl --request GET \
--url https://sandbox.yasmina.ai/api/v1/car-comp/quote-requests/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.yasmina.ai/api/v1/car-comp/quote-requests/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.yasmina.ai/api/v1/car-comp/quote-requests/{id}', 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://sandbox.yasmina.ai/api/v1/car-comp/quote-requests/{id}",
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: Bearer <token>"
],
]);
$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://sandbox.yasmina.ai/api/v1/car-comp/quote-requests/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.yasmina.ai/api/v1/car-comp/quote-requests/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.yasmina.ai/api/v1/car-comp/quote-requests/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": 123,
"quotes": [
{
"quote_reference_id": "6c7c18a7-ee89-49fe-9f7e-dde72ad809ce",
"company_name": "Al Rajhi Takaful",
"company_name_ar": "تكافل الراجحي",
"company_logo_url": "<string>",
"square_company_logo_url": "<string>",
"company_logo": "/images/company-logos/art.png",
"type": "TPL",
"insurance_type_display": "<string>",
"insurance_type_display_ar": "<string>",
"fix_type": "workshop",
"vehicle_estimated_value": 45000,
"quote_expiry_date": "2026-10-09T22:03:56+00:00",
"prices": [
{
"quote_price_id": "f5d52340-3661-48af-b81a-028f251ef6a9",
"deductible": 500,
"subtotal": 5232.12,
"vat_percentage": 15,
"vat": 784.82,
"total": 6016.94
}
],
"benefits": [
{
"quote_benefit_id": "67fe40ec-e7d0-f011-972d-005056a9891a",
"id": "600100",
"name": "Roadside assistance service",
"name_ar": "خدمة المساعدة على الطريق",
"amount": 10,
"vat": 1.5,
"url": "<string>"
}
]
}
],
"client_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"attachments": {
"front": "<string>",
"back": "<string>",
"right": "<string>",
"left": "<string>",
"chassis": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"owner_id": "2234567890",
"phone": "<string>",
"birthdate": "2023-12-25",
"car_sequence_number": 123,
"custom_number": "<string>",
"maker_code": 123,
"model_code": 123,
"body_type_code": 123,
"is_ownership_transfer": true,
"car_estimated_cost": 123,
"car_model_year": 123,
"start_date": "2023-12-25",
"drivers": [
{
"owner_id": "<string>",
"birthdate": "2023-12-25",
"driving_percentage": 123
}
],
"email": "[email protected]",
"current_car_owner_id": "<string>"
}curl --request GET \
--url https://sandbox.yasmina.ai/api/v1/car-comp/quote-requests/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.yasmina.ai/api/v1/car-comp/quote-requests/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.yasmina.ai/api/v1/car-comp/quote-requests/{id}', 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://sandbox.yasmina.ai/api/v1/car-comp/quote-requests/{id}",
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: Bearer <token>"
],
]);
$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://sandbox.yasmina.ai/api/v1/car-comp/quote-requests/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.yasmina.ai/api/v1/car-comp/quote-requests/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.yasmina.ai/api/v1/car-comp/quote-requests/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": 123,
"quotes": [
{
"quote_reference_id": "6c7c18a7-ee89-49fe-9f7e-dde72ad809ce",
"company_name": "Al Rajhi Takaful",
"company_name_ar": "تكافل الراجحي",
"company_logo_url": "<string>",
"square_company_logo_url": "<string>",
"company_logo": "/images/company-logos/art.png",
"type": "TPL",
"insurance_type_display": "<string>",
"insurance_type_display_ar": "<string>",
"fix_type": "workshop",
"vehicle_estimated_value": 45000,
"quote_expiry_date": "2026-10-09T22:03:56+00:00",
"prices": [
{
"quote_price_id": "f5d52340-3661-48af-b81a-028f251ef6a9",
"deductible": 500,
"subtotal": 5232.12,
"vat_percentage": 15,
"vat": 784.82,
"total": 6016.94
}
],
"benefits": [
{
"quote_benefit_id": "67fe40ec-e7d0-f011-972d-005056a9891a",
"id": "600100",
"name": "Roadside assistance service",
"name_ar": "خدمة المساعدة على الطريق",
"amount": 10,
"vat": 1.5,
"url": "<string>"
}
]
}
],
"client_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"attachments": {
"front": "<string>",
"back": "<string>",
"right": "<string>",
"left": "<string>",
"chassis": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"owner_id": "2234567890",
"phone": "<string>",
"birthdate": "2023-12-25",
"car_sequence_number": 123,
"custom_number": "<string>",
"maker_code": 123,
"model_code": 123,
"body_type_code": 123,
"is_ownership_transfer": true,
"car_estimated_cost": 123,
"car_model_year": 123,
"start_date": "2023-12-25",
"drivers": [
{
"owner_id": "<string>",
"birthdate": "2023-12-25",
"driving_percentage": 123
}
],
"email": "[email protected]",
"current_car_owner_id": "<string>"
}Authorizations
JWT Authorization header using the Bearer scheme
Path Parameters
Response
Single quote details
The quote request as stored by Yasmina. It echoes the values you sent — so a stored response is enough to re-render the customer's page later — and adds the top-level id and the quotes array of provider offers. Policy issuance points back at one exact selection inside this response: the top-level id, one quotes[].quote_reference_id, one quotes[].prices[].quote_price_id from that same quote, and the quote_benefit_id of each paid benefit the customer chose.
Yasmina's identifier for this quote request. Send it as quote_request_id when issuing a policy, and use it with the Show Quote and Delete Quote APIs.
One entry per offer returned by the insurance providers. Empty when no provider priced this vehicle and driver combination.
Hide child attributes
Hide child attributes
The provider's identifier for this offer. Send it as quote_reference_id to the Issue Policy OTP API and the Issue Policy API. It is unique per offer, not per company.
"6c7c18a7-ee89-49fe-9f7e-dde72ad809ce"
English name of the insurance company.
"Al Rajhi Takaful"
Arabic name of the insurance company. Use this field instead of company_name when rendering Arabic UIs. Falls back to the English name for companies that are not yet mapped.
"تكافل الراجحي"
Absolute CDN URL of the company's wide logo, for quote cards. Empty string when no logo is on file. The CDN host differs between sandbox and production — render the URL as returned rather than rebuilding it.
Absolute CDN URL of the company's square logo, for avatars and list rows. Empty string when none is on file.
Deprecated. A path relative to Yasmina's own web app rather than a usable URL. Kept for backward compatibility — use company_logo_url.
"/images/company-logos/art.png"
Normalised cover category, and the field to filter and group on. Comprehensive covers the customer's own vehicle as well as third parties, TPL is third-party liability only, and TPL + covers every enhanced third-party product regardless of what the provider calls it.
TPL, TPL +, Comprehensive The provider's own wording for the product, unnormalised (e.g. "TPL Plus", "TPL + OD", "Wafi Smart"). Show this to the customer; filter on type.
Arabic translation of insurance_type_display. Use this field for Arabic UIs. Falls back to the English value for provider-specific products that do not have a translation.
Where a claim is repaired: Agency (the manufacturer's authorised dealer, more expensive) or workshop (an approved independent garage). Empty on TPL quotes, which carry no own-damage repair. This is the usual reason two quotes from the same company differ in price.
"workshop"
The vehicle value this quote was priced against, in SAR — the provider's own valuation, falling back to the car_estimated_cost you sent when the provider does not return one. On Comprehensive quotes it is the ceiling of an own-damage payout.
45000
When the provider's offer lapses. Validity varies by provider and product, from days to months. After this moment the offer can no longer be issued — request fresh quotes instead of replaying a stored response.
"2026-10-09T22:03:56+00:00"
The price options for this quote, one per deductible.
Hide child attributes
Hide child attributes
Identifies the price the customer selected. Send it as quote_price_id to the Issue Policy OTP API, the Issue Policy API and the Upload Vehicle Photos API. It belongs to one quote only — it must be sent with the quote_reference_id of the quote it came from.
"f5d52340-3661-48af-b81a-028f251ef6a9"
The excess in SAR that the customer pays out of pocket on each claim. null on TPL quotes, which have no deductible.
500
Premium for this option in SAR, before VAT.
5232.12
VAT rate applied to the premium, as a percentage.
15
VAT amount in SAR for this option.
784.82
subtotal + vat: what the customer pays for the cover itself. It does not include optional benefits — each paid benefit adds its own amount and vat on top.
6016.94
The benefits attached to this quote, both the ones included in the cover (amount = 0) and the optional paid extras (amount > 0).
Hide child attributes
Hide child attributes
Identifies this benefit on this quote. Send the IDs of the paid benefits the customer selected as the benefits array when issuing. The same benefit on another provider's quote has a different ID.
"67fe40ec-e7d0-f011-972d-005056a9891a"
The provider's benefit code. Stable across quote requests, so it is the right key for mapping benefits to your own copy and icons, or for remembering a customer's preferences.
"600100"
English name of the benefit.
"Roadside assistance service"
Arabic name of the benefit. Use this field instead of name when rendering Arabic UIs.
"خدمة المساعدة على الطريق"
Price of the benefit in SAR, excluding VAT. 0 means the benefit is included with the cover at no extra cost.
10
VAT on amount, in SAR. 0 for included benefits.
1.5
Provider link to the benefit's terms, when one is supplied. Usually null.
Your client identifier. The same value on every quote request you create.
When the quote request was made. Read it together with quotes[].quote_expiry_date when deciding whether to re-quote.
When the record last changed, for example after vehicle photos were uploaded.
The owner's national ID (starts with 1) or Iqama ID (starts with 2), echoed from the request.
"2234567890"
The owner's phone number
The owner's birthdate. Hijri for Saudi nationals, Gregorian for others
The car sequence number from 9 digits
Customs card number for an imported vehicle. Present when custom_number was used in the request.
Vehicle maker code used to register a customs-card vehicle.
Vehicle model code used to register a customs-card vehicle.
Vehicle body-type code used to register a customs-card vehicle.
Whether it was a car transfer or not
The estimated cost of the car
The car model year
Requested policy start date in YYYY-MM-DD. Returned if provided in the quote request.
List of drivers associated with this quote request. Returned if drivers were provided in the request.
The owner's email, echoed from the request.
The current owner's ID on an ownership transfer. Filled with owner_id when is_ownership_transfer is false.