> This page is for Data API, version v1.
> For other versions, use one of these documentation indexes:
> - v2 (default): https://developers.webflow.com/data/v2.0.0/llms.txt
> - v2 Beta: https://developers.webflow.com/data/v2.0.0-beta/llms.txt
> - v1: https://developers.webflow.com/data/v1.0.0/llms.txt

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

# Get Order

GET https://api.webflow.com/sites/{site_id}/order/{order_id}

Retrieve a single product by its ID. All of its SKUs will also be retrieved. The `count`, `limit`, `offset`
and `total` values in the response represent the Product only and do not include SKUs.


Reference: https://developers.webflow.com/data/v1.0.0/reference/ecommerce/orders/get-order

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Request

### Path parameters

- `site_id` (string, required) — Unique identifier for a Site
- `order_id` (string, required) — Unique identifier for an Order

### Headers

- `Accept-Version` (string, optional) — The API version

## Response

### 200

Request was successful

- `orderId` (string, optional) — The order ID. Will usually be 6 hex characters, but can also be 9 hex characters if the site has a very large number of orders. Randomly assigned.
- `status` (enum, optional) — One of `pending`, `unfulfilled`, `fulfilled`, `disputed`, `dispute-lost`, or `refunded`
  - Allowed values: `pending`, `unfulfilled`, `fulfilled`, `disputed`, `dispute-lost`, `refunded`
- `comment` (string, optional) — A comment string for this order editable by API user (not used by Webflow).
- `orderComment` (string, optional) — A comment that the customer left when making their order
- `acceptedOn` (string, optional) — The ISO8601 timestamp that an order was placed.
- `disputedOn` (string, optional) — If an order was disputed by the customer, then this key will be set with the ISO8601 timestamp that Stripe notifies Webflow. Null if not disputed.
- `disputeUpdatedOn` (string, optional) — If an order was disputed by the customer, then this key will be set with the ISO8601 timestamp of the last time that we got an update. Null if not disputed.
- `disputeLastStatus` (string, optional) — If an order was disputed by the customer, then this key will be set with the [dispute's status](https://stripe.com/docs/api#dispute_object-status).
- `fulfilledOn` (string, optional) — If an order was marked as 'fulfilled', then this is the ISO8601 timestamp when that happened.
- `refundedOn` (string, optional) — If an order was refunded, this is the ISO8601 of when that happened.
- `customerPaid` (OrderAmount, optional) — The sum of all line items.
- `netAmount` (OrderAmount, optional) — The sum of all line items.
- `requiresShipping` (boolean, optional) — A boolean indicating whether the order contains one or more purchased items that require shipping.
- `shippingProvider` (string, optional) — A string editable by the API user to note the shipping provider used (not used by Webflow).
- `shippingTracking` (string, optional) — A string editable by the API user to note the shipping tracking number for the order (not used by Webflow).
- `customerInfo` (OrderCustomerInfo, optional) — An object with the keys `fullName` and `email`.
- `allAddresses` (list of OrderAddress, optional) — All addresses provided by the customer during the ordering flow.
- `shippingAddress` (OrderAddress, optional) — A customer address
- `billingAddress` (OrderAddress, optional) — A customer address
- `purchasedItems` (list of OrderPurchasedItem, optional) — An array of all things that the customer purchased.
- `stripeDetails` (StripeDetails, optional) — An object with various Stripe IDs, useful for linking into the stripe dashboard.
- `stripeCard` (StripeCard, optional) — Details on the card used to fulfill this order, if this order was finalized with Stripe.
- `totals` (OrderTotals, optional) — An object describing various pricing totals.
- `customData` (list of OrderCustomDataItems, optional) — An array of additional inputs for custom order data gathering. Each object in the array represents an input with a name, and a textInput, textArea, or checkbox value.
- `downloadFiles` (list of OrderDownloadedFile, optional) — An array of downloadable file objects.

## Errors

### 400 Bad Request Error

Request body was incorrectly formatted. Likely invalid JSON being sent up.

- `any`

### 401 Unauthorized Error

Provided access token is invalid or does not have access to requested resource

- `any`

### 404 Not Found Error

Requested resource not found

- `any`

### 429 Too Many Requests Error

The rate limit of the provided access_token has been reached. Please have your application respect the X-RateLimit-Remaining header we include on API responses.

- `any`

### 500 Internal Server Error

We had a problem with our server. Try again later.

- `any`

## Types

### OrderAmount

The sum of all line items.

- `unit` (string, optional)
- `value` (string, optional)
- `string` (string, optional)

### OrderCustomerInfo

An object with the keys `fullName` and `email`.

- `fullName` (string, optional)
- `email` (string, optional)

### OrderAddress

A customer address

- `type` (enum, optional)
  - Allowed values: `shipping`, `billing`
- `addressee` (string, optional)
- `line1` (string, optional)
- `line2` (string, optional)
- `city` (string, optional)
- `state` (string, optional)
- `country` (string, optional)
- `postalCode` (string, optional)

### OrderPurchasedItem

An item that was purchased

- `count` (double, optional) — Number of item purchased.
- `rowTotal` (OrderAmount, optional) — The sum of all line items.
- `productId` (string, optional) — String Product Id.
- `productName` (string, optional) — Name of the product.
- `productSlug` (string, optional) — Slug of the product.
- `variantId` (string, optional) — String Variant Id. (SKU)
- `variantName` (string, optional) — Name of the variant. (SKU)
- `variantSlug` (string, optional) — Slug of the variant. (SKU)
- `variantImage` (OrderItemImage, optional)
- `variantPrice` (OrderAmount, optional) — The sum of all line items.
- `height` (double, optional) — The height of the variant if provided, 0 otherwise.
- `length` (double, optional) — The length of the variant if provided, 0 otherwise.
- `width` (double, optional) — The width of the variant if provided, 0 otherwise
- `weight` (double, optional) — The weight of the variant if provided, 0 otherwise.
- `purchasedItemsCount` (double, optional) — The sum of all 'count' fields in 'purchasedItems'.

### StripeDetails

An object with various Stripe IDs, useful for linking into the stripe dashboard.

- `refundReason` (string, optional) — Stripe customer ID, or null.
- `refundId` (string, optional) — Stripe charge ID, or null.
- `disputeId` (string, optional) — Stripe dispute ID, or null.
- `chargeId` (string, optional) — Stripe refund ID, or null.
- `customerId` (string, optional)

### StripeCard

Details on the card used to fulfill this order, if this order was finalized with Stripe.

- `last4` (string, optional) — The last 4 digits on the card.
- `brand` (enum, optional) — The card’s brand.
  - Allowed values: `Visa`, `American Express`, `MasterCard`, `Discover`, `JCB`, `Diners Club`, `Unknown`
- `ownerName` (string, optional) — The name on the card.
- `expires` (StripeCardExpires, optional) — The card’s expiration date.

### OrderTotals

An object describing various pricing totals.

- `subtotal` (OrderAmount, optional) — The sum of all line items.
- `extras` (list of OrderExtra, optional) — An array of extra items, includes discounts, shipping, and taxes.
- `total` (OrderAmount, optional) — The sum of all line items.

### OrderCustomDataItems

### OrderDownloadedFile

- `id` (string, optional)
- `name` (string, optional)
- `url` (string, optional)

### OrderItemImage

- `fileId` (string, optional)
- `url` (string, optional)

### StripeCardExpires

The card’s expiration date.

- `year` (double, optional)
- `month` (double, optional)

### OrderExtra

Extra order items, includes discounts, shipping, and taxes.

- `type` (enum, optional) — The type of extra item this is.
  - Allowed values: `discount`, `discount-shipping`, `shipping`, `tax`
- `name` (string, optional) — A human-readable (but English) name for this extra charge.
- `description` (string, optional) — A human-readable (but English) description of this extra charge.
- `price` (OrderAmount, optional) — The sum of all line items.

## Examples

**Response**

```json
{
  "orderId": "dfa-3f1",
  "status": "unfulfilled",
  "comment": "",
  "orderComment": "",
  "acceptedOn": "2018-12-03T22:06:15.761Z",
  "customerPaid": {
    "unit": "USD",
    "value": "6099",
    "string": "$60.99"
  },
  "netAmount": {
    "unit": "USD",
    "value": "5892",
    "string": "$58.92"
  },
  "requiresShipping": true,
  "customerInfo": {
    "fullName": "Customerio Namen",
    "email": "renning+customer@webflow.com"
  },
  "allAddresses": [
    {
      "type": "billing",
      "addressee": "Customerio Namen",
      "line1": "123 Example Rd",
      "line2": "",
      "city": "Examplesville",
      "state": "CA",
      "country": "US",
      "postalCode": "90012"
    },
    {
      "type": "shipping",
      "addressee": "Customerio Namen",
      "line1": "123 Example Rd",
      "line2": "",
      "city": "Examplesville",
      "state": "CA",
      "country": "US",
      "postalCode": "90012"
    }
  ],
  "shippingAddress": {
    "type": "shipping",
    "addressee": "Customerio Namen",
    "line1": "123 Example Rd",
    "line2": "",
    "city": "Examplesville",
    "state": "CA",
    "country": "US",
    "postalCode": "90012"
  },
  "billingAddress": {
    "type": "billing",
    "addressee": "Customerio Namen",
    "line1": "123 Example Rd",
    "line2": "",
    "city": "Examplesville",
    "state": "CA",
    "country": "US",
    "postalCode": "90012"
  },
  "purchasedItems": [
    {
      "count": 1,
      "rowTotal": {
        "unit": "USD",
        "value": "5500",
        "string": "$55.00"
      },
      "productId": "5eb9fd05caef491eb9757183",
      "productName": "White Cup",
      "productSlug": "white-cup",
      "variantId": "5eb9fcace279761d8199790c",
      "variantName": "white-cup_default_sku",
      "variantSlug": "white-cup-default-sku",
      "variantImage": {
        "fileId": "5bfedb42bab0ad90fa7dad2e",
        "url": "https://dev-assets.website-files.com/5bfedb42bab0ad90fa7dac03/5bfedb42bab0ad90fa7dad2e_5bb3d019b3465c6e8a324dd7_458036-unsplas.png"
      },
      "variantPrice": {
        "unit": "USD",
        "value": "5500",
        "string": "$55.00"
      },
      "height": 7,
      "length": 2,
      "width": 4,
      "weight": 5
    }
  ],
  "stripeDetails": {
    "chargeId": "ch_1DdPYQKMjGA7k9mI2AKiBY6u",
    "customerId": "cus_E5ajeiWNHEtcAW"
  },
  "stripeCard": {
    "last4": "4242",
    "brand": "Visa",
    "ownerName": "Customerio Namen",
    "expires": {
      "year": 2023,
      "month": 12
    }
  },
  "totals": {
    "subtotal": {
      "unit": "USD",
      "value": "5500",
      "string": "$55.00"
    },
    "extras": [
      {
        "type": "tax",
        "name": "State Taxes",
        "description": "CA Taxes (6.25%)",
        "price": {
          "unit": "USD",
          "value": "344",
          "string": "$3.44"
        }
      },
      {
        "type": "tax",
        "name": "County Taxes",
        "description": "LOS ANGELES Taxes (1.00%)",
        "price": {
          "unit": "USD",
          "value": "55",
          "string": "$0.55"
        }
      },
      {
        "type": "tax",
        "name": "Special District Taxes",
        "description": "Special District Taxes (2.25%)",
        "price": {
          "unit": "USD",
          "value": "124",
          "string": "$1.24"
        }
      },
      {
        "type": "shipping",
        "name": "Flat Rate",
        "description": "",
        "price": {
          "unit": "USD",
          "value": "599",
          "string": "$5.99"
        }
      },
      {
        "type": "discount",
        "name": "Discount (SAVE5)",
        "description": "",
        "price": {
          "unit": "USD",
          "value": "-500",
          "string": "-$ 5.00 USD"
        }
      }
    ],
    "total": {
      "unit": "USD",
      "value": "6122",
      "string": "$61.22"
    }
  },
  "customData": [
    {
      "textInput": "(415) 123-4567",
      "name": "Telephone"
    },
    {
      "textArea": "Happy birthday Mom!",
      "name": "Gift note"
    },
    {
      "checkbox": true,
      "name": "Send as gift"
    }
  ],
  "downloadFiles": [
    {
      "id": "5e9a5eba75e0ac242e1b6f64",
      "name": "The modern web design process - Webflow Ebook.pdf",
      "url": "https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5eb1aac72912ec06f561278c;5e9a5eba75e0ac242e1b6f63:ka2nehxy:4a1ee0a632feaab94294350087215ed89533f2f530903e3b933b638940e921aa"
    },
    {
      "id": "5e9a5eba75e0ac242e1b6f63",
      "name": "The freelance web designers guide - Webflow Ebook.pdf",
      "url": "https://webflow.com/dashboard/download-digital-product?payload=5d93ba5e38c6b0160ab711d3;e7634a;5dd44c493543b37d5449b3cd;5e9a5eba75e0ac242e1b6f63:ka2nehxy:6af5adf7c6fff7a3b0f54404fac1be492ac6f1ed5340416f1fe27c5fd4dd8079"
    }
  ],
  "purchasedItemsCount": 1
}
```

**SDK Code**

```python Orders_get-order_example
import requests

url = "https://api.webflow.com/sites/580e63e98c9a982ac9b8b741/order/5e8518516e147040726cc415"

headers = {
    "Accept-Version": "1.0.0",
    "Authorization": "Bearer <token>"
}

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

print(response.json())
```

```javascript Orders_get-order_example
const url = 'https://api.webflow.com/sites/580e63e98c9a982ac9b8b741/order/5e8518516e147040726cc415';
const options = {
  method: 'GET',
  headers: {'Accept-Version': '1.0.0', Authorization: 'Bearer <token>'}
};

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

```go Orders_get-order_example
package main

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

func main() {

	url := "https://api.webflow.com/sites/580e63e98c9a982ac9b8b741/order/5e8518516e147040726cc415"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Accept-Version", "1.0.0")
	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 Orders_get-order_example
require 'uri'
require 'net/http'

url = URI("https://api.webflow.com/sites/580e63e98c9a982ac9b8b741/order/5e8518516e147040726cc415")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Accept-Version"] = '1.0.0'
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Orders_get-order_example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.webflow.com/sites/580e63e98c9a982ac9b8b741/order/5e8518516e147040726cc415")
  .header("Accept-Version", "1.0.0")
  .header("Authorization", "Bearer <token>")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.webflow.com/sites/580e63e98c9a982ac9b8b741/order/5e8518516e147040726cc415', [
  'headers' => [
    'Accept-Version' => '1.0.0',
    'Authorization' => 'Bearer <token>',
  ],
]);

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

```csharp Orders_get-order_example
using RestSharp;

var client = new RestClient("https://api.webflow.com/sites/580e63e98c9a982ac9b8b741/order/5e8518516e147040726cc415");
var request = new RestRequest(Method.GET);
request.AddHeader("Accept-Version", "1.0.0");
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Orders_get-order_example
import Foundation

let headers = [
  "Accept-Version": "1.0.0",
  "Authorization": "Bearer <token>"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.webflow.com/sites/580e63e98c9a982ac9b8b741/order/5e8518516e147040726cc415")! 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()
```