Get all product proposals - Fabric
Get all product proposals
cURL
curl --request GET \
--url https://marketplace-api.fabric.inc/v1/retailers/{retailer_id}/proposals/products/ \
--header 'Authorization: Bearer <token>'
Python
import requests
url = "https://marketplace-api.fabric.inc/v1/retailers/{retailer_id}/proposals/products/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)
JavaScript (Fetch API)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://marketplace-api.fabric.inc/v1/retailers/{retailer_id}/proposals/products/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://marketplace-api.fabric.inc/v1/retailers/{retailer_id}/proposals/products/",
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;
}
?>
Go
package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://marketplace-api.fabric.inc/v1/retailers/{retailer_id}/proposals/products/"
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))
}
Other HTTP client example
HttpResponse<String> response = Unirest.get("https://marketplace-api.fabric.inc/v1/retailers/{retailer_id}/proposals/products/")
.header("Authorization", "Bearer <token>")
.asString();
Ruby
require 'uri'
require 'net/http'
url = URI("https://marketplace-api.fabric.inc/v1/retailers/{retailer_id}/proposals/products/")
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
Response
200
{
"count": 100,
"results": [
{
"name": "Winter 2025 Collection Update",
"id": 101,
"status": "proposed",
"source": "console",
"proposal_type": "new_product",
"recipient": "retailer_456",
"sender": "supplier_123",
"memos": "Initial draft submitted by merchandising team.",
"created_by": "user_789",
"connection": "integration_abc",
"retailer": "Fashion Retail Co.",
"brand": "FrostWear",
"department": "Apparel",
"return_reason": "Insufficient pricing justification",
"return_reason_detail": "Missing supplier cost comparison documentation.",
"products": "[{ product_id: 202, name: 'Arctic Parka' }]",
"push_to_shopify": true,
"shopify_template": "default_fashion_template",
"export_platform_template": "standard_export_v1",
"attachments": "[{ filename: 'lookbook.pdf' }]",
"end_at": "2025-09-30T23:59:59Z",
"issues_summary": "Missing product images for 3 items",
"is_acknowledged": false,
"item_approved_count": 5,
"item_deleted_count": 0,
"item_rejected_count": 1,
"item_skipped_count": 2,
"item_count": "10",
"item_classified_count": "8",
"item_ready_count": "6",
"item_failed_count": "1",
"action_required": "Upload missing product photos",
"has_action": "yes",
"has_revision": "true",
"has_unresolved_issues": true,
"has_price_changes": true,
"collaborators": "user_789, user_321",
"target_live_date": "2025-10-01T00:00:00Z",
"start_at": "2025-04-01T00:00:00Z",
"expires_at": "2025-06-01T00:00:00Z",
"updated_at": "2025-04-22T15:30:00Z",
"created_at": "2025-04-20T08:45:00Z",
"draft_proposed_at": "2025-04-10T12:00:00Z",
"acknowledged_at": "2025-04-15T09:30:00Z",
"proposed_at": "2025-04-20T10:00:00Z",
"archived_at": "2025-04-22T17:00:00Z",
"revised_at": "2025-04-21T14:15:00Z",
"approved_at": "2025-04-25T11:00:00Z",
"declined_at": "2025-04-26T10:30:00Z",
"pricing_approved_at": "2025-04-24T13:45:00Z",
"completed_at": "2025-04-28T16:00:00Z",
"withdrawn_at": "2025-04-27T08:00:00Z",
"withdraw_reason": "The product line was discontinued by the supplier.",
"tags": "seasonal,featured,high-priority"
}
],
"next": "https://api.example.org/demo/{retailer_id}/?page=5",
"previous": "https://api.example.org/demo/{retailer_id}/?page=3"
}
Authorizations
Authorization
string
header
required
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
retailer_id
integer
required
The unique retailer ID. In the Dropship UI this is called the Merchant ID. To find your Merchant ID, click your merchant name in the top nav.
Example: 1001
Response
200 - application/json
OK
count
integer
required
The total number of records
Example: 100
results
object[]
required
Showchild attributes
next
string
Next page (applicable in a paginated response)
Example: "https://api.example.org/demo/{retailer_id}/?page=5"
previous
string
Previous page (applicable in a paginated response)
Example: "https://api.example.org/demo/{retailer_id}/?page=3"