Overview
Authentication
Endpoints
Scans
Upload
Results
Filters
Download CSV
Download XLSX
Download JSON
Cancel Scan
Export to GSheets
Convert from UPC
Convert from EAN
Convert from ISBN
ASIN Convert
JSON Schema

Rocket Source API Docs

Please note!

There will be some churn and backwards breaking changes here as we stabilize the API and smooth out the rough corners.

A few current rough edges:

  • money values are returned in cents
  • error messages are probably quite bad

Authentication

Get your API key from the Integrations page in the API Access section.

Your API key should be passed through as a bearer token. So your Authorization header will contain a value of

Bearer: <YOUR TOKEN>

All requests should be made to

https://app.rocketsource.io

Example:

curl -H "Authorization: Bearer YOUR_TOKEN" "https://app.rocketsource.io/api/v3/scans"

Endpoints

Scans
GET
/api/v3/scans

Fetches all completed scans.

Params:

  • pageoptional int - the page to load, default 1
Upload
POST
/api/v3/scans

Uploads a new scan. Accepts a multipart form upload with the following params:

  • filerequired file. Either a csv or xlsx file
  • attributesJSON object, required. See schema below

Attributes schema

interface UploadRequest {
  mapping: {
    // All values in the mapping object are column numbers, 0-indexed.
    id: number;,
    cost: number;,
    supplier_sku?: number,
    supplier_image?: number,
    supplier_pack_quantity?: number,
    map?: number,
    stock_quantity?: number,
    // an array of any custom columns you want to pass through
    custom_columns: number[], 
    discount_per_product?: number,
  };
  options: {
    // one of "US", "CA", "DE", etc. Requires that your seller account have access to the given marketplace
    marketplace_id: string; 
    // a name for your scan
    name: string; 
    discount_supplier?: number;
    custom_columns?: string[];
    header?: boolean;
    multipack_prep_cost?: {
      enabled: boolean;
      firstN: number;
      costForFirstN: number;
      costForRest: number;
    };
    prep_cost?: number;
    multipack_override?: boolean;
    multipack_override_quantity?: number;
    pull_historical_data?: boolean;
  };
}

The most simple upload payload would look like the below JSON. This assumes that your identifiers are in the first column and your costs are in the second.

{
    "mapping": {
        "id": 0,
        "cost": 1,
    },
    "options": {
        "marketplace_id": "US",
        "name": "My Scan"
    }
}
Results
POST
/api/v3/scans/{scan_id}

Returns the result data for a given scan id.

Accepts JSON requests with the following params:

  • per_pageoptional int - the number of products per page, default 50, max 100
  • pageoptional int - the page of results, used to paginate, default 0
  • tableTypeoptional enum - either products or errors, default products
  • sortoptional string - column to sort on, ie profit or -profit for descending order
  • filteroptional array of Filter items

Filter items are JSON objects with the following structure:

[
  {
    "name": "financials.profit",
    "operator": ">",
    "value": 5
  }
]

See the Filters section for complete documentation on available fields, operators, and nested field syntax.

Filter Builder

Build filters to narrow down scan results. Select a field, operator, and value to generate the JSON filter object.

JSON filter array (filters combined with AND):
[
  {
    "name": "financials.roi",
    "operator": ">",
    "value": 0.25
  }
]

Notes

  • Prices: Use dollars (e.g., 5 for $5.00)
  • Percentages: Use decimals (e.g., 0.25 for 25% ROI)
  • String comparisons are case-insensitive
  • Historical periods: d30, d60, d90, d180
Delete Scan
DELETE
/api/v3/scans/{scan_id}

Deletes a scan by it's id.

Export to CSV
POST
/api/v3/scans/{scan_id}/download?type=csv

Download a CSV file of your resulting data

Export to XLSX
POST
/api/v3/scans/{scan_id}/download?type=xlsx

Download a XLSX file of your resulting data

Export to JSON
POST
/api/v3/scans/{scan_id}/download?type=json

Download your scan results as a JSON file. Returns an array of product objects with all available data fields.

Request Format (optional - omit for all results)

FieldTypeDescription
filterArrayArray of filter objects (see filter schema above)
sortStringField to sort by. Prefix with - for descending order
pageNumberPage number (default: 1)
per_pageNumberResults per page (default: 50, max: 100)

Request Example

{
  "filter": [
    {
      "name": "profit",
      "operator": ">",
      "value": 500
    },
    {
      "name": "roi",
      "operator": ">=",
      "value": 30
    }
  ],
  "sort": "-profit",
  "page": 1,
  "per_page": 100
}

Response Format

Returns an array of product objects. All monetary values are in cents. Percentages (margin, ROI) are in basis points (30% = 3000).

[
  {
    "id": 12345,
    "asin": "B001GRWOZ0",
    "amazon_title": "Example Product Title",
    "brand": "Example Brand",
    "category": "Electronics",
    "rank": 5432,
    "buybox_price": 2999,
    "inputs": {
      "identifier": "123456789012",
      "cost": 1500,
      "stock": 100,
      "supplier_sku": "SKU-123",
      "supplier_pack_quantity": 1
    },
    "financials": {
      "profit": 850,
      "margin": 2833,
      "roi": 5667,
      "prep_cost": 50,
      "inbound_shipping": 100,
      "net_revenue": 2500
    },
    "amazon_fees": {
      "referral_fee": 450,
      "fba_fees": 354,
      "per_item_fee": null,
      "variable_closing_fee": null
    },
    "dimensions": {
      "package_dimensions": {
        "length": 10.5,
        "width": 8.0,
        "height": 3.0,
        "weight": 1.2
      },
      "item_dimensions": {
        "length": 9.0,
        "width": 7.0,
        "height": 2.5,
        "weight": 0.8
      }
    },
    "identifiers": {
      "upc": ["123456789012"],
      "ean": ["1234567890123"]
    },
    "size_tier": "Small Standard",
    "lowest_price_new_fba": 2899,
    "lowest_price_new_fbm": 2799,
    "new_fba_offers_count": 5,
    "new_fbm_offers_count": 12,
    "total_offers_count": 17,
    "competitive_sellers": 8,
    "is_hazmat": false,
    "is_meltable": false,
    "is_adult": false,
    "small_and_light_eligible": true,
    "inbound_eligibility": {
      "eligible": true,
      "updated_at": 1704067200,
      "ineligible_codes": []
    }
  }
]

Key Response Fields

FieldTypeDescription
asinStringAmazon Standard Identification Number
amazon_titleStringProduct title from Amazon
buybox_priceNumberBuy Box price in cents
rankNumberBest Sellers Rank
inputsObjectYour input data (cost, stock, supplier info)
financialsObjectCalculated profit, margin, ROI
amazon_feesObjectFBA fees, referral fees, etc.
dimensionsObjectPackage and item dimensions
identifiersObjectUPC, EAN, ISBN, GTIN codes
inbound_eligibilityObjectFBA inbound eligibility status
Cancel Scan
GET
/api/v3/scans/{scan_id}/cancel

Cancels an ongoing scan by its id.

Export to GSheets
POST
/api/v3/scans/{scan_id}/export

Exports your scan results to Google Sheets. Requires the Google Sheets integration to be set up.

Convert from UPC
POST
/api/v3/convert

Convert Universal Product Codes (UPC) to find matching ASINs. Returns ASIN and other identifiers.

Note: Items without a matching ASIN will be omitted from the response.

Request Format

FieldTypeDescriptionConstraints
marketplaceStringThe marketplace code (e.g., "US", "UK")Required
idsArray of StringsList of UPC values to convertMin: 1, Max: 20 items

Request Example

{
  "marketplace": "US",
  "ids": [
    "0385086954",
    "0062316095"
  ]
}

Response Example (ASIN first, followed by other identifiers)

{
  "0385086954": [
    "B001GRWOZ0",
    "9780385086950"
  ],
  "0062316095": [
    "B00ABC1234",
    "9780062316098"
  ]
}
Convert from EAN
POST
/api/v3/convert

Convert European Article Numbers (EAN) to find matching ASINs. Returns ASIN and other identifiers.

Note: Items without a matching ASIN will be omitted from the response.

Request Format

FieldTypeDescriptionConstraints
marketplaceStringThe marketplace code (e.g., "DE", "UK")Required
idsArray of StringsList of EAN values to convertMin: 1, Max: 20 items

Request Example

{
  "marketplace": "DE",
  "ids": [
    "9780385086950",
    "5901234123457"
  ]
}

Response Example (ASIN first, followed by other identifiers)

{
  "9780385086950": [
    "B001GRWOZ0",
    "0385086954"
  ],
  "5901234123457": [
    "B00XYZ789AB"
  ]
}
Convert from ISBN
POST
/api/v3/convert

Convert International Standard Book Numbers (ISBN) to find matching ASINs. Returns ASIN and other identifiers.

Note: Items without a matching ASIN will be omitted from the response.

Request Format

FieldTypeDescriptionConstraints
marketplaceStringThe marketplace code (e.g., "US", "UK")Required
idsArray of StringsList of ISBN values to convertMin: 1, Max: 20 items

Request Example

{
  "marketplace": "US",
  "ids": [
    "1501142976",
    "0062316095"
  ]
}

Response Example (ASIN first, followed by other identifiers)

{
  "1501142976": [
    "B00ISBN123",
    "9781501142970"
  ],
  "0062316095": [
    "B00ISBN456",
    "9780062316098"
  ]
}
ASIN Convert
POST
/api/v3/asin-convert

Returns all the product identifiers (UPC, EAN, etc.) for the specified ASINss.

Request Format

FieldTypeDescriptionConstraints
marketplaceStringThe marketplace code (e.g., "US", "UK", "CA")Required
asinsArray of StringsList of ASINs to convertMin: 1, Max: 1,000 items
{
  "marketplace": "US",
  "asins": [
    "B001GRWOZ0",
    "B001GRWOZ9"
  ]
}

Response Format

The response is a map where:

  • Keys are the input ASINs
  • Values are objects containing various identifier types (UPC, EAN, ISBN, etc.)
  • ASINs without corresponding identifiers will not be included in the response
{
  "B001GRWOZ0": {
    "upc": ["0385086954"],
    "ean": ["9780385086950"],
    "isbn": ["1501142976"]
  },
  "B001GRWOZ9": {
    "upc": ["0385086954"],
    "ean": ["9780385086950"],
    "isbn": ["1501142976"]
  }
}

JSON Schema Reference

Complete reference for the JSON export response schema. Each product in the response array contains the following structure.

Product Object

FieldTypeDescription
idNumberInternal product ID
asinStringAmazon ASIN
amazon_titleStringProduct title from Amazon
brandStringProduct brand
colorStringProduct color
size_nameStringSize variation name
categoryStringAmazon category
rankNumberBest Sellers Rank (BSR)
buybox_priceNumberBuy Box price (cents)
lowest_price_new_fbaNumberLowest new FBA price (cents)
lowest_price_new_fbmNumberLowest new FBM price (cents)
lowest_price_used_fbaNumberLowest used FBA price (cents)
lowest_price_used_fbmNumberLowest used FBM price (cents)
amazon_pack_quantityNumberUnits per Amazon listing
size_tierStringFBA size tier classification
competitive_sellersNumberNumber of competitive sellers
new_fba_offers_countNumberCount of new FBA offers
new_fbm_offers_countNumberCount of new FBM offers
total_offers_countNumberTotal offer count
number_of_variationsNumberNumber of product variations
parent_asinStringParent ASIN for variations
is_hazmatBooleanHazardous material flag
is_meltableBooleanMeltable product flag
is_adultBooleanAdult product flag
is_brand_blocklistedBooleanBrand is on blocklist
small_and_light_eligibleBooleanFBA Small and Light eligible
units_per_monthNumberEstimated monthly unit sales
sales_per_monthNumberEstimated monthly revenue (cents)
profit_per_monthNumberEstimated monthly profit (cents)
inputsObjectYour input data (see below)
financialsObjectCalculated financials (see below)
amazon_feesObjectAmazon fee breakdown (see below)
dimensionsObjectProduct dimensions (see below)
identifiersObjectProduct identifiers (see below)
inbound_eligibilityObjectFBA eligibility (see below)
imagesArrayProduct images by marketplace
errorsArrayProcessing errors, if any
flagsArrayProduct flags/warnings

inputs Object

FieldTypeDescription
identifierStringOriginal input identifier (UPC, ASIN, etc.)
costNumberYour cost per unit (cents)
stockNumberAvailable stock quantity
mapNumberMinimum advertised price (cents)
supplier_titleStringProduct title from supplier
supplier_skuStringSupplier SKU
supplier_imageStringSupplier image URL
supplier_pack_quantityNumberUnits per supplier pack
discount_costNumberCost after discounts (cents)
total_cogsNumberTotal cost of goods sold (cents)
custom_columnsArrayYour custom column values

financials Object

FieldTypeDescription
profitNumberCalculated profit (cents)
marginNumberProfit margin (basis points, 3000 = 30%)
roiNumberReturn on investment (basis points)
net_revenueNumberRevenue after fees (cents)
prep_costNumberPrep cost per unit (cents)
inbound_shippingNumberInbound shipping cost (cents)
fba_storage_feesNumberMonthly FBA storage fees (cents)

amazon_fees Object

FieldTypeDescription
referral_feeNumberAmazon referral fee (cents)
fba_feesNumberFBA fulfillment fee (cents)
per_item_feeNumberPer-item fee if applicable (cents)
variable_closing_feeNumberVariable closing fee (cents)
inbound_placement_feeNumberFBA inbound placement fee (cents)
errorStringFee calculation error, if any

dimensions Object

FieldTypeDescription
package_dimensionsObjectlength, width, height (inches), weight (lbs)
item_dimensionsObjectlength, width, height (inches), weight (lbs)

identifiers Object

FieldTypeDescription
upcArrayUniversal Product Codes
eanArrayEuropean Article Numbers
isbnArrayInternational Standard Book Numbers
gtinArrayGlobal Trade Item Numbers
janArrayJapanese Article Numbers

inbound_eligibility Object

FieldTypeDescription
eligibleBooleanWhether product is FBA inbound eligible
updated_atNumberUnix timestamp of last eligibility check
ineligible_codesArrayFBA ineligibility reason codes (e.g., "FBA_INB_0004")