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.
| Parameter | Description |
|---|---|
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.
| Field | Description |
|---|---|
method | The action you wish to perform for a given product. Options are: |
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}
]
To prevent throttling please follow these recommendations:
| Parameter | Type | Required/ Optional | Description |
|---|---|---|---|
| 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). |
| 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. |
| 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. |
| Enum {new, refurbished, used, used_like_new, used_good, used_fair, cpo, open_box_new} | Required | The condition of the product item. |
| 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. |
| 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. |
| String | Required | The brand of the product. Set to ‘N/A’ if no brand exists. |
| 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. |
| Enum {in stock, out of stock} | Required | Availability of the product item. |
| String | Required | Mobile URL web link to the product detail page. |
| String | Optional | Checkout URL link we would send the user to when they tap Buy on listing. |
| 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. |
| 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. |
| 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” |
| 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. |
| String | Optional | Facebook product category for the item. Most specific Facebook product category possible from this list: Spreadsheet (.csv) or Plain text (.txt). |
| Enum {active, archived} | Optional | The current status of the product. |
| 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. |
| 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. |
| 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. |
| 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 | Optional | return_days denotes the number of days within which the buyer has to start the product return. 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. |
| 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 |
| UNIX timestamp in seconds UTC (number) | Optional | UNIX timestamp when the product was created or updated. Example: “partner_product_creation_time”: 1713917255 |
| String | Optional | Location of the item as string to be displayed. Example: “Paris, France”. No restrictions on how specific or broad this can be. |
| UNIX timestamp in seconds UTC (number) | Optional | Time at which the listing will be removed from Marketplace. Must be time in the future. |
| 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. Default: [“shipping”] |
| Float | Optional | Latitude of the item. Required if delivery method includes “in_person”. |
| Float | Optional | Longitude of the item. Required if delivery method includes “in_person”. |
| 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” |
| Float | Optional | Required if partner_shipping_type is ‘fixed’. |
| String | Optional | Minimum and maximum expected business days to ship item. |
| 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 |
| Number | Optional | Applicable only if partner_listing_type is ‘auction’. This is the current number of bids placed on the product. |
| 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. |
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"
}
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.