# eBay, Etsy & Amazon FBA Fee Calculator (MCP + API) (`vncntlabs/shoptrueprofit-fee-mcp`) Actor

eBay, Etsy and Amazon FBA/FBM fee calculator for AI agents and batch runs: seller fees, profit, margin, break-even and the price you need for a target margin. MCP server (Standby) or API. ShopTrueProfit fee engine with itemized fees, sources and fee-table dates on every result.

- **URL**: https://apify.com/vncntlabs/shoptrueprofit-fee-mcp.md
- **Developed by:** [VNCNT Labs](https://apify.com/vncntlabs) (community)
- **Categories:** E-commerce, AI, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 fee calculations

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## ShopTrueProfit Fee & Profit MCP: Etsy, eBay and Amazon FBA/FBM

**Give your AI agent exact marketplace fee math.** Etsy, eBay.com and Amazon.com (FBA and FBM) seller fees, profit, margin, break-even price and "what price do I need for a 30% margin", in one MCP server.

It runs the ShopTrueProfit fee engine. Every answer comes with an itemized fee breakdown, the assumptions used, the fee-table version and the date it was checked, and links to the official Etsy, eBay and Amazon fee pages so a person can double-check it.

- **13 tools**: fees, profit and target price for each marketplace, a 3-way comparison, and free category and region lookups
- **Current 2026 tables**: Amazon's 2026 FBA cards (standard, apparel, dangerous goods) with **peak-season rates (Oct 15 to Jan 14)**, the 3.5% fuel & logistics surcharge, monthly storage, the 37 referral categories with minimums and closing fees; eBay's 11 final value fee categories with per-item tiers, the $0.30/$0.40 per-order fee, Promoted Listings, the international fee and performance surcharges; Etsy's listing, transaction, payment processing for 12 regions, and Offsite Ads with the $100 cap
- **Built for agents**: tight JSON schemas with enums, a one-line `summary` on every result, and clear errors. Bad input is rejected with a message naming the field. It is never quietly "fixed".
- **Deterministic and private**: pure math. No scraping, no logins, no marketplace API keys, and nothing you send is stored.

> Not affiliated with Etsy, eBay or Amazon. Results are estimates from published fee schedules; your marketplace statement is the final word.

### Tools

| Tool | What it answers | Billing |
|---|---|---|
| `etsy_fees` | What does Etsy take from this order? | 1 event |
| `ebay_fees` | What does eBay take from this order? | 1 event |
| `amazon_fees` | Amazon referral + FBA (or FBM) fees for one unit | 1 event |
| `etsy_profit` | Profit, margin and break-even price on Etsy, given costs and ads | 1 event |
| `ebay_profit` | Same for eBay | 1 event |
| `amazon_profit` | Same for Amazon, FBA or FBM | 1 event |
| `etsy_target_price` | Lowest price that breaks even and that reaches X% margin on Etsy | 1 event |
| `ebay_target_price` | Same for eBay (handles the $10 per-order step and whole-amount bands) | 1 event |
| `amazon_target_price` | Same for Amazon (handles FBA price bands and referral bands) | 1 event |
| `compare_marketplaces` | The same product on Etsy, eBay and Amazon, ranked by profit | 1 event |
| `list_ebay_categories` | eBay category ids and fee rules | free |
| `list_amazon_categories` | Amazon category ids, referral rates, minimums, size tiers | free |
| `list_etsy_regions` | Etsy Payments regions, currencies, processing rates | free |

Every argument is described in each tool's input schema, which your MCP client shows (tools/list). Money amounts are in dollars with at most 2 decimal places (`24.99` means $24.99), and percent arguments are percents (`8.25` means 8.25%).

### Example

Ask your agent: *"I sell a $25 item on eBay with $5 shipping. It costs me $8 and the label is $4. I promote at 5%. What do I make, and what should I charge for a 30% margin?"*

The agent calls `ebay_profit`:

```json
{ "price": 25, "shipping_charged": 5, "item_cost": 8, "shipping_label_cost": 4, "promoted_listings_pct": 5 }
```

and gets back (shortened):

```json
{
  "summary": "eBay profit $12.02 on $30.00 revenue (40.07% margin) after $5.98 fees and $12.00 costs. Break-even price $10.24 per unit.",
  "fees": { "total": 5.98, "percent_of_revenue": 19.93, "lines": [
    { "code": "final_value_fee", "amount": 4.08, "basis": "Most categories: 13.6% on the portion up to $7,500; ..." },
    { "code": "per_order_fee", "amount": 0.40, "basis": "order total $30.00 > $10" },
    { "code": "promoted_listings", "amount": 1.50, "basis": "5% of $30.00" } ] },
  "profit": { "profit": 12.02, "margin_pct": 40.07, "break_even_price": 10.24 },
  "assumptions": ["eBay.com (US) seller WITHOUT a Basic/Premium/Anchor/Enterprise Store ...", "..."],
  "fee_table": { "id": "ebay-us-2026-10-16", "verified_on": "2026-10-16" },
  "sources": [{ "title": "eBay: Selling fees", "url": "https://www.ebay.com/help/selling/fees-credits-invoices/selling-fees?id=4822" }]
}
```

### Connect

#### Hosted on Apify (MCP over streamable HTTP)

Endpoint: `https://<standby-url-from-the-Endpoints-tab>/mcp`, with header `Authorization: Bearer <your Apify API token>`.

```json
{
  "mcpServers": {
    "shoptrueprofit-fees": {
      "type": "streamable-http",
      "url": "https://<standby-url>/mcp",
      "headers": { "Authorization": "Bearer ${APIFY_TOKEN}" }
    }
  }
}
```

#### Batch runs on Apify

Start the Actor normally with input `{ "tool": "...", "arguments": { ... } }`, or many at once with `{ "calls": [ { "tool": "...", "arguments": { ... } } ] }` (up to 1,000). Each result is one dataset item with `ok`, `result` or `error`. Rejected items are listed with the reason and are not charged.

### Pricing

Pay per event: **one `fee-calculation` event per successful calculation** (one MCP tool call, or one batch item). The `list_*` lookups and rejected inputs are free. On Apify's Standby (MCP) endpoint, Apify also bills its small platform usage for the time the server runs; see Apify's [Standby billing](https://docs.apify.com/actors/running/standby#are-the-standby-runs-billed-differently).

### What's included, what isn't

Included and kept current: everything in the fee tables listed above. Each result's `assumptions` lists exactly what was applied.

Not modelled (each result says so): eBay Store subscription rates; Etsy Ads cost-per-click, Etsy Plus, currency conversion and the Regulatory Operating Fee; Amazon low-inventory, inbound placement, returns processing, aged-inventory and storage-utilization surcharges, lithium battery fees, removal/disposal, the Overmax handling fee, and FBA rates after Jan 14, 2027 (not yet published; 2026 non-peak rates are used, with a warning). Ad spend you pay per click can be passed in as `ad_spend`.

### Accuracy

- The fee engine is a verbatim copy of the ShopTrueProfit web app's fee engine, never edited by hand, and every build verifies it by SHA-256. The test suite compares this server's output field by field with the app's own functions on 1,700+ cases, including Amazon's and eBay's own published worked examples.
- Fee tables were verified against the official pages on the date in `fee_table.verified_on` (Etsy 2026-10-13, eBay and Amazon 2026-10-16).

### Privacy

- Your tool arguments are processed in memory to compute the answer and are not stored by the server. Apify runs the infrastructure and handles your account, billing and platform logs under [Apify's privacy policy](https://docs.apify.com/legal/privacy-policy). Batch runs write results to your own Apify dataset, which you control and can delete.
- No personal data is needed. Inputs are prices, costs, dimensions and categories.
- Contact and privacy questions: open an issue on this Actor's Issues tab.

### License

MIT license.

# Actor input Schema

## `tool` (type: `string`):

Which calculation to run. Use "calls" below to run several in one go.

## `arguments` (type: `object`):

Arguments for the tool, exactly as the MCP tool takes them. Percent fields are percents (8.25 = 8.25%); money is in USD (or the Etsy region currency). See the README for every field.

## `calls` (type: `array`):

Run many calculations in one run: \[{"tool": "etsy_profit", "arguments": {...}}, ...]. Up to 1,000 per run. Each result is one dataset item.

## Actor input object example

```json
{
  "tool": "compare_marketplaces",
  "arguments": {
    "price": 29.99,
    "shipping_charged": 5,
    "item_cost": 9,
    "shipping_label_cost": 4.5,
    "target_margin_pct": 30,
    "amazon": {
      "category": "home-kitchen",
      "fulfillment": "fba",
      "length_in": 10,
      "width_in": 6,
      "height_in": 3,
      "weight_lb": 1.2,
      "inbound_cost": 0.5
    }
  },
  "calls": []
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "tool": "compare_marketplaces",
    "arguments": {
        "price": 29.99,
        "shipping_charged": 5,
        "item_cost": 9,
        "shipping_label_cost": 4.5,
        "target_margin_pct": 30,
        "amazon": {
            "category": "home-kitchen",
            "fulfillment": "fba",
            "length_in": 10,
            "width_in": 6,
            "height_in": 3,
            "weight_lb": 1.2,
            "inbound_cost": 0.5
        }
    },
    "calls": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("vncntlabs/shoptrueprofit-fee-mcp").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "tool": "compare_marketplaces",
    "arguments": {
        "price": 29.99,
        "shipping_charged": 5,
        "item_cost": 9,
        "shipping_label_cost": 4.5,
        "target_margin_pct": 30,
        "amazon": {
            "category": "home-kitchen",
            "fulfillment": "fba",
            "length_in": 10,
            "width_in": 6,
            "height_in": 3,
            "weight_lb": 1.2,
            "inbound_cost": 0.5,
        },
    },
    "calls": [],
}

# Run the Actor and wait for it to finish
run = client.actor("vncntlabs/shoptrueprofit-fee-mcp").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "tool": "compare_marketplaces",
  "arguments": {
    "price": 29.99,
    "shipping_charged": 5,
    "item_cost": 9,
    "shipping_label_cost": 4.5,
    "target_margin_pct": 30,
    "amazon": {
      "category": "home-kitchen",
      "fulfillment": "fba",
      "length_in": 10,
      "width_in": 6,
      "height_in": 3,
      "weight_lb": 1.2,
      "inbound_cost": 0.5
    }
  },
  "calls": []
}' |
apify call vncntlabs/shoptrueprofit-fee-mcp --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,vncntlabs/shoptrueprofit-fee-mcp"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/3fdvhauY2Y2AILUbt/builds/wpTlbp5iVOWOOP5FG/openapi.json
