GET
/
v1
/
rulesets
/
{ruleset_id}
/
proposals
/
{id}
/
proposal-products
curl --request GET \
  --url https://marketplace-api.fabric.inc/v1/rulesets/{ruleset_id}/proposals/{id}/proposal-products/ \
  --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

ruleset_id
integer
required

The ruleset unique identifier. To retrieve this ID, login to Dropship and navigate to Settings > Product Rulesets and select a ruleset. The ruleset ID appears at the end of the HTTP URL.

id
integer
required

The unique identifier of the proposal.

Response

200 - application/json
List of products in the proposal.
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"