generate_review
Generate a competitor review article for one of your apps, named by its website (product_url, e.g. "sparkmobile.dev") or its id. Asks you to confirm the website and optionally name its rivals, then runs live competitor research (Tavily), writes the article and (optionally) builds a head-to-head comparison table. Returns a preview link and the name of the editor it is waiting on. The article is NEVER published by this tool: it is submitted to a Sellular editor for approval (the editor is emailed) and only goes live at /reviews/[slug] once that editor approves it. Requires a paid plan (starter+) and counts against the monthly review generation quota. Authenticate with either your product API key (Dashboard -> Analytics -> API key), which names the product on its own, or the admin key plus product_id. TO WRITE THE ARTICLE YOURSELF: call once with brief_only=true to get the researched feature matrix and the full writing brief, then call again passing your article as draft. That skips the built-in writer entirely and is the better article, because you are already holding the comparison. The editor approval step is identical either way. TO DRAFT WITHOUT SUBMITTING: add hold_as_draft=true and the article is saved as a dashboard draft instead, with no editor involved; the owner reads it at the dashboard and submits it from there when happy.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| draft | No | Your article, written from a brief_only call. Supplying it skips the built-in writer: the comparison table, the strengths and weaknesses cards, the quality score and the editor hand-off all run exactly as they otherwise would. Prose fields together should run 320 to 480 words. | |
| fills | No | Answers for rows the research could not confirm from your site, as {"Feature name": "value"}, e.g. {"MCP tools": "Yes"}. Authoritative: you know whether you ship the thing, and a dash next to three ticks reads as a missing feature rather than a missing fact. Use the row names exactly as they come back from brief_only. | |
| rivals | No | Competitors to compare against, comma separated, instead of whatever a live search turns up. You know your own market better than a listicle does. | |
| research | No | The extracted research JSON, when a previous call handed you the extraction prompt instead of running it. This server never calls an AI model on your behalf: you are the model. Pass back exactly the JSON object the prompt asked for. | |
| brief_only | No | Research only: return the competitors, the verified feature matrix and the full writing brief, and write nothing. Nothing is saved, no quota is spent and no editor is involved. Follow it with a second call passing `draft`. | |
| product_id | No | Which product to review, by id. Ignored with a product API key. Prefer product_url, which is how people name their own app. | |
| product_url | No | Which product to review, by website, e.g. "sparkmobile.dev". Matched by domain against the products on the account, ignoring www and the scheme. Ignored with a product API key. | |
| hold_as_draft | No | Save the article as a dashboard draft and stop: no editor is picked, nobody is notified. The owner reviews it at the dashboard (Reviews view) and submits it from there, where the same publish benchmark applies. Still spends the generation (one review per app), so use it when a human should read the article before any editor does. | |
| include_comparison | No | Include the head-to-head comparison table (research runs either way). |