Seller Auto Reply Listings API Reference

REST API reference for Seller Auto Reply: authenticate with your Unique Key, then create, read, update, and delete the Facebook Marketplace listing context that drives your automatic replies.

The Listings API manages the listing context Seller Auto Reply uses when it writes an automatic reply — the name, description, price, and per-listing instructions attached to each of your Facebook Marketplace listings. It is the programmatic equivalent of the listing importer in the dashboard.

  • Base URL: https://www.fbautoreplyai.com
  • Media type: application/json for both requests and responses
  • Scope: you can only read and modify listings that belong to your own account

Authentication

Every request must carry your account's Unique Key in the X-Unique-Key header:

X-Unique-Key: your_unique_key

Find the key in the dashboard under Your Unique Key — it is the same key you paste into the browser extension. Treat it like a password: it grants full access to your listing data. There is no OAuth flow and no second credential.

ConditionStatusBody
Header missing401{ "success": false, "message": "Authentication required" }
Key does not match an account404{ "success": false, "message": "Invalid unique key" }
Listing belongs to another account403{ "success": false, "message": "Access denied" }

Response envelope

Every endpoint returns the same envelope:

{
  "success": true,
  "data": {},
  "message": "Human-readable summary"
}

Failures set "success": false, carry a message, and add an errors array of validation messages when the request body failed schema validation.

StatusMeaning
200Request succeeded
400Invalid request format — see errors
401Missing X-Unique-Key header
403The listing belongs to another account
404Unknown unique key, or listing not found
500Unexpected server error

GET /api/listings

Returns your listings, newest page first.

Query parameterTypeDefaultNotes
limitinteger50Page size
offsetinteger0Rows to skip
curl "https://www.fbautoreplyai.com/api/listings?limit=10&offset=0" \
  -H "X-Unique-Key: your_unique_key"
{
  "success": true,
  "data": {
    "listings": [
      {
        "_id": "listing_id",
        "userId": "user_id",
        "name": "Vintage Camera",
        "description": "Classic film camera in excellent condition",
        "price": "$150",
        "instructions": "Serious buyers only",
        "facebookListingId": "123456789",
        "listingUrl": "https://www.facebook.com/marketplace/item/123456789/",
        "_creationTime": 1234567890000
      }
    ],
    "limit": 10,
    "offset": 0,
    "count": 1
  },
  "message": "Listings retrieved successfully"
}

PUT /api/listings

Updates one listing. Omitted fields are left unchanged.

curl -X PUT https://www.fbautoreplyai.com/api/listings \
  -H "Content-Type: application/json" \
  -H "X-Unique-Key: your_unique_key" \
  -d '{
    "listingId": "listing_id",
    "updates": { "name": "Updated Name", "price": "$200" }
  }'

updates accepts name, description, instructions, and price, all optional strings. The response returns { "success": true, "data": { "listingId": "listing_id" } }.

DELETE /api/listings

Deletes one listing, identified by query parameter.

curl -X DELETE "https://www.fbautoreplyai.com/api/listings?listingId=listing_id" \
  -H "X-Unique-Key: your_unique_key"

POST /api/listings/batch

Imports or updates many listings at once. Listings are matched on listingUrl, so re-sending the same URL updates the existing row rather than creating a duplicate. Processing is asynchronous: the response returns as soon as the import is scheduled.

curl -X POST https://www.fbautoreplyai.com/api/listings/batch \
  -H "Content-Type: application/json" \
  -H "X-Unique-Key: your_unique_key" \
  -d '{
    "listings": [
      {
        "listingUrl": "https://www.facebook.com/marketplace/item/123456789/",
        "name": "Vintage Camera",
        "description": "Classic film camera in excellent condition",
        "instructions": "Serious buyers only",
        "price": "$150"
      }
    ]
  }'
FieldTypeRequiredNotes
listingUrlstringyesMust be a facebook.com URL containing /marketplace/item/
namestringnoDefaults to Listing <id> when omitted
descriptionstringno
instructionsstringnoPer-listing reply guidance
pricestringnoFree-form, e.g. "$150"
{
  "success": true,
  "data": { "importedCount": 1, "importId": "abc123def456" },
  "message": "Batch import scheduled successfully"
}

At least one listing is required. Invalid Marketplace URLs are rejected with 400 before anything is scheduled.

POST /api/listings/csv

Identical request body to /api/listings/batch — it exists so that a spreadsheet export can be replayed field for field. The difference is the __NULL__ sentinel:

  • "__NULL__" clears the field.
  • An omitted field leaves the current value untouched.
curl -X POST https://www.fbautoreplyai.com/api/listings/csv \
  -H "Content-Type: application/json" \
  -H "X-Unique-Key: your_unique_key" \
  -d '{
    "listings": [
      {
        "listingUrl": "https://www.facebook.com/marketplace/item/123456789/",
        "name": "Updated Item Name",
        "description": "__NULL__",
        "price": "$200"
      }
    ]
  }'
{
  "success": true,
  "data": { "processedCount": 1, "importId": "abc123def456" },
  "message": "CSV import scheduled successfully"
}

Notes and limits

  • Imports run asynchronously. A 200 means the work was scheduled, not that every row has landed; re-read the listing with GET /api/listings to confirm.
  • Listing identity is the Marketplace item URL. Two rows with the same listingUrl are the same listing.
  • Reply volume is governed by your plan, not by this API. See pricing.

The same surface is described machine-readably in the OpenAPI 3.1 document.

Chat 👋