Skip to content
English - United States
  • There are no suggestions because the search field is empty.

Lister Public API Documentation

Getting started

The Lister Public API provides secure, programmatic access to operational and sales data from your Upright Labs Lister account. It enables clients to export data for use in external systems, reporting tools, or custom integrations. All endpoints are authenticated and exclude personally identifiable information (PII) to ensure data security.


Table of Contents

Resources

Reporting

Inventory Management

POS

Admin


 

Authentication

All API calls must supply an X-Authorization header with your generated API token. You can generate an API token from Admin > Developer in Lister.

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 1.56.26 PM

Date formats

Every date uses an ISO8601 format.

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 1.58.22 PM

Rate limits

  • You can request up to 365 days of data in a given report, however calls may time out or return an error if results exceed 10 thousand records. You can prevent this by modifying your query to reduce your results by API call.

Resources

  • All API calls should be made to https://app.uprightlabs.com/api/<resource>
  • For documentation on our downloadable reports, please visit the report section in our help center documentation. These reports return similar data to the API.

Reporting

GET /reports/listings/goodwillfinds

Returns all Goodwillfinds listings created within the timeframe

Params time_start: String time_end: String

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.16.36 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.17.14 PM


GET /reports/listings/shopgoodwill

Returns all Shopgoodwill listings created within the timeframe

Params time_start: String time_end: String

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.11.35 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.12.26 PM


GET /reports/listings/ebay

Returns all eBay listings created within the timeframe

Params time_start: String time_end: String

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.13.32 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.14.51 PM


GET /reports/listings/shopify

Returns all Shopify listings created within the timeframe

Params time_start: String time_end: String

external_market_id: Integer (optional) - The Shopify Product ID to filter by

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.25.07 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.26.02 PM


GET /reports/productivity/operational

Returns operational productivity stats recorded in the timeframe grouped by interval

Params time_start: String time_end: String

interval: String - hour, day, week, month, quarter, year; What timeframe to group stats by.

user_id: Integer (optional) - Filter data by a particular user; defaults to all.

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.28.59 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.29.58 PM


GET /reports/productivity/user

Returns user productivity stats recorded in the timeframe

Params time_start: String time_end: String

hide_inactive_users: Boolean (optional) - Exclude inactive users in the response; defaults to false

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.31.03 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.31.40 PM


GET /reports/paid_orders

Returns all paid orders within the timeframe

Params time_start: String time_end: String

payment_status: String (optional) - One or more of “ALL”, “PENDING”, “UNPAID”, “PAID”, “PARTIALLY_PAID”, “REFUNDED”, “PARTIALLY_REFUNDED” (comma separated; defaults to ALL to if left blank)

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.33.05 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.34.04 PM


GET /reports/order_items

Returns all ordered items paid within a timeframe

Params time_start: String time_end: String

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.34.47 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.35.25 PM


GET /reports/shipments

Returns all shipments created within the timeframe

Params time_start: String time_end: String

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.36.16 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.36.54 PM


GET /reports/refunds

Returns all refunds submitted within the timeframe

Params time_start: String time_end: String

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.37.54 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.38.26 PM


GET /reports/manifest_items

Returns all manifest items created within the timeframe

Params start_date: String end_date: String

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.39.34 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.40.25 PM


GET /manifests

Returns all manifests created within the timeframe

Params page: Integer (optional). Defaults to 1

per_page: Integer (optional) - How many items to return per call. Defaults to 5, max 100.

sort: String (optional) - Each key in the manifest response can be sorted by adding either “.desc” or “.asc”, eg: “sort=created_at.desc”

supplier_id: Integer (optional) - Filter manifests by a particular supplier.

barcode: String (optional) - Filter manifests by a barcode. This supports partial matching.

state: String (optional) - Filter manifests by a status. Options include CREATED, MISSING, READY_FOR_PICKUP, IN_TRANSIT, RECEIVED, PARTIALLY_PROCESSED, PROCESSED

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.41.40 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.43.36 PM


POST /api/manifests

Creates a manifest

  • Params

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.44.46 PM

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.45.36 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.46.45 PM


PUT /api/manifests

Update a manifest

  • Params

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.48.03 PM

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.48.38 PM


GET /event_logs

Returns all event logs in the given timeframe

Params

created_between: String represented as an array - Must provide two timestamps to search event logs. Eg: “created_between[]=2022-08-01&created_between[]=2022-08-03”

user_id: Integer (optional) - Filter logs by a particular user

per_page: Integer - default 20, max 100. How many entries to return in each call.

cursor: String - the information to get the next or last page of results, this is the value provided from the previous call and will return the results based on the previous_cursor or next_cursor token provided

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.49.48 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.50.16 PM


Inventory Management

GET /v4/products (Get products)

Returns a product and all of its listings by product ID.

  • Params

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.50.58 PM

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 2.51.29 PM

  • Response

1-1

2-1

3

4-1

5


GET /v5/products (Get products)

Returns a list of products

Params

tags[]: String represented as an array - Name of the tag to filter by

query: String - Search by title or SKU

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.11.31 PM

  • Response

11

12

13


POST /v5/products (Create products)

Creates either a draft or a live product. Only “title” is required if draft=True.

  • Params

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.16.12 PM

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.16.43 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.17.43 PM


PUT /v4/products (Update product or variants)

  • Params

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.21.21 PM

  • Example

    Update a product

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.22.47 PM

  • Update variant(s)

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.24.12 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.24.40 PM


GET /v5/images/presign

Get info to upload an image to the Lister data storage

Params

  • type: String - the mime-type of the kind of upload, eg “image/jpg”.

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.26.04 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.26.53 PM


Uploading images

Uploading images to Lister takes part in 3 steps

  1. Call our secure presign API to authorize a direct upload to the Lister S3 bucket.
  2. Initiate a direct multipart form upload using the response data from Step 1
  3. Update the product in Lister with the location of the image in S3

To best illustrate ****how to do this, we’ll use an example in JS

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.27.41 PM


POS

POST /api/pos/products_sold

Mark product as sold in store

  • Params

    Where sku-1 and sku-2 are skus of products to mark as sold in store:

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.28.13 PM

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.28.43 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.29.21 PM


Admin

GET /api/users

Get a list of all users ever for your organization

  • Params

    show_all - Optional. Query parameter to include inactive users. When this parameter is omitted, only active teammates will be returned.

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.30.13 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.30.41 PM


GET /api/inventory_locations

Get a list of all inventory locations

  • Example

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.31.19 PM

  • Response

Lister Public API Updates - Google Docs - Google Chrome 2025-10-17 at 3.31.49 PM