# Write your AppSumo listing with your AI assistant
This page is the complete brief for an AppSumo listing: every field, its limits, our approval rules, and the exact format to return. Every field name matches a labelled field in your editor, so answers paste straight in. It’s written for you and your AI assistant: paste this page’s URL into any assistant that can browse, and it has everything it needs.
## Connect the AppSumo MCP (optional)
AppSumo has an MCP server, so an assistant that supports it can create your listing, fill it in, and submit it for review without you pasting anything.
### What it can do for you
- Start a listing from your product URL, and draft it from what is on your site
- Pick up a listing you already started here, instead of beginning a new one
- Write and revise any field on the listing as you talk it through
- Make your hero image and your feature screenshots, and put them on the listing, whether they are already online or a file on its own disk
- Look up the right categories, integrations, and comparisons so nothing is invented
- Hand you a link to the draft each time it finishes, so you read the listing before anything is submitted
- Set up and test licensing for a licensing deal: put your webhook and redirect URLs on file, then run the live tests until they pass
- Show you the product page as a buyer will see it, before anything is submitted
- Upload your redemption codes CSV for a codes deal, or remove one already on the listing
- Submit the finished listing for review once you have approved it
- Open a new version of a listing that is already live, so it can be changed without taking it down
- Read your reviews and questions and reply to them, after you agree the wording
- Report how a live listing is selling: sales, revenue and traffic over a date range
Setup instructions for each client live at https://partners.appsumo.com/docs/agent-setup.md.
## Instructions for AI agents
1. You're helping a partner (a founder or marketer) write their AppSumo marketplace listing. Assume their business information (product, features, pricing, audience) is already in your conversation. Don't ask for things you already know.
2. Ask how they want to work, first. Two ways to use this page: (a) if you can browse and fill web forms, offer to open the partner’s draft listing and enter each field for them; (b) otherwise, produce the copy-paste output at the bottom and they’ll paste it in themselves. Ask which they prefer before drafting, and default to the copy-paste output if you can’t reliably fill the form.
3. Every field name on this page matches a labelled field in the partner’s editor. Write to those labels so each answer pastes straight into the matching input. Follow each field’s spec exactly (character limits, counts).
4. Gather what’s missing in one round of questions, then draft. Apply the two recommendations below up front, not after.
5. For dropdown fields (team size, stage, funding), pick one of the exact options listed. For searchable fields (category, alternative to, integrations, best for), tell the partner the closest option to choose from the list; don’t invent values.
6. Make the images yourself. They are not the partner’s homework: the Media section below is your brief, and a listing with no hero and no gallery does not pass review. Skip only what the partner has to connect themselves, the company website (auto-filled) and Trust signals (real verification URLs). Never invent a URL.
7. If you are writing to the listing over the MCP tools rather than handing back copy, nothing you write reaches the partner on its own. Every time you finish a draft or a round of edits, give them the link to their listing, /self-submission/{submission_id}/build?from=agent on the site you fetched this page from, and tell them to reload it if they already have it open, since the editor reads the draft once when it opens. Wait for them to look at it and approve before you submit it for review.
### Voice rules for everything you write
- Sentence case everywhere, never Title Case. No emoji, no exclamation marks. No periods on standalone labels or button-length copy.
- No em dashes. They are the strongest tell of AI-written copy. Use a comma, colon, period, or parentheses instead, every time.
- Ban the marketing-filler vocabulary: seamless, robust, revolutionary, cutting-edge, game-changing, world-class, leverage, unlock, empower, elevate, "not just X, it’s Y", and "-ing" tails like showcasing / enhancing / streamlining. They carry no information.
- Write like a person who has used the product, not a press release. A specific fact beats an abstract claim: "generates a 50-page PRD from a one-line idea" beats "streamlines product creation".
- This is a lifetime deal, so pricing lives only in the Pricing fields. Never mention monthly or annual pricing, trials, "no credit card required", or a "free tier" in any copy, even if that is how the product sells on its own site. Describe what the product does, not what it normally costs.
## The two recommendations that matter most
### Aim for an entry tier at $49 or less
This is a lifetime deal: buyers pay once and keep access forever. It isn’t a requirement, but deals with a first tier at $49 or less convert far better and have a much stronger chance of acceptance. Scope the entry tier by limiting volume (seats, projects, usage), never by cutting the core value that makes the product worth buying. Aim for 70%+ off the partner’s regular price.
### Make the images, don’t wait on them
Missing images are the #1 reason a listing stalls, usually with the partner waiting on a designer who is waiting on the partner. Don’t hand this back as homework. The Media section is a complete brief, exact dimensions and what each image should show, so build the hero and one image per feature story, show the partner what you made, and redo anything they don’t like.
## 1. Basic information
The first thing buyers see. It states who the product is for and the core outcome, concretely, without hype. It also carries the at-a-glance chips (alternative-to, integrations, best-for), each picked from AppSumo’s searchable lists rather than free text. Alternative-to and best-for are required before you can submit; integrations is optional.
| Field | Spec | Example | Writes to |
| --- | --- | --- | --- |
| Product name | 3 to 50 characters. The real product name buyers see; drop marketing prefixes like "WP" or "Go". It also forms the page title ("Laneflow \| AppSumo"), which has to fit in 60. | Laneflow | product.name |
| Category | Pick one category (and a subcategory if offered) from the searchable list. Required. Choose the closest existing option; you can’t type a new one. Writing this through the API: send option SLUGS, each as an array of one. product.categories is a separate display-name field and does not drive the picker. | Project management → ["project-management"] | product.attributes.category + .subcategory + .group (arrays of slugs) |
| Tagline | 3 to 100 characters. It sits on the pricing card and doubles as the search/SEO line, so lead with the words a buyer would actually search, not a clever slogan. | Client retainer tracking for agencies | story.subheader |
| Unique selling proposition | 15 to 40 characters. The one-line reason this beats the obvious alternative. It is the hero headline, so keep it to a headline. | Track the money behind the tasks | story.value_prop |
| Intro sentence | One or two sentences, up to 205 characters. It sits under the images and above the TL;DR, and is the only place on the page that names the problem the product solves: the pain first, then how this fixes it. | Agencies find out a retainer is overspent when the invoice is due. Laneflow shows the burn the moment anyone logs time. | story.tldr_overview |
| TL;DR | Exactly 2 bullets, never more, each up to 128 characters. Verb-led, concrete, and at least 3 words: mine the two key ideas from the body copy rather than writing a label like "Great product". | See remaining retainer hours the moment you log time
Send a branded client portal link in one click | story.highlights[].highlight |
| Alternative to | Up to 3 well-known products buyers already understand. Pick from the list. Writing this through the API: send each option’s slug, not its display name. An unrecognised value is accepted and then dropped when the listing is approved. | ["asana", "harvest", "mondaycom"] | product.attributes.alternative_to |
| Integrations | Optional. Up to 5 tools it connects to, most-recognized first. Pick from the list. Slugs, not display names, same rule as Alternative to. | ["slack", "stripe", "google-calendar", "quickbooks"] | product.attributes.integrations |
| Best for | Up to 3 buyer types. Pick from the list. Slugs, not display names, same rule as Alternative to. | ["freelancers", "small-agencies"] | product.attributes.best_for |
**Best practices**
- Lead with the outcome, not the category ("Track every client retainer in one place", not "A project management tool").
- The tagline is doing SEO work: put the term a buyer would search for at the front.
- Specific beats impressive: "syncs invoices to Stripe in one click" outperforms "seamless financial management".
## 2. Media (shot list)
Every image slot, with exact specs. Make these rather than asking the partner for them. One rule outranks the rest: every image must be an accurate representation of the real product. Show real UI, whether you captured it from the running product or rebuilt it faithfully from the product’s own code, site, or design system. Never show a screen the product cannot actually produce, and never imply a capability it doesn’t have. Beyond that: clean product UI on a plain background, no device frames, no heavy text overlays.
| Field | Spec | Example | Writes to |
| --- | --- | --- | --- |
| Icon | PNG or JPG under 5MB, shortest side at least 50px — 512×512 recommended. Any shape works — we pad it to a square for you. The logo mark only, without the company name. | | assets.logos.logo |
| Logo | The full horizontal logo, with the product name in it. PNG or JPG under 5MB, at least 112px wide — 225px or wider and transparent PNG recommended. We pad it to fit between 4:1 and 10:1. Required for Launchpad and Select listings, optional for Radar. Use the partner’s real logo, never one you designed. | | assets.logos.logo_long |
| Hero image | At least 960×540, under 5MB — we auto-fit it to 16:9 at 1920×1080. The single screen that best shows what the product does, and the image worth the most care: the real interface, framed on a plain background, showing realistic data rather than an empty state. Needs alt text (up to 255 chars). | | assets.main_image |
| Product screenshots | Up to 4 images (aim for the full 4, which is what approval expects), same at-least-960×540 spec as the hero and auto-fit the same way. One per feature story, in the same order, each showing the screen that story is actually about. Each needs alt text (up to 255 chars). | | assets.additional_images |
**Best practices**
- Build the gallery from your Highlighted features: one image per story, same order, each showing the screen that story describes.
- Fill every screen with realistic data. Empty states, lorem ipsum, and "Test User 1" read as a product nobody uses.
- Write each alt text as a short noun phrase of about 4 words ("Retainer dashboard"), which doubles as accessibility text.
- Getting an image onto the listing: upload_image takes a public image URL and the server fetches it, so an image that only exists on your own disk can’t go up that way. Save those as files named for the slot they fill (hero.png, feature-1.png), tell the partner where they are, and ask them to upload them in the editor’s Media section.
- Show the partner every image before you submit, and say how you made each one. They know the product better than you do and will catch a screen that misrepresents it.
## 3. Highlighted features
2 to 4 feature stories, each paired with one gallery screenshot. Lead with the outcome; mention the mechanism second. Required, and it carries most of the PDP body.
| Field | Spec | Example | Writes to |
| --- | --- | --- | --- |
| Section header | Up to 100 characters. The heading above the stories (e.g. "Why teams choose Laneflow"). | Everything your retainers need, in one place | story.features.title |
| Title (per story) | Up to 100 characters, about two lines. A benefit, not a feature name ("Know what’s left on every retainer", not "Dashboard"). | Know what’s left on every retainer, instantly | story.features.items[].title |
| Bullets (per story) | 2 to 5 per story, each up to 500 characters. Bold the lead-in verb phrase, no trailing period. | **Log time** and the retainer bar updates in real time | story.features.items[].bullets |
| Story image | Required — one per story, and it comes from the Media gallery, so build the two together. Story 1 pairs with gallery image 1 and so on: the order is the pairing. | Dashboard showing a retainer at 40% remaining | story.features.items[].image_url |
## 4. Pricing
The section most likely to slow approval, and the one with the most decisions. Walk the partner through it in three steps: pick a pricing model, set the tiers and prices, then write the feature rows so a buyer instantly sees what changes between tiers.
### Step 1: choose a pricing model, Codes or Licensing
| | Codes | Licensing |
| --- | --- | --- |
| How it works | Buyer stacks multiple codes to unlock more. 1 code is the base; each extra code raises a limit. | Buyer picks one named tier (e.g. Solo, Studio, Agency) at a set one-time price. |
| Best when | Value scales along one clear number: seats, projects, contacts, sites. More of the same. | Higher tiers unlock different capabilities, not just more volume (API access, white-label, SSO). |
| In the editor | Pricing model "Codes": one code price and an optional original (crossed-out) price, plus optional stacking with a max code count of 1 to 10. | Pricing model "Licensing": 1 to 10 named tiers side by side with a feature matrix. |
| Avoid when | Tiers differ by features, not quantity. Stacking can’t express that. | The only difference is a single number going up. A matrix would feel padded. |
_Quick test: if you can finish the sentence "each code gives you ___ more ___", use Codes. If upgrades unlock different things, use Licensing._
### Step 2: set the tiers and prices
| Field | Spec | Example | Writes to |
| --- | --- | --- | --- |
| Tier name | Up to 200 characters. 1 to 10 tiers. | Solo, Studio, Agency | plans[].public_name |
| Price | One-time price, $1 to $9,999. Aim for an entry tier at $49 or less. | $49, $99, $199 | plans[].price |
| Original price | Optional. The comparative price shown crossed out beside the deal price. Must be greater than the price. | $588 | plans[].original_price |
| Mark as Recommended | Optional. Flags one tier as the suggested pick (only when you have more than one tier). | | |
### Step 3: write features that make the difference obvious
This is where most partners get vague. Write the value that changes across tiers, not a checkmark. Give the partner 4 to 25 feature rows (label up to 128 characters) and fill the per-tier value for each. Mark a row "in all plans" when it doesn’t change.
| Feature (label) | Solo $49 | Studio $99 | Agency $199 |
| --- | --- | --- | --- |
| Team seats | 1 | 3 | 10 |
| Active retainers | 5 | 25 | Unlimited |
| Client portals | Included | Included | Included + white-label |
| API access | — | — | Included |
**Guidance to give the partner as they write each row**
- Use concrete values, not checkmarks. "5 / 25 / Unlimited" tells a buyer more than three ticks. Reserve included/blank only for on-or-off capabilities.
- Every row should change across tiers. If a feature is identical in all tiers, mark it "in all plans" instead of spending a comparison row on it.
- Label by outcome, then value. "Active retainers: 5" beats "Retainer limit (tier-gated): 5".
- For Codes: each column is 1 code, 2 codes, 3 codes, and values are what one more code buys ("+5 seats per code"). Set the max code count (1 to 10) under stacking.
- Keep it to 4 to 25 rows. Pick the differences that drive an upgrade decision; drop the rest.
- A row can carry an optional tooltip (up to 255 characters): the hover help a buyer reads from the question mark beside the label. Use it when the label needs a definition ("a seat is one teammate with their own login"), not to repeat the value. Through the API it is the `tooltip` key on a `pricing_table_matrix` row, not on `plans[].features[]` — that list has no tooltip field and drops one silently. Send the row again with a new `tooltip` to change it, or `null` to remove it; omitting the key keeps whatever is stored.
- Writing this through the API: each row is an entry in plans[].features[], and the label key is `feature`, not `name`. A row sent as {"name": ...} is rejected with "This field is required", which is the API telling you the key is wrong rather than the value.
**If the partner’s entry price is over $49**
- Explain the trade-off: staying above $49 is allowed, but a lower entry price improves acceptance odds and conversion.
- Ask which parts of the product are expensive to serve forever.
- Propose an entry price at $49 or less, scoped by volume limits, and let the partner decide.
- Rebalance the remaining tiers so each upgrade has one obvious reason.
### Step 4: have redemption ready
- Codes: a redemption URL (where buyers go to redeem a code) plus a CSV of redemption codes: a header row first, then one code per line. The first line is always skipped, so a file that starts straight into codes loses its first one. The editor’s Redemption step states the required range, and your assistant can read the same bounds off the upload tool, so ask it for the numbers rather than guessing at the count. Only you can produce that file, since the codes have to work against your system, but your assistant can upload it for you once you hand it over; the editor’s Redemption step takes the same file if you would rather do it yourself. Codes cannot be changed once the listing is live — AppSumo support handles that. If buyers can stack more than one code, also write stacking instructions: how a buyer redeems each code after the first (`code_stacking_instructions`, a list of strings).
- Licensing: a webhook URL (we POST license events there: purchase, activate, upgrade, deactivate; must accept JSON over https and answer 2xx) and an OAuth redirect URL (where buyers land after granting your app access to their license). Your assistant can put both on file and run the live tests; a listing is not approved until they pass. The private key your server uses to verify our calls is returned to your assistant when it saves the URLs; keep it in your server configuration only, never in a document or chat. Saving the URLs again, even unchanged, requires the tests to be re-run. Adding or removing plans changes which event we test, so have your assistant run them again after a plan change too.
- Either way, a support email and buyer-facing redemption instructions (the steps a buyer follows after purchase).
## 5. Product story
The human behind the product. Honest and first-person; buyers back founders they trust. Founder story plus company facts — the founded date, headquarters, team size, stage and funding are required before you can submit.
| Field | Spec | Example | Writes to |
| --- | --- | --- | --- |
| Headline | Up to 64 characters. The founder-post title (e.g. "Why we built Laneflow"). | Why we built Laneflow | company.founder_posts[].title |
| Founder narrative | At least 2 first-person paragraphs (each up to 3000 characters): why I built this, who it’s for, where it’s going. Honest, no origin-story cliches. | I ran a five-person agency and lost thousands to retainers we quietly overran. I built Laneflow so the whole team could see the burn-down, not just me. | company.founder_posts[].message |
| Name | Up to 120 characters. The founder’s name. | Dana Ruiz | contacts[].name |
| Role | Optional, up to 120 characters. | Founder | contacts[].title |
| LinkedIn URL | Optional, up to 500 characters. A profile URL for trust. | | contacts[].linkedin_url |
| Founded | The company founding date (date picker). A full day — a year on its own is not stored. | 2022-06-01 | founders_data.founded_at |
| Headquarters | City or country picked from the searchable list. Not "Remote". | Austin, TX | founders_data.headquarters |
| Team size | Pick one option. Options: 1-10 · 11-50 · 51-200 · 201-500 · 501+ | | founders_data.company_size |
| Stage | Pick one option. Options: Startup · Growth · Expansion · Established | | founders_data.product_stage |
| Funding | Pick one option. Options: Bootstrapped · Pre-Seed · Seed · Series A · Series B · Series C+ · Public Company · Acquired | | founders_data.financial_stage |
**Best practices**
- Ask the partner for the company facts; never invent a founding date, HQ, team size, stage, or funding.
- The company website is auto-filled from the scanned domain and locked, so there is nothing to write for it.
## 6. Trust signals (manual, no AI content)
Stripe ARR link, LinkedIn company page, G2 and Capterra URLs. These are verification, not copy: the partner pastes real URLs themselves. Agents, skip this section entirely. If asked, remind the partner where to find each link, but never generate or guess URLs.
## 7. FAQ
Question and answer pairs (at least 1, 6 to 8 recommended), answers under 2 sentences each. Each question is up to 255 characters; answers have no limit. Optional helpful links can go alongside.
| Field | Spec | Example | Writes to |
| --- | --- | --- | --- |
| FAQ question / answer | Question up to 255 characters; answer under 2 sentences. Cover what lifetime-deal buyers actually ask. | Q: Is this really lifetime access?
A: Yes. You pay once and keep every feature in your tier forever, including future updates to those features. | faqs[].question / faqs[].answer |
| Helpful link (optional) | Label up to 64 characters, URL up to 200 characters (must be http or https). For a help center, roadmap, or docs. | Help center, https://laneflow.com/help | |
**Best practices**
- What’s included forever versus what could become paid later.
- Data limits and what happens at the ceiling.
- Migration and export: can I get my data out.
- Refund window (AppSumo’s is 60 days) and support response time.
## Output format
Return the finished listing as one markdown document in exactly this shape: one ## block per section, every field labelled to match the editor. The partner pastes each field into the matching form field. Images can’t be pasted, so hand the files over alongside this document and list them under Media, naming which slot each one fills. The company website is auto-filled and Trust signals are verified in the editor, so neither appears here.
```
## Basic information
Product name: ...
Category: ... (closest option from the list)
Tagline: ...
Unique selling proposition: ...
Intro sentence: ...
TL;DR:
- ...
- ...
Alternative to: ..., ..., ...
Integrations: ..., ..., ...
Best for: ..., ..., ...
## Media
(files handed over alongside this document, uploaded in the editor)
Hero image: [filename], showing [what it shows], alt: [~4 words]
Gallery 1: [filename], showing [what it shows], pairs with story 1, alt: [~4 words]
(repeat per story, same order as Highlighted features)
## Highlighted features
Section header: ...
### Story 1: [benefit title]
- **Verb** ...
- **Verb** ...
Screenshot to pair: [which shot]
(repeat per story, 2 to 4 total)
## Pricing
Pricing model: [Codes | Licensing]
Tier 1 "[name]": $[ideally 49 or less]
(repeat per tier, 1 to 10)
Feature matrix (label + per-tier value; only rows that change):
- [feature]: [tier 1] / [tier 2] / [tier 3]
- [feature]: [tier 1] / [tier 2] / [tier 3]
Tooltips (optional, only for labels that need a definition):
- [feature]: [tooltip]
Redemption (Pricing step 4; your assistant can set all of it, including uploading the codes CSV once you hand over the file):
Support email: ...
Redemption instructions (what a buyer does after purchase): 1. ... 2. ...
Codes: redeem URL ..., [CSV filename, header row then one code per line] | Licensing: webhook URL ..., redirect URL ... (tested: yes/no)
## Product story
Headline: ...
Founder narrative:
[2+ paragraphs]
Name: ...
Role: ...
Founded: ... (a full day, YYYY-MM-DD)
Headquarters: ...
Team size: [1-10 | 11-50 | 51-200 | 201-500 | 501+]
Stage: [Startup | Growth | Expansion | Established]
Funding: [Bootstrapped | Pre-Seed | Seed | Series A | Series B | Series C+ | Public Company | Acquired]
## FAQ
Q: ...
A: ...
(6 to 8 pairs)
Helpful links: [label]: [https url]
```
---
Partners: after your assistant returns this, open your draft listing and paste each field into the matching section. The form flags anything that works against a recommendation (like an entry tier over $49) as you go.
AppSumo listing brief. This page is safe to share with any AI assistant; it contains no account data. Questions? Your partner manager can help.