GET
/
v1
/
retailers
/
{retailer_id}
/
proposals
/
{id}
curl --request GET \
  --url https://marketplace-api.fabric.inc/v1/retailers/{retailer_id}/proposals/{id}/ \
  --header 'Authorization: Bearer <token>'
{
  "id": 101,
  "name": "Winter 2025 Collection Update",
  "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"
}

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

id
integer
required

The unique identifier of the proposal. This ID is automatically generated when a proposal is created.

Example:

8008

Response

200 - application/json
Proposal details
name
string
required

Name of the proposal.

Required string length: 1 - 128
Example:

"Winter 2025 Collection Update"

id
integer

Unique identifier for the proposal. This ID is automatically generated when a proposal is created.

Example:

101

status
enum<string>

Current status of the proposal.

Available options:
draft,
proposed,
revised,
completed,
approved,
declined,
archived,
pricing_approved,
reopened,
withdrawn
Example:

"proposed"

source
enum<string>

The origin of the proposal.

Available options:
console,
merchandising
Example:

"console"

proposal_type
enum<string>

Type of proposal indicating its purpose.

Available options:
new_product,
cost_update,
image_update,
attribute_update,
legacy
Example:

"new_product"

recipient
string

Recipient of the proposal.

Example:

"retailer_456"

sender
string

Sender who created the proposal.

Example:

"supplier_123"

memos
string

Internal notes or memos associated with the proposal.

Example:

"Initial draft submitted by merchandising team."

created_by
string

User or system that created the proposal.

Example:

"user_789"

connection
string

Integration or channel connection identifier.

Example:

"integration_abc"

retailer
string

Retailer associated with the proposal.

Example:

"Fashion Retail Co."

brand
string

Brand associated with the products in the proposal.

Example:

"FrostWear"

department
string

Department to which the proposal belongs.

Example:

"Apparel"

return_reason
string

Reason the proposal was returned for revisions.

Example:

"Insufficient pricing justification"

return_reason_detail
string | null

Additional details explaining the return reason.

Example:

"Missing supplier cost comparison documentation."

products
string

Products included in the proposal.

Example:

"[{ product_id: 202, name: 'Arctic Parka' }]"

push_to_shopify
boolean

Indicates whether the proposal should be pushed to Shopify.

Example:

true

shopify_template
string

Shopify-specific template used.

Example:

"default_fashion_template"

export_platform_template
string

Template used for exporting to external platforms.

Example:

"standard_export_v1"

attachments
string

Attached files or resources for the proposal.

Example:

"[{ filename: 'lookbook.pdf' }]"

end_at
string | null

Optional end date for the proposal's active status.

Example:

"2025-09-30T23:59:59Z"

issues_summary
string

Summary of identified issues within the proposal.

Example:

"Missing product images for 3 items"

is_acknowledged
boolean

Indicates whether the proposal has been acknowledged.

Example:

false

item_approved_count
integer

Number of approved items in the proposal.

Example:

5

item_deleted_count
integer

Number of deleted items in the proposal.

Example:

0

item_rejected_count
integer

Number of rejected items in the proposal.

Example:

1

item_skipped_count
integer

Number of items skipped during processing.

Required range: -2147483648 <= x <= 2147483647
Example:

2

item_count
string

Total number of items in the proposal.

Example:

"10"

item_classified_count
string

Number of items that have been classified.

Example:

"8"

item_ready_count
string

Number of items ready for final review or processing.

Example:

"6"

item_failed_count
string

Number of items that failed validation or processing.

Example:

"1"

action_required
string

Description of action required from the user.

Example:

"Upload missing product photos"

has_action
string

Indicates whether there is a pending action.

Example:

"yes"

has_revision
string

Flag indicating whether the proposal includes revisions.

Example:

"true"

has_unresolved_issues
boolean

Indicates if the proposal still has unresolved issues.

Example:

true

has_price_changes
boolean

Indicates if there are pricing updates in the proposal.

Example:

true

collaborators
string

Users collaborating on the proposal.

Example:

"user_789, user_321"

target_live_date
string | null

Intended go-live date for the proposed changes.

Example:

"2025-10-01T00:00:00Z"

start_at
string | null

Start date of the proposal.

Example:

"2025-04-01T00:00:00Z"

expires_at
string | null

Expiration date of the proposal.

Example:

"2025-06-01T00:00:00Z"

updated_at
string

Timestamp when the proposal was last updated.

Example:

"2025-04-22T15:30:00Z"

created_at
string

Timestamp when the proposal was created.

Example:

"2025-04-20T08:45:00Z"

draft_proposed_at
string | null

Timestamp when the draft was proposed.

Example:

"2025-04-10T12:00:00Z"

acknowledged_at
string | null

Timestamp when the proposal was acknowledged.

Example:

"2025-04-15T09:30:00Z"

proposed_at
string | null

Timestamp when the proposal was officially proposed.

Example:

"2025-04-20T10:00:00Z"

archived_at
string | null

Timestamp when the proposal was archived.

Example:

"2025-04-22T17:00:00Z"

revised_at
string | null

Timestamp when the proposal was last revised.

Example:

"2025-04-21T14:15:00Z"

approved_at
string | null

Timestamp when the proposal was approved.

Example:

"2025-04-25T11:00:00Z"

declined_at
string | null

Timestamp when the proposal was declined.

Example:

"2025-04-26T10:30:00Z"

pricing_approved_at
string | null

Timestamp when pricing was approved.

Example:

"2025-04-24T13:45:00Z"

completed_at
string | null

Timestamp when the proposal was completed.

Example:

"2025-04-28T16:00:00Z"

withdrawn_at
string | null

Timestamp when the proposal was withdrawn.

Example:

"2025-04-27T08:00:00Z"

withdraw_reason
string | null

Reason why the proposal was withdrawn.

Maximum length: 300
Example:

"The product line was discontinued by the supplier."

tags
string

Metadata tags for classification or filtering.

Example:

"seasonal,featured,high-priority"