Marketplace Partner Item API

Being a Marketplace partner makes your listings available on Facebook Marketplace in certain countries.

To upload, update, or delete your products on Facebook Marketplace you will use the GraphAPI interface.

HTTP

POST /v20.0/{product-catalog-id}/items_batch HTTP/1.1

If you want to learn how to use the Graph API, read our Using Graph API guide.

When posting to this edge, a Product Item will be created.

Params

ParameterDescription

item_type

Set as PRODUCT_ITEM

requests

The method and fields for each product in an array of products.

The request parameter is where you will define the method and the data of your request.

FieldDescription

method

The action you wish to perform for a given product. Options are:
CREATE
UPDATE
DELETE

data

The information about the product to be created, updated, or deleted.

Example requests parameter

[
    {
        "method": "CREATE",
        "data": {
            "id": "UniqueProductID",
            "title": "Title",
            "description": "This is the description",
            "price": "100 USD",
            "image_link": "https:\/\/www.facebook.com",
            "brand": "Monster",
            "availability": "in stock",
            "condition": "new",
            "link": "https:\/\/www.facebook.com",
            "return_details": {"return_days": "30", "return_type": "SELLER_PAID_RETURN"},
            "partner_product_checkout_uri": "https:\/\/www.facebook.com",
            "partner_product_location": "San Fransisco, CA",
            "partner_product_expiration_time": "1923181264",
            "partner_delivery_method": ["shipping"],
            "partner_shipping_type": "fixed",
            "partner_shipping_cost": "14.95",
            "partner_shipping_speed": "3:5",
            "partner_attribute_data": {"color": "blue"},
            "partner_seller_id": "MySellerId1",
            "partner_item_country": "US"
        }
    },
    .... {next product}
]
   

API Rate Limit

To prevent throttling please follow these recommendations:

  • Do not exceed 30 calls per minute. Anything above will cause throttling.
  • Batch items in one API call, up to 300.

Product Item Fields

ParameterTypeRequired/ OptionalDescription

id

String (Max character limit: 100

Required

A unique content ID for the item. Use the item's SKU if possible. Each content ID must appear only once in your catalog. If there are multiple instances of the same ID, we ignore all instances.

If items are available in multiple countries, you must reuse the same id across all catalogs. Be sure to update the price to the country's currency (see the price field).

title

String (Character limit: 200)

Required

The title of the product item that appears on the Marketplace listing.

This text will appear on Marketplace. Do not include HTML tags.

description

String (Character limit: 9999)

Required

Description of the product. While the character limit of this field is 9999, only the first 256 characters will be shown on the listing on Facebook Marketplace.

This text will appear on Marketplace. Do not include HTML tags.

Example: A comfortable royal blue women's T-shirt in organic cotton. Cap sleeves and relaxed fit. Perfect for warm summer days.

condition

Enum {new, refurbished, used, used_like_new, used_good, used_fair, cpo, open_box_new}

Required

The condition of the product item.

partner_listing_type

Enum {fixed_price, auction, vehicle, rental, real_estate}

Optional

This determines the listing type. It will default to ‘fixed_price’ if there is no selection.

If set as ‘auction’, ‘vehicle’, ‘rental’, or ‘real_estate’, will deliver specified partner listing type experience for buyers on Marketplace.

partner_product_condition

Enum {acceptable, brand_new, certified_pre_owned, certified_refurbished, damaged, digital_good, excellent_refurbished, for_parts_or_not_working, good, good_refurbished, graded, like_new, new, new_other, new_other_see_details, new_with_box, new_with_defects, new_with_tags, open_box, others, pre_owned, remanufactured, retread, seller_refurbished, ungraded, used, very_good, very_good_refurbished, new_open_box, open_box_used, new_factory_sealed, unknown}

Optional

Product conditions. Optional field that will override the condition field. Use if more specificity is desired for the condition of the product.

brand

String

Required

The brand of the product. Set to ‘N/A’ if no brand exists.

price

String (Character limit: 9999)

Required

Format the price as a number, followed by a space and then the 3-letter ISO 4217 currency code. Ex. 10.99 EUR

If the listing type is ‘auction’ this is the bid price of the product. Format the price as a number, followed by a space and then the 3-letter ISO 4217 currency code.

availability

Enum {in stock, out of stock}

Required

Availability of the product item.

link

String

Required

Mobile URL web link to the product detail page.

partner_product_checkout_uri

String

Optional

Checkout URL link we would send the user to when they tap Buy on listing.
We will append the click_id to the param. If missing, we will default to the URL from the ‘link’ field.

partner_product_html_desc_uri

String

Optional

URL link to site with full description of product. Used if product description contains more than can fit in the text field ‘description’. Marketplace will optionally provide a link to the full description.

image_link

String

Required

The URL for the main image of your item. Images must be in JPEG or PNG format, at least 500 x 500 pixels and up to 8 MB. See product image specifications.

partner_seller_id

String (Max character limit: 100)

Required

Unique identifier for the seller. Needs to match partner_seller_id in the seller information.

Example: “partner_seller_id”: “great_seller_inc”

partner_item_country

Enum {AT, BE, BG, CY, CZ, DE, DK, EE, ES, FI, FR, GR, HR, HU, IE, IS, IT, LI, LT, LU, LV, MT, NL, NO, PL, PT, RO, SE, SI, SK}

Required

This is the country that the product is available in, if applicable, can be shipped to. The catalog country and partner_item_country will need to match.

Items supporting cross border shipping, it is required that one item be created in each country catalog where shipping is supported and the partner intends to distribute.

fb_product_category

String

Optional

Facebook product category for the item. Most specific Facebook product category possible from this list: Spreadsheet (.csv) or Plain text (.txt).

status

Enum {active, archived}

Optional

The current status of the product.

sale_price

String

Optional

Format the price as a number, followed by a space and then the 3-letter ISO 4217 currency code. Ex. 10.99 EUR. This is the same format as the price field. Use in conjunction with the price field to show discounts.

sale_price_effective_date

String

Optional

Start and end date and time for the sale, separated by a slash. Write the start and end dates as YYYY-MM-DD. Add a "T" after each date and then include the time. Write the time in a 24-hour format (0:00 to 23:59).

Example: 2014-11-01T12:00-0300/2014-12-01T00:00-0300.

additional_image_link

String (Character limit: 2000)

Optional

URLs for up to 20 additional images of your item, separated by a comma (,), semicolon (;), space ( ) or vertical bar (|). Follow the same image specifications as image_link.

return_details

Nullable json object (ie. map) { “return_days”: 30, “return_type”: enum }

enum: FINAL_SALE NO_RETURNS_WITH_EXCEPTION NO_RETURNS SELLER_PAID_RETURN BUYER_PAID_RETURN

Or, if returns not available
“return_details”: null

Optional

return_days denotes the number of days within which the buyer has to start the product return.
return_days should be -1 for NO_RETURNS and FINAL_SALE

return_type denotes the supported return style of the product. Available options include: FINAL_SALE, NO_RETURNS_WITH_EXCEPTION, NO_RETURNS, SELLER_PAID_RETURN, BUYER_PAID_RETURN

If left empty, return details will not be shown.

partner_attribute_data

Nullable json object { “color”: “blue” }

Available keys: aspect_ratio, band_material, bike_type, brand, break_type, cable_length, capacity, case_size, certification, character, circulated_uncirculated, closure, color, compatible_bike_type, compatible_brand, compatible_model, compatible_operating_system, compatible_product, connectivity, credit_included, denomination, department, display_technology, dress_length, exterior_color, exterior_material, fabric_type, features, film_format, fit, focal_length, focus_type, form_factor, format, frame_color, game_name, game, gauge, golf_club_type, handedness, inseam, internet_connectivity, item_height, item_length, item_weight, item_width, items_included, main_stone, manufacturer_part_number, manufacturer, material, maximum_aperture, maximum_magnification, maximum_resolution, memory_cards_supported, metal_purity, metal, model, mount, mpn, network, number_of_items, occasion, outer_shell_material, package_quantity, part_type, pattern, performance_activity, platform, processor, publication_name, quantity, rack_type, rim_diameter, rim_width, ring_size, screen_size, section_width, series, set_includes, set, size_type, size, skirt_length, sleeve_length, sport_activity, sport, storage_capacity, style, type, unit_quantity, unit_type, upper_material, us_shoe_size, vintage, voltage, volume, waist_size, wheel_diameter, year

Optional

A key-value list of attributes that will be displayed in the details section of the product. The values are string format.

Keys applicable to rentals/real estate: property_type (required), sale_type, bed_bath, area_size, pet_friendly, ac_type, heating_type, laundry_type, parking_type, parkingSpace, furnishing_type, garden_type, tenure_type, listed_by, property_tax_and_condo_fee, construction_status, lease_duration, energy_rating_eu, co2_emission_rating

Keys applicable to vehicles: vehicle_type, year, make, model, number_of_owners, trim, body_style, exterior_color, interior_color, transmission, fuel_type, mileage, money_still_owed, motorcycle_type, engine_size

partner_product_creation_time

UNIX timestamp in seconds UTC (number)

Optional

UNIX timestamp when the product was created or updated.

Example: “partner_product_creation_time”: 1713917255

partner_product_location

String

Optional

Location of the item as string to be displayed. Example: “Paris, France”. No restrictions on how specific or broad this can be.

partner_product_expiration_time

UNIX timestamp in seconds UTC (number)

Optional

Time at which the listing will be removed from Marketplace. Must be time in the future.

partner_delivery_method

Array of string enums {shipping, in_person}

Optional

This captures how the product can be delivered to a buyer. If a product can be shipped and picked up in person, include both.
Example: [“shipping”,”in_person”]

Default: [“shipping”]

partner_item_latitude

Float

Optional

Latitude of the item. Required if delivery method includes “in_person”.

partner_item_longitude

Float

Optional

Longitude of the item. Required if delivery method includes “in_person”.

partner_shipping_type

Enum {free, fixed, dynamic}

Optional

Shipping price strategy for item. If shipping is free, use ‘free’. If shipping is a fixed price no matter the location, use ‘fixed’ and set the cost in partner_shipping_cost. If shipping price varies based on buyer location, variant choices, etc. choose ‘dynamic’. If dynamic, we will not display shipping cost but instead indicate they can see shipping cost during checkout.

Default: “dynamic”

partner_shipping_cost

Float

Optional

Required if partner_shipping_type is ‘fixed’.
Example “14.95”

partner_shipping_speed

String
‘MIN_DELIVERY_SPEED_IN_DAYS:MAX_DELIVERY_SPEED_IN_DAYS’

Optional

Minimum and maximum expected business days to ship item.
Example: “3:5”

partner_auction_bid_close_time

UNIX timestamp in seconds UTC (number)

Optional

Required field if the partner_listing_type is ‘auction’. This is when the bidding closes for the product. Example: “partner_auction_bid_close_time”: 1713917255

partner_auction_bid_count

Number

Optional

Applicable only if partner_listing_type is ‘auction’. This is the current number of bids placed on the product.

additional_fields

Nullable json object

Freeform (no set enum / keys)

{ “revised_title”: “Premium Blue T-Shirt” }

Optional

A freeform Json field for partners to send any additional fields.

Check Status of Upload

After submitting a create, update, or delete request, a handle will be returned to you. You can then check the result of the submission with another request.

The data -> status will be set to “finished” upon completion and the errors and warnings will be displayed.

HTTP

GET /v20.0/{product-catalog-id}/check_batch_request_status?handle={your handle}

Example return

{
  "data": [
    {
      "handle": "Acy3FUJwzE10XnWrYr4ttrjOAfs-h6BUg-Wtg6sWGeV7qZZaErX15XPfqT_KWeyC6T4-nTbng9r1BJuScb6hgO1B",
      "status": "finished",
      "errors_total_count": 0,
      "errors": [
      ],
      "warnings": [
        {
          "line": 1,
          "id": "YourItemID",
          "message": "These attributes are invalid and need to be updated in the feed file: The product_tags information under  is invalid. Review for more details"
        }
      ],
      "ids_of_invalid_requests": [
      ]
    }
  ],
  "__www_request_id__": "Az3ghYsDh-101IH2t6DXKuP"
}
    

View and Manage Products

To view or manage uploaded products on Commerce Manager. Any issues with your products will appear on Commerce Manager and may be resolved in the tool.