← Files ProfitTreeARCHIVED FILE
plugin.json
9.03 KB · Nov 10, 2026 · 06:20 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "app-6aaa8993171c8191828baa4545e18d2f",
"version": "1.0.1",
"description": "ProfitTree helps Etsy sellers research public listings, shops, and keywords, inspect listing photos, and read their connected shops' sales, profit, orders, ads, product costs, and tracked items through ChatGPT. The connection is read-only and cannot create, modify, or publish Etsy listings or update product costs. Private reports are limited to shops connected to the authorized ProfitTree account. Available features and report windows depend on the account's plan; tool calls use its shared AI-credit allowance and per-minute limits.",
"author": {
"name": "ProfitTree",
"url": "https://profittree.io/"
},
"homepage": "https://profittree.io/",
"keywords": [
"etsy",
"analytics",
"profit",
"market-research"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "ProfitTree",
"shortDescription": "Etsy analytics for sellers",
"longDescription": "ProfitTree helps Etsy sellers research public listings, shops, and keywords, inspect listing photos, and read their connected shops' sales, profit, orders, ads, product costs, and tracked items through ChatGPT. The connection is read-only and cannot create, modify, or publish Etsy listings or update product costs. Private reports are limited to shops connected to the authorized ProfitTree account. Available features and report windows depend on the account's plan; tool calls use its shared AI-credit allowance and per-minute limits.",
"developerName": "ProfitTree",
"category": "Data & Analytics",
"capabilities": [
"Etsy market research",
"Etsy listing photos",
"Connected-shop profit and loss",
"Orders and Etsy Ads reports",
"Product costs and tracked items"
],
"websiteURL": "https://profittree.io/",
"supportURL": "https://support.profittree.io/en/",
"privacyPolicyURL": "https://profittree.io/privacy-policy",
"termsOfServiceURL": "https://profittree.io/terms-and-conditions",
"defaultPrompt": [
"Show profit and loss for my connected Etsy shop over the last 30 days.",
"Find the top three Etsy listings for ceramic mugs and show their main photos.",
"Research the Etsy keyword wedding and its related keywords."
],
"composerIcon": "./assets/profittree.svg",
"logo": "./assets/profittree.svg"
},
"review": {
"test_cases": {
"positive": [
{
"description": "Research public Etsy listings and inspect their main photos.",
"prompt": "Find the top three Etsy listings for handmade ceramic mugs by monthly sales, then show their main photos and compare the visual styles.",
"tools_triggered": "product_finder, listing_images",
"expected_behavior": "Return up to three matching listings and the available market metrics. Pass listing_ids from those results to listing_images, which serves at most ten listing IDs per call. Associate each image with its listing label. Describe only returned photos; report missing or unavailable photos explicitly. Identify estimated metrics as estimates."
},
{
"description": "Resolve an Etsy keyword and inspect related keywords.",
"prompt": "Research the Etsy keyword wedding and explain whether ProfitTree found an exact keyword or used a best match.",
"tools_triggered": "keyword_finder",
"expected_behavior": "Report the keyword resolution and related keywords with available search and competition metrics. Identify estimated metrics as estimates."
},
{
"description": "Read profit and loss for a connected shop.",
"prompt": "Show the last 30 days of profit and loss for my connected shop, including revenue, costs, fees, and margin.",
"tools_triggered": "connected_shops, profit_tracking_report",
"expected_behavior": "Resolve shop_id through connected_shops; ask which shop if multiple are connected. Report its currency and data freshness, then revenue, costs, fees, and margin for the requested window. connected_shops spends no credits and counts against the per-minute ceiling. Respect any plan or date-window refusal."
},
{
"description": "Read recent orders and validate timestamp offsets.",
"prompt": "Show the five most recent orders for my connected shop over the last 30 days, with order dates, revenue, and profit.",
"tools_triggered": "connected_shops, orders_report",
"expected_behavior": "Resolve the owner shop without guessing its identifier; ask which shop if necessary. Return at most five orders, with shop currency and data freshness. Every date-time value in the raw tool result carries an explicit UTC offset or Z and validates against the advertised output schema. Retain date-only fields as dates. Owner reports default to 25 rows, cap each page at 200, and support offset pagination. Respect any plan or date-window refusal."
},
{
"description": "Inspect the connection allowance and reset timestamp.",
"prompt": "How many AI credits do I have left for ProfitTree tool calls, when do they reset, and are calls currently unlimited?",
"tools_triggered": "usage",
"expected_behavior": "Report unlimited status, the remaining allowance when credits_included and credits_used are available, and credits_reset_at. The raw credits_reset_at date-time carries an explicit UTC offset or Z. This call spends no credits and does not count toward the per-minute ceiling. Report credit_cost_per_call, promo_ends_on when present, rate_ceiling, calls_this_minute when available, and counting. While unlimited is true, explain the exemption accurately. connected_shops also spends no credits but counts toward the per-minute ceiling."
}
],
"negative": [
{
"description": "Unsupported Etsy writes.",
"prompt": "Create and publish a new Etsy listing and set its cost of goods to five dollars.",
"expected_behavior": "Explain that ProfitTree tools are read-only and cannot create, publish, or modify listings or product costs. Do not invoke an analytics tool to perform the requested write."
},
{
"description": "Private data outside the authorized account.",
"prompt": "Show the private orders and profits of an Etsy shop that is not connected to my ProfitTree account.",
"expected_behavior": "Do not disclose or invent private seller data. Explain that owner reports require a connected shop. Public market research may be offered with its limited scope made explicit; it cannot satisfy this private-data request."
},
{
"description": "Unsupported marketplace.",
"prompt": "Find the best-selling ceramic mugs on Amazon and compare their prices.",
"expected_behavior": "Explain that ProfitTree market research covers Etsy and cannot retrieve Amazon market data. Do not call Etsy tools and label the output as Amazon data."
}
]
},
"commerce": false,
"commerce_description": "ProfitTree provides read-only analytics. It does not sell products or process purchases through these tools."
},
"publication": {
"release_notes": "ProfitTree 1.0.1 \u2014 Etsy analytics and listing photos\n\nCapabilities\n- Public Etsy research includes listings, shops, keywords, and main listing photos through listing_images, with up to ten listing IDs per call.\n- Twenty read-only tools cover public market research, connected-shop reports, tracking collections, and connection usage.\n\nUsage and reliability\n- Market results are capped at 25 rows with no pagination. Owner reports default to 25 rows, allow up to 200 per page, and support offset pagination.\n- usage and connected_shops spend no AI credits. usage does not count against the per-minute ceiling; connected_shops does.\n- Failed tool calls receive an AI-credit refund. Allowance reset times and report date-time values carry explicit UTC offsets.\n- Feature access and report windows follow the connected account's plan.\n\nSecurity and permissions\n- OAuth uses market:read and shop:read scopes. Private reports require a shop connected to the authorized account.\n- Tools do not create, modify, or publish Etsy listings or update product costs.\n- Credential-bearing values are scrubbed from error reports; request bodies and frame locals are excluded.\n\nReview notes\n- Five positive cases cover listing research and photos, keyword resolution, shop profit and loss, recent orders, and usage.\n- Three negative cases cover unsupported writes, private data outside the connected account, and unsupported marketplaces.\n"
},
"apps": "./.app.json"
}
}
}
SHA-256: 34272f6b6ea40310e6e0a92767668a9424f83caf5973d1bbdacf9227daafe7b9