RFQs
Get a request for quote
A request for quote and its email thread, oldest first: what was sent and every reply from the supplier. status is replied once the supplier has answered. Poll this to see new replies.
GET
/
v1
/
rfq
/
{id}
Get a request for quote
curl --request GET \
--url https://api.partfinder.dev/v1/rfq/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.partfinder.dev/v1/rfq/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.partfinder.dev/v1/rfq/{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://api.partfinder.dev/v1/rfq/{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://api.partfinder.dev/v1/rfq/{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://api.partfinder.dev/v1/rfq/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.partfinder.dev/v1/rfq/{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{
"as_of": "2026-10-07T09:15:02.118Z",
"summary": "1 reply from sales@supplier.example; the latest is the last inbound message. Answer or follow up with POST /v1/rfq/5b0f3c1e-8a2d-4f6b-9c7e-1d2a3b4c5d6e/messages.",
"notice": "Informational only. Risk scores, stock levels, lead times and alternate-part suggestions may be incomplete, delayed or inaccurate. Independently verify before making procurement, engineering, compliance, safety or sourcing decisions.",
"rfq": {
"id": "5b0f3c1e-8a2d-4f6b-9c7e-1d2a3b4c5d6e",
"status": "replied",
"supplier": {
"email": "sales@supplier.example",
"name": "Example Supplier",
"contact_name": "Tom Lee"
},
"requester": {
"company": "Acme Corp",
"contact_name": "Jane Smith",
"title": "Procurement Manager"
},
"parts": [
{
"mpn": "TPS54331DR",
"manufacturer": "Texas Instruments",
"quantity": 500
}
],
"needed_by": "2026-11-30",
"notify_email": null,
"created_at": "2026-10-05T16:02:09.913Z",
"first_reply_at": "2026-10-06T14:27:40.551Z",
"follow_up_count": 0,
"replies_received": 1,
"quotes_received": 1,
"messages": [
{
"id": "9e4d2c7a-1b3f-4a5e-8d6c-0f1e2d3c4b5a",
"direction": "outbound",
"subject": "Request for quote: TPS54331DR, 500 units, needed by 30 November 2026",
"body": "Hi Tom,\n\nMy name is Jane Smith, Procurement Manager at Acme Corp. We're looking for 500 units of the Texas Instruments TPS54331DR and need them delivered by 30 November 2026. Could you send your best unit price, availability and lead time, along with any minimum order quantity and how long the quote is valid?\n\nThank you,\n\nJane Smith\nAcme Corp",
"sent_at": "2026-10-05T16:02:11.307Z",
"attachments": [],
"reply_kind": null,
"quote": null
},
{
"id": "2c8b6e1f-7d3a-4e9b-a1c5-6f0d2e4b8a73",
"direction": "inbound",
"subject": "Re: Request for quote: TPS54331DR, 500 units, needed by 30 November 2026",
"body": "Hi Jane,\n\nWe can offer TPS54331DR at $1.85 each for 500 units, 6 weeks lead time, MOQ 250. Quote valid for 30 days.\n\nBest regards,\nTom Lee\nExample Supplier",
"sent_at": "2026-10-06T14:27:40.551Z",
"attachments": [],
"reply_kind": "quote",
"quote": {
"unit_price": {
"value": 1.85,
"words": "$1.85 each",
"reason": null
},
"currency": {
"value": null,
"words": "$1.85 each",
"reason": "The reply gives \"$\" without saying which dollar."
},
"quantity": {
"value": 500,
"words": "500 units",
"reason": null
},
"lead_time_days": {
"value": 42,
"words": "6 weeks",
"reason": null
},
"moq": {
"value": 250,
"words": "MOQ 250",
"reason": null
}
}
}
]
}
}{
"error": "authentication_required",
"summary": "<string>",
"reason": "<string>",
"billing_url": "<string>",
"did_you_mean": [
"<string>"
]
}{
"error": "authentication_required",
"summary": "<string>",
"reason": "<string>",
"billing_url": "<string>",
"did_you_mean": [
"<string>"
]
}{
"error": "authentication_required",
"summary": "<string>",
"reason": "<string>",
"billing_url": "<string>",
"did_you_mean": [
"<string>"
]
}{
"error": "authentication_required",
"summary": "<string>",
"reason": "<string>",
"billing_url": "<string>",
"did_you_mean": [
"<string>"
]
}Authorizations
An API key created in the PartFinder console at https://console.partfinder.dev, or a customer key created with POST /v1/keys. Send as Authorization: Bearer <key>. Revocation takes effect within approximately one minute.
Path Parameters
The request for quote id.
Was this page helpful?
⌘I
Get a request for quote
curl --request GET \
--url https://api.partfinder.dev/v1/rfq/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.partfinder.dev/v1/rfq/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.partfinder.dev/v1/rfq/{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://api.partfinder.dev/v1/rfq/{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://api.partfinder.dev/v1/rfq/{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://api.partfinder.dev/v1/rfq/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.partfinder.dev/v1/rfq/{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{
"as_of": "2026-10-07T09:15:02.118Z",
"summary": "1 reply from sales@supplier.example; the latest is the last inbound message. Answer or follow up with POST /v1/rfq/5b0f3c1e-8a2d-4f6b-9c7e-1d2a3b4c5d6e/messages.",
"notice": "Informational only. Risk scores, stock levels, lead times and alternate-part suggestions may be incomplete, delayed or inaccurate. Independently verify before making procurement, engineering, compliance, safety or sourcing decisions.",
"rfq": {
"id": "5b0f3c1e-8a2d-4f6b-9c7e-1d2a3b4c5d6e",
"status": "replied",
"supplier": {
"email": "sales@supplier.example",
"name": "Example Supplier",
"contact_name": "Tom Lee"
},
"requester": {
"company": "Acme Corp",
"contact_name": "Jane Smith",
"title": "Procurement Manager"
},
"parts": [
{
"mpn": "TPS54331DR",
"manufacturer": "Texas Instruments",
"quantity": 500
}
],
"needed_by": "2026-11-30",
"notify_email": null,
"created_at": "2026-10-05T16:02:09.913Z",
"first_reply_at": "2026-10-06T14:27:40.551Z",
"follow_up_count": 0,
"replies_received": 1,
"quotes_received": 1,
"messages": [
{
"id": "9e4d2c7a-1b3f-4a5e-8d6c-0f1e2d3c4b5a",
"direction": "outbound",
"subject": "Request for quote: TPS54331DR, 500 units, needed by 30 November 2026",
"body": "Hi Tom,\n\nMy name is Jane Smith, Procurement Manager at Acme Corp. We're looking for 500 units of the Texas Instruments TPS54331DR and need them delivered by 30 November 2026. Could you send your best unit price, availability and lead time, along with any minimum order quantity and how long the quote is valid?\n\nThank you,\n\nJane Smith\nAcme Corp",
"sent_at": "2026-10-05T16:02:11.307Z",
"attachments": [],
"reply_kind": null,
"quote": null
},
{
"id": "2c8b6e1f-7d3a-4e9b-a1c5-6f0d2e4b8a73",
"direction": "inbound",
"subject": "Re: Request for quote: TPS54331DR, 500 units, needed by 30 November 2026",
"body": "Hi Jane,\n\nWe can offer TPS54331DR at $1.85 each for 500 units, 6 weeks lead time, MOQ 250. Quote valid for 30 days.\n\nBest regards,\nTom Lee\nExample Supplier",
"sent_at": "2026-10-06T14:27:40.551Z",
"attachments": [],
"reply_kind": "quote",
"quote": {
"unit_price": {
"value": 1.85,
"words": "$1.85 each",
"reason": null
},
"currency": {
"value": null,
"words": "$1.85 each",
"reason": "The reply gives \"$\" without saying which dollar."
},
"quantity": {
"value": 500,
"words": "500 units",
"reason": null
},
"lead_time_days": {
"value": 42,
"words": "6 weeks",
"reason": null
},
"moq": {
"value": 250,
"words": "MOQ 250",
"reason": null
}
}
}
]
}
}{
"error": "authentication_required",
"summary": "<string>",
"reason": "<string>",
"billing_url": "<string>",
"did_you_mean": [
"<string>"
]
}{
"error": "authentication_required",
"summary": "<string>",
"reason": "<string>",
"billing_url": "<string>",
"did_you_mean": [
"<string>"
]
}{
"error": "authentication_required",
"summary": "<string>",
"reason": "<string>",
"billing_url": "<string>",
"did_you_mean": [
"<string>"
]
}{
"error": "authentication_required",
"summary": "<string>",
"reason": "<string>",
"billing_url": "<string>",
"did_you_mean": [
"<string>"
]
}