> This page is for Developer.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.bigcommerce.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.bigcommerce.com/_mcp/server.

# List Quotes

GET https://api-b2b.bigcommerce.com/api/v2/rfq

Retrieves basic information for all sales quotes assigned to the Company user. If the user's [quote permissions](/developer/api-reference/rest/b2b/storefront/request-for-quote#buyer-permissions) are set to the **Company** level, this will also return quotes assigned to all buyers in the Company account.

The information in the response is equivalent to the details displayed in the quotes list, such as dates for creation and the last edit, or the status. Use [Get Quote Details](#get-rfq-quote_id) to return the information that is available while viewing a particular quote.

Equivalent Storefront GraphQL Query: `quotes`.

Reference: https://docs.bigcommerce.com/developer/api-reference/rest/b2b/storefront/request-for-quote/get-rfq

## Authentication

- `Authorization` header (bearer token, required) — ### Authentication header | Header | Argument | Description | | :-------------- | :------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `Authorization` | `Bearer {{B2B_JWT_TOKEN}}` | You can obtain this token using the steps described in the [REST Storefront API](/developer/docs/b2b-edition/getting-started/authentication#rest-storefront-api) section\[...] |

## Request

### Query parameters

- `offset` (integer, optional, default: 0) — The number of results to skip before returning the first result. If left blank, this defaults to `0`.
- `limit` (integer, optional, default: 10) — Determines the number of records to return per page. If left blank, this defaults to '10'.
- `sortBy` (enum, optional, default: updatedAt) — Sorts results by last updated date (`updatedAt`), creation date (`createdAt`), expiration date (`expiredAt`), quote number (`quoteNumber`), quote title (`title`), sales rep name (`salesRep`), or quote status (`status`).
  - Allowed values: `updatedAt`, `createdAt`, `expiredAt`, `quoteNumber`, `title`, `salesRep`, `status`
- `orderBy` (enum, optional, default: DESC) — Establish a descending or ascending order of results. The order defaults to descending if the parameter is not included.
  - Allowed values: `ASC`, `DESC`
- `q` (string, optional) — Enter quote information to return partial and exact matches. Accepted information fields include number, title, sales rep name, and Company user first and last name.
- `quoteNumber` (string, optional) — Enter a full or partial quote number to retrieve relevant quotes.
- `company` (string, optional) — Enter a Company name to retrieve relevant quotes. The response only retrieves quotes from a buyer's Company account by default.
- `salesRep` (string, optional) — The name of the sales rep assigned to the quote.
- `status` (enum, optional) — The frontend status of the quote. Note that these are not the same as statuses observed in the B2B Edition control panel. See [Quote Statuses](/developer/api-reference/rest/b2b/storefront/request-for-quote#quote-statuses) for more information.
  - Allowed values: `1`, `4`, `5`
- `quoteTitle` (string, optional) — The external title given to the quote.
- `createdBy` (string, optional) — The name of the sales rep or buyer who created the quote.
- `dateCreatedBeginAt` (string, optional) — Enter a date to retrieve all quotes created after that time.
- `dateCreatedEndAt` (string, optional) — Enter a date to retrieve all quotes created before that time.
- `dateUpdatedBeginAt` (string, optional) — Enter a date to retrieve all quotes modified after that time.
- `dateUpdatedEndAt` (string, optional) — Enter a date to retrieve all quotes modified before that time.
- `dateExpiredBeginAt` (string, optional) — Enter a date to retrieve all quotes that expired after that time.
- `dateExpiredEndAt` (string, optional) — Enter a date to retrieve all quotes that expired before that time.

## Response

### 200

OK

- `code` (integer, optional, default: 200) — HTTP Response Code
- `message` (string, optional, default: SUCCESS)
- `data` (RfqGetResponsesContentApplicationJsonSchemaData, optional)

## Types

### RfqGetResponsesContentApplicationJsonSchemaData

- `list` (list of quoteData_LIST, optional)
- `pagination` (RfqGetResponsesContentApplicationJsonSchemaDataPagination, optional)

### quoteData_LIST

- `quoteId` (integer, optional) — The internal numeric ID of the sales quote.
- `company` (string, optional) — The name of the Company account associated with the buyer on the quote. If the quote is for a B2C customer or guest shopper, this field is blank.
- `salesRep` (string, optional) — The sales rep user assigned to the quote.
- `updatedAt` (integer, optional) — The [Unix timestamp](https://www.unixtimestamp.com/) when the quote was last modified.
- `contactName` (string, optional) — The buyer’s full name.
- `contactEmail` (string, optional) — The buyer’s email address.
- `channelName` (string, optional) — The name of the storefront channel associated with the quote.
- `quoteTitle` (string, optional) — The external title given to the quote.
- `referenceNumber` (string, optional) — An identifier for the quote that can be supplied by the sales rep or the buyer, such as a Purchase Order number.
- `expiredAt` (integer, optional) — The [Unix timestamp](https://www.unixtimestamp.com/) for when the sales quote expires. This is a read-only field.
- `subtotal` (double, optional) — The quoted total after discounts and before shipping and tax.
- `quoteNumber` (string, optional) — The quote identifier that is visible in the B2B Edition control panel and the Buyer Portal.
- `createdBy` (string, optional) — The name of the sales rep or buyer who created the quote.
- `createdAt` (integer, optional) — The [Unix timestamp](https://www.unixtimestamp.com/) for when the sales quote was created.
- `status` (enum, optional) — The numeric ID associated with the quote's status. See [Quote Statuses](/developer/api-reference/rest/b2b/storefront/request-for-quote#quote-statuses) to learn about the statuses that correspond to each ID.
  - Allowed values: `1`, `4`, `5`
- `bcOrderId` (integer, optional) — The BigCommerce order ID associated with the sales quote.
- `orderId` (string, optional) — The B2B Edition internal order ID. Note that this is different from the BigCommerce order ID returned in the `bcOrderId` field.
- `channelId` (integer, optional) — The storefront channel ID associated with the quote. This is required if your store has multiple storefront channels. Use '1' for your store's default storefront channel.
- `currency` (currency_RESPONSE, optional) — Contains detailed information regarding the quote's currency.
- `extraFields` (list of QuoteDataListExtraFieldsItems, optional)

### RfqGetResponsesContentApplicationJsonSchemaDataPagination

- `totalCount` (integer, optional) — The total number of items in the full response.
- `offset` (integer, optional, default: 0) — The number of eligible results skipped before the first result in the response.
- `limit` (integer, optional, default: 10) — The number of records returned per page.

### currency_RESPONSE

Contains detailed information regarding the quote's currency.

- `location` (enum, optional) — Determines whether the currency symbol is added to the left or the right of quote pricing.
  - Allowed values: `left`, `right`
- `token` (string, optional) — The currency symbol.
- `decimalToken` (string, optional) — The character used to separate decimal values in quote pricing.
- `decimalPlaces` (double, optional) — The number of decimal places displayed in quote pricing.
- `thousandsToken` (string, optional) — The character used to separate the hundredths and thousandths places in quote pricing.
- `currencyCode` (string, optional) — The three-letter code corresponding to the quote's currency
- `currencyExchangeRate` (double, optional) — Overrides the built-in exchange rate between your store's default currency and the quote's selected currency. If left blank, the exchange rate defined in your store's settings is used.

### QuoteDataListExtraFieldsItems

Contains information about extra fields on the quote.

- `fieldName` (string, optional) — The name of the quote extra field.
- `fieldValue` (string, optional) — The value of the quote extra field.

## Examples

**Response**

```json
{
  "code": 200,
  "message": "SUCCESS",
  "data": {
    "list": [
      {
        "quoteId": 123456,
        "company": "Great Buys Incorporated",
        "salesRep": "Isaac Newton",
        "updatedAt": 1745346153,
        "contactName": "Marie Curie",
        "contactEmail": "mcurie@greatbuysinc.com",
        "channelName": "B2B Store",
        "quoteTitle": "Plants Bulk Request",
        "referenceNumber": "04292025-0001",
        "expiredAt": 1749275999,
        "subtotal": 200,
        "quoteNumber": "QN000123",
        "createdBy": "Marie Curie",
        "createdAt": 1745346034,
        "status": 1,
        "bcOrderId": 123,
        "orderId": "123456",
        "channelId": 1,
        "currency": {
          "location": "left",
          "token": "$",
          "decimalToken": ".",
          "decimalPlaces": 2,
          "thousandsToken": ",",
          "currencyCode": "USD",
          "currencyExchangeRate": 1.34
        },
        "extraFields": [
          {
            "fieldName": "Do you require any customizations to the products?",
            "fieldValue": "No"
          }
        ]
      }
    ],
    "pagination": {
      "totalCount": 250,
      "offset": 1,
      "limit": 1
    }
  }
}
```

**SDK Code**

```python
import requests

url = "https://api-b2b.bigcommerce.com/api/v2/rfq"

querystring = {"company":"Great Buys Incorporated","createdBy":"Marie Curie","dateCreatedBeginAt":"10/01/2022","dateCreatedEndAt":"01/01/2025","dateExpiredBeginAt":"10/01/2022","dateExpiredEndAt":"01/01/2025","dateUpdatedBeginAt":"10/01/2022","dateUpdatedEndAt":"01/01/2025","limit":"25","offset":"10","orderBy":"ASC","q":"Marie Curie","quoteNumber":"QN000023","quoteTitle":"Plants Bulk Request","salesRep":"Isaac Newton","sortBy":"createdAt","status":"1"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript
const url = 'https://api-b2b.bigcommerce.com/api/v2/rfq?company=Great+Buys+Incorporated&createdBy=Marie+Curie&dateCreatedBeginAt=10%2F01%2F2022&dateCreatedEndAt=01%2F01%2F2025&dateExpiredBeginAt=10%2F01%2F2022&dateExpiredEndAt=01%2F01%2F2025&dateUpdatedBeginAt=10%2F01%2F2022&dateUpdatedEndAt=01%2F01%2F2025&limit=25&offset=10&orderBy=ASC&q=Marie+Curie&quoteNumber=QN000023&quoteTitle=Plants+Bulk+Request&salesRep=Isaac+Newton&sortBy=createdAt&status=1';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api-b2b.bigcommerce.com/api/v2/rfq?company=Great+Buys+Incorporated&createdBy=Marie+Curie&dateCreatedBeginAt=10%2F01%2F2022&dateCreatedEndAt=01%2F01%2F2025&dateExpiredBeginAt=10%2F01%2F2022&dateExpiredEndAt=01%2F01%2F2025&dateUpdatedBeginAt=10%2F01%2F2022&dateUpdatedEndAt=01%2F01%2F2025&limit=25&offset=10&orderBy=ASC&q=Marie+Curie&quoteNumber=QN000023&quoteTitle=Plants+Bulk+Request&salesRep=Isaac+Newton&sortBy=createdAt&status=1"

	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(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api-b2b.bigcommerce.com/api/v2/rfq?company=Great+Buys+Incorporated&createdBy=Marie+Curie&dateCreatedBeginAt=10%2F01%2F2022&dateCreatedEndAt=01%2F01%2F2025&dateExpiredBeginAt=10%2F01%2F2022&dateExpiredEndAt=01%2F01%2F2025&dateUpdatedBeginAt=10%2F01%2F2022&dateUpdatedEndAt=01%2F01%2F2025&limit=25&offset=10&orderBy=ASC&q=Marie+Curie&quoteNumber=QN000023&quoteTitle=Plants+Bulk+Request&salesRep=Isaac+Newton&sortBy=createdAt&status=1")

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
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api-b2b.bigcommerce.com/api/v2/rfq?company=Great+Buys+Incorporated&createdBy=Marie+Curie&dateCreatedBeginAt=10%2F01%2F2022&dateCreatedEndAt=01%2F01%2F2025&dateExpiredBeginAt=10%2F01%2F2022&dateExpiredEndAt=01%2F01%2F2025&dateUpdatedBeginAt=10%2F01%2F2022&dateUpdatedEndAt=01%2F01%2F2025&limit=25&offset=10&orderBy=ASC&q=Marie+Curie&quoteNumber=QN000023&quoteTitle=Plants+Bulk+Request&salesRep=Isaac+Newton&sortBy=createdAt&status=1")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api-b2b.bigcommerce.com/api/v2/rfq?company=Great+Buys+Incorporated&createdBy=Marie+Curie&dateCreatedBeginAt=10%2F01%2F2022&dateCreatedEndAt=01%2F01%2F2025&dateExpiredBeginAt=10%2F01%2F2022&dateExpiredEndAt=01%2F01%2F2025&dateUpdatedBeginAt=10%2F01%2F2022&dateUpdatedEndAt=01%2F01%2F2025&limit=25&offset=10&orderBy=ASC&q=Marie+Curie&quoteNumber=QN000023&quoteTitle=Plants+Bulk+Request&salesRep=Isaac+Newton&sortBy=createdAt&status=1', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api-b2b.bigcommerce.com/api/v2/rfq?company=Great+Buys+Incorporated&createdBy=Marie+Curie&dateCreatedBeginAt=10%2F01%2F2022&dateCreatedEndAt=01%2F01%2F2025&dateExpiredBeginAt=10%2F01%2F2022&dateExpiredEndAt=01%2F01%2F2025&dateUpdatedBeginAt=10%2F01%2F2022&dateUpdatedEndAt=01%2F01%2F2025&limit=25&offset=10&orderBy=ASC&q=Marie+Curie&quoteNumber=QN000023&quoteTitle=Plants+Bulk+Request&salesRep=Isaac+Newton&sortBy=createdAt&status=1");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api-b2b.bigcommerce.com/api/v2/rfq?company=Great+Buys+Incorporated&createdBy=Marie+Curie&dateCreatedBeginAt=10%2F01%2F2022&dateCreatedEndAt=01%2F01%2F2025&dateExpiredBeginAt=10%2F01%2F2022&dateExpiredEndAt=01%2F01%2F2025&dateUpdatedBeginAt=10%2F01%2F2022&dateUpdatedEndAt=01%2F01%2F2025&limit=25&offset=10&orderBy=ASC&q=Marie+Curie&quoteNumber=QN000023&quoteTitle=Plants+Bulk+Request&salesRep=Isaac+Newton&sortBy=createdAt&status=1")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```