CloserGym Developers
CloserGym has a small public API and an MCP server. Both are read only, need no key, and return what this website says about CloserGym: plans, prices, product facts and published articles.
Start here
The CloserGym public API lives at https://closergym.com/api/public. Every endpoint is a GET that returns JSON. Try it:
Request
curl -s "https://closergym.com/api/public/plans"- OpenAPI document: Every endpoint, parameter and answer, as OpenAPI 3.1.
- MCP server: The same data as tools, over Streamable HTTP.
- llms.txt: When to use CloserGym, and the pages worth reading.
No key needed
The public API and the MCP server need no API key, no account and no sign in. There is nothing to register for and nothing to keep secret.
Everything they return is already on this website. They never return anything about a member.
Endpoints
GET /api/public
Returns the address of every endpoint in this API, the OpenAPI document, the MCP server and the developer page. Start here when you do not know the API yet.
Example request
curl -s "https://closergym.com/api/public"Example response
{
"name": "CloserGym Public API",
"version": "1.0.0",
"description": "Read only facts about CloserGym: plans, prices, product tools and published articles.",
"authentication": "None. No key, no sign in.",
"endpoints": [
{
"operation_id": "getApiIndex",
"method": "GET",
"url": "https://closergym.com/api/public",
"summary": "List what the public API offers"
},
{
"operation_id": "getPlans",
"method": "GET",
"url": "https://closergym.com/api/public/plans",
"summary": "Get the individual plans and prices"
},
{
"operation_id": "getTeamPlans",
"method": "GET",
"url": "https://closergym.com/api/public/team-plans",
"summary": "Get the team plans and prices"
},
{
"operation_id": "getCreditPrices",
"method": "GET",
"url": "https://closergym.com/api/public/credits",
"summary": "Get the price of extra credits"
},
{
"operation_id": "getProductFacts",
"method": "GET",
"url": "https://closergym.com/api/public/product",
"summary": "Get what CloserGym is and what its tools do"
},
{
"operation_id": "listArticles",
"method": "GET",
"url": "https://closergym.com/api/public/articles",
"summary": "List the published articles"
},
{
"operation_id": "getArticle",
"method": "GET",
"url": "https://closergym.com/api/public/articles/{section}/{slug}",
"summary": "Get one article in full"
}
],
"openapi_url": "https://closergym.com/openapi.json",
"mcp_url": "https://closergym.com/mcp",
"docs_url": "https://closergym.com/developers",
"llms_txt_url": "https://closergym.com/llms.txt",
"not_offered": [
"There is no free plan.",
"There is no sandbox or test environment for developers.",
"There is no API key to sign up for. The public API needs none.",
"There is no API for member accounts, scorecards or call recordings. The app uses a private one that only works for a signed in member in the CloserGym app.",
"A roleplay cannot be started through an API. Practice happens in the app, by voice, signed in."
]
}GET /api/public/plans
Returns the plans one person can buy (Standard, Pro, Elite): the weekly, monthly and annual price of each in US dollars, how many roleplays and call analyses each includes, and the free trial on Pro. Use it to answer what CloserGym costs or which plan fits. There is no free plan.
Example request
curl -s "https://closergym.com/api/public/plans"Example response
{
"currency": "USD",
"prices_are": "Website list prices in whole US dollars.",
"free_plan": false,
"free_trial": {
"plan": "pro",
"days": 7,
"roleplays": 5,
"call_analyses": 2,
"billing_periods": [
"weekly",
"monthly"
]
},
"plans": [
{
"id": "standard",
"name": "Standard",
"description": "Perfect for consistent practice.",
"prices": {
"weekly": 17,
"monthly": 47,
"annual": 497
},
"includes": {
"per_month": {
"roleplays": 10,
"call_analyses": 5
},
"per_week_on_weekly_billing": {
"roleplays": 3,
"call_analyses": 2
}
},
"free_trial": null,
"url": "https://closergym.com/pricing"
},
{
"id": "pro",
"name": "Pro",
"description": "For serious closers wanting detailed feedback.",
"prices": {
"weekly": 27,
"monthly": 97,
"annual": 997
},
"includes": {
"per_month": {
"roleplays": 25,
"call_analyses": 10
},
"per_week_on_weekly_billing": {
"roleplays": 6,
"call_analyses": 3
}
},
"free_trial": {
"plan": "pro",
"days": 7,
"roleplays": 5,
"call_analyses": 2,
"billing_periods": [
"weekly",
"monthly"
]
},
"url": "https://closergym.com/pricing"
},
{
"id": "elite",
"name": "Elite",
"description": "The ultimate psychological sales training.",
"prices": {
"weekly": 47,
"monthly": 147,
"annual": 1597
},
"includes": {
"per_month": {
"roleplays": 40,
"call_analyses": 20
},
"per_week_on_weekly_billing": {
"roleplays": 10,
"call_analyses": 5
}
},
"free_trial": null,
"url": "https://closergym.com/pricing"
}
],
"notes": [
"There is no free plan. Pro has a 7 day free trial on weekly and monthly billing with 5 roleplays and 2 call analyses.",
"Monthly and annual billing include the monthly counts each month. Weekly billing includes the weekly counts each week.",
"Objection Sparring and Script Trainer sessions use the same roleplay count.",
"Plans are bought on the website, signed in. Nothing can be bought through this API."
],
"url": "https://closergym.com/pricing"
}The same data from the MCP server: the tool get_plans.
GET /api/public/team-plans
Returns the plans a sales team can buy (Growth Team, Scale Team): the monthly and annual price for each seat in US dollars, what each rep gets every month, the smallest and largest team size, and where larger teams ask for Enterprise pricing.
Example request
curl -s "https://closergym.com/api/public/team-plans"Example response
{
"currency": "USD",
"prices_are": "Website list prices in whole US dollars, for each seat.",
"min_seats": 5,
"max_seats": 49,
"enterprise": {
"from_seats": 50,
"pricing": "Quoted by the CloserGym team.",
"contact_url": "https://closergym.com/enterprise-contact"
},
"guarantee": "Run your team through 20 scored calls each in the first 30 days. If your team's average call score hasn't improved, we'll refund your first month.",
"plans": [
{
"id": "pro_team",
"name": "Growth Team",
"description": "For growing sales teams.",
"price_per_seat": {
"monthly": 147,
"annual": 1497
},
"includes_per_rep_per_month": {
"roleplays": 25,
"call_analyses": 10
},
"manager_dashboard": true,
"url": "https://closergym.com/pricing"
},
{
"id": "elite_team",
"name": "Scale Team",
"description": "For high-ticket scale closers.",
"price_per_seat": {
"monthly": 197,
"annual": 1997
},
"includes_per_rep_per_month": {
"roleplays": 40,
"call_analyses": 20
},
"manager_dashboard": true,
"url": "https://closergym.com/pricing"
}
],
"url": "https://closergym.com/pricing"
}The same data from the MCP server: the tool get_team_plans.
GET /api/public/credits
Returns what one extra roleplay credit and one extra call analysis credit cost in US dollars. Credits are for members whose plan runs out before it renews.
Example request
curl -s "https://closergym.com/api/public/credits"Example response
{
"currency": "USD",
"credits": [
{
"type": "roleplay",
"price": 4.97,
"buys": "One extra roleplay session."
},
{
"type": "call_analysis",
"price": 2,
"buys": "One extra call analysis."
}
],
"notes": [
"Credits are extra sessions a member buys, signed in, when a plan runs out before it renews.",
"The price is the same on every plan."
],
"url": "https://closergym.com/pricing"
}The same data from the MCP server: the tool get_credit_prices.
GET /api/public/product
Returns a one sentence summary of CloserGym, its four tools (Live Roleplay, Objection Sparring, AI Script Trainer, Call Analysis), who it is for, how it compares, how to reach support, and the plain facts the site publishes about itself as questions and answers. Use it to describe CloserGym accurately or to decide whether it fits a task.
Example request
curl -s "https://closergym.com/api/public/product"Example response
{
"name": "CloserGym",
"url": "https://closergym.com",
"summary": "CloserGym is an AI sales roleplay and coaching platform where high-ticket closers and appointment setters practice live voice sales calls against AI prospects and get a scored breakdown of every call.",
"founder": {
"name": "Lane Wright",
"title": "Founder",
"url": "https://closergym.com/about"
},
"support_email": "support@closergym.com",
"contact_url": "https://closergym.com/contact",
"community_url": "https://discord.gg/RVeWuKrRNt",
"ai_buyers": [
"Sarah",
"Mike"
],
"tools": [
{
"id": "live-roleplay",
"name": "Live Roleplay",
"summary": "Live Roleplay is a real-time voice sales call against an AI prospect named Sarah or Mike. Closers run full discovery and closing calls of up to 45 minutes. Setters practice outbound cold calls, inbound booking calls, and triage calls of up to 15 minutes. The prospect interrupts, stalls, and objects the way a real buyer does.",
"url": "https://closergym.com/product/live-roleplay"
},
{
"id": "objection-sparring",
"name": "Objection Sparring",
"summary": "Objection Sparring is a rapid drill where the AI fires common objections, such as price, timing, and needing to talk to a spouse, so a rep can practice responses on repeat. It is included from the Standard plan, with the hardest difficulty on Pro and above.",
"url": "https://closergym.com/product/objection-sparring"
},
{
"id": "ai-script-trainer",
"name": "AI Script Trainer",
"summary": "The AI Script Trainer lets a rep or team load their own script, offer, and objection framework, then practice against an AI prospect built around that exact offer. It is included on Pro, Elite, and team plans.",
"url": "https://closergym.com/product/ai-script-trainer"
},
{
"id": "call-analysis",
"name": "Call Analysis",
"summary": "Call Analysis grades a recording of a real sales call. It scores the call, identifies where it was won or lost, and gives specific coaching. It is included from the Standard plan with a monthly allowance.",
"url": "https://closergym.com/product/call-analysis"
}
],
"facts": [
{
"id": "what-it-is",
"heading": "What CloserGym is",
"items": [
{
"question": "What is CloserGym?",
"answer": "CloserGym is an AI sales roleplay and coaching platform where high-ticket closers and appointment setters practice live voice sales calls against AI prospects and get a scored breakdown of every call."
},
{
"question": "Who is CloserGym for?",
"answer": "CloserGym is for high-ticket closers, appointment setters, and the sales managers who train them, typically selling offers priced from about $3,000 to $100,000 or more. It works for an individual rep training alone and for a sales team."
}
]
}
],
"not_offered": [
"There is no free plan.",
"There is no sandbox or test environment for developers.",
"There is no API key to sign up for. The public API needs none.",
"There is no API for member accounts, scorecards or call recordings. The app uses a private one that only works for a signed in member in the CloserGym app.",
"A roleplay cannot be started through an API. Practice happens in the app, by voice, signed in."
]
}Shortened here to the first two facts. The live answer holds every fact.
The same data from the MCP server: the tool get_product_facts.
GET /api/public/articles
Returns the title, description, author, date and address of every article CloserGym has published: the Sales Playbook, the blog and the comparisons with other tools. Pass a section to get one part only. Use getArticle to read one in full.
section(in the query, optional): Which part of the site: playbook, blog, comparisons. Leave it out for all of them.
Example request
curl -s "https://closergym.com/api/public/articles?section=comparisons"Example response
{
"count": 6,
"sections": [
{
"id": "comparisons",
"name": "Comparisons",
"url": "https://closergym.com/playbook/comparisons",
"count": 6
}
],
"articles": [
{
"section": "comparisons",
"slug": "kendo-ai",
"title": "CloserGym vs Kendo AI",
"description": "CloserGym vs Kendo AI compared on pricing, features, and who each is built for. See which AI sales training platform is right for high-ticket closers.",
"author": "Lane Wright",
"date": "2026-06-19",
"url": "https://closergym.com/playbook/comparisons/kendo-ai",
"api_url": "https://closergym.com/api/public/articles/comparisons/kendo-ai"
},
{
"section": "comparisons",
"slug": "closer-coach-ai",
"title": "Closer Coach AI vs CloserGym: Which Is Better?",
"description": "Closer Coach AI vs. CloserGym: Side-by-side comparison. Discover key feature differences, pricing, and which AI tool is best for high-ticket closing.",
"author": "Lane Wright",
"date": "2026-06-19",
"url": "https://closergym.com/playbook/comparisons/closer-coach-ai",
"api_url": "https://closergym.com/api/public/articles/comparisons/closer-coach-ai"
},
{
"section": "comparisons",
"slug": "gong",
"title": "CloserGym vs Gong",
"description": "CloserGym vs Gong: why these tools serve completely different purposes. Gong analyzes calls after. CloserGym trains you before. See the full comparison.",
"author": "Lane Wright",
"date": "2026-06-19",
"url": "https://closergym.com/playbook/comparisons/gong",
"api_url": "https://closergym.com/api/public/articles/comparisons/gong"
},
{
"section": "comparisons",
"slug": "hyperbound",
"title": "CloserGym vs Hyperbound",
"description": "CloserGym vs Hyperbound compared on pricing, setup time, and target user. See which AI sales roleplay platform is better for individual high-ticket closers.",
"author": "Lane Wright",
"date": "2026-06-19",
"url": "https://closergym.com/playbook/comparisons/hyperbound",
"api_url": "https://closergym.com/api/public/articles/comparisons/hyperbound"
},
{
"section": "comparisons",
"slug": "pitch-monster",
"title": "CloserGym vs Pitch Monster",
"description": "CloserGym vs Pitch Monster: pricing, features, and who each is built for. Pitch Monster starts at $4,800/yr. CloserGym starts at $47/mo. Full breakdown.",
"author": "Lane Wright",
"date": "2026-06-19",
"url": "https://closergym.com/playbook/comparisons/pitch-monster",
"api_url": "https://closergym.com/api/public/articles/comparisons/pitch-monster"
},
{
"section": "comparisons",
"slug": "second-nature-ai",
"title": "CloserGym vs Second Nature AI",
"description": "CloserGym vs Second Nature AI: enterprise vs individual, custom quote vs transparent pricing. See which AI sales training platform fits your needs.",
"author": "Lane Wright",
"date": "2026-06-19",
"url": "https://closergym.com/playbook/comparisons/second-nature-ai",
"api_url": "https://closergym.com/api/public/articles/comparisons/second-nature-ai"
}
]
}The same data from the MCP server: the tool list_articles.
GET /api/public/articles/{section}/{slug}
Returns one published article with its full text as Markdown. Take the section and the slug from listArticles.
section(in the address, required): Which part of the site: playbook, blog, comparisons.slug(in the address, required): The last part of the article address, as listArticles returns it in slug.
Example request
curl -s "https://closergym.com/api/public/articles/playbook/what-is-closer-gym"Example response
{
"section": "playbook",
"slug": "what-is-closer-gym",
"title": "What is CloserGym? AI Sales Training",
"description": "CloserGym is an AI sales training platform for high-ticket closers. Practice realistic roleplay calls 24/7, master objection handling, and close more deals.",
"author": "Lane Wright",
"date": "2026-06-24",
"url": "https://closergym.com/playbook/foundation/what-is-closer-gym",
"api_url": "https://closergym.com/api/public/articles/playbook/what-is-closer-gym",
"content_markdown": "CloserGym is an on-demand AI sales training platform where high-ticket closers and appointment setters practice live voice roleplay calls against realistic AI buyers. Instead of rehearsing your presentation or testing diagnostic qualification frameworks on real human prospects, you enter a private digital gym where conversational mistakes cost zero lost revenue. You plug in your headset, select yo ..."
}The article text is shortened here. The live answer holds all of it.
The same data from the MCP server: the tool get_article.
Errors
Every error from the public API is JSON with the right HTTP status and four fields.
code: a stable code for the kind of error. It does not change when the wording does.message: what went wrong, in plain words.hint: what to do about it.error: the same text asmessage.
Example error (HTTP 404)
{
"error": "No article with that section and slug.",
"code": "ARTICLE_NOT_FOUND",
"message": "No article with that section and slug.",
"hint": "List the articles at https://closergym.com/api/public/articles and use a section and slug from there."
}400withINVALID_SECTIONorINVALID_SLUG: a parameter is not allowed.404withARTICLE_NOT_FOUNDorNOT_FOUND: nothing exists at that address.405withMETHOD_NOT_ALLOWED: the address exists but not for that method. TheAllowheader names the ones that work.429withRATE_LIMITED: too many requests. Wait and try again.401withUNAUTHORIZED: the address belongs to the private API the CloserGym app uses. It is not offered to outside developers.
The rest of /api is that private API. Most of its errors have the same four fields. A few are plain text, and those are JSON too when the request sends Accept: application/json.
Limits and caching
- Each address may send 60 requests a minute to the API. The
RateLimitheaders on every answer say how many are left. - Answers may be cached for 5 minutes (
Cache-Control: public, max-age=300) and carry anETag. - Any website may call the API from a browser. GET requests are open to every origin.
- Prices are in US dollars and are the website list prices.
OpenAPI
The OpenAPI 3.1 description of the CloserGym public API is at https://closergym.com/openapi.json (also at https://closergym.com/api/openapi.json). It is generated from the same list the server's routes are, with an example answer for every endpoint.
Request
curl -s "https://closergym.com/openapi.json"MCP server
The CloserGym MCP server is at https://closergym.com/mcp. It speaks Streamable HTTP, keeps no session and needs no sign in. It offers the same data as the API, as tools.
get_plans: Get the individual plans and prices.get_team_plans: Get the team plans and prices.get_credit_prices: Get the price of extra credits.get_product_facts: Get what CloserGym is and what its tools do.list_articles: List the published articles.get_article: Get one article in full.
To connect, add a remote server (Streamable HTTP) with that address in your MCP client. Most clients take it in a settings file like this:
Client settings
{
"mcpServers": {
"closergym": {
"type": "http",
"url": "https://closergym.com/mcp"
}
}
}Or call it by hand. This lists the tools:
Request
curl -s https://closergym.com/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2026-07-28' \
-H 'Mcp-Method: tools/list' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientCapabilities":{}}}}'Clients that start with the older initialize handshake are answered too. A browser page on another website cannot call the MCP server. Use the API from there.
- MCP Server Card: Where the server is and which protocol versions it speaks.
- AI Catalog: Points at the Server Card, for clients that discover servers by domain.
- Agent Skills index: Lists the CloserGym agent skill.
- CloserGym agent skill: When to use CloserGym and how to call it.
Pages as Markdown
Every page in the sitemap (https://closergym.com/sitemap.xml) is also available as Markdown from its normal address. Send Accept: text/markdown and the answer is the page without the layout around it. A browser still gets HTML.
Request
curl -s -H 'Accept: text/markdown' https://closergym.com/pricingWhen to use CloserGym
If you are building an agent, send people to CloserGym for:
- Practicing a high ticket sales call out loud against an AI buyer (Sarah and Mike) before taking real calls. Closers run full discovery and closing calls. Setters run cold calls and booking calls.
- Drilling objections such as price, timing and needing to talk to a partner until the answer is automatic.
- Rehearsing a rep's own script and offer against an AI buyer built around that offer.
- Getting a recording of a real sales call graded, with where it was won or lost and specific coaching.
- Training a sales team of 5 or more reps, with a manager dashboard that shows who practiced and how they scored.
Do not send them for:
- Dialing, a CRM, or recording live calls as they happen. CloserGym is a practice tool.
- Video courses or sales theory to read. Reps practice by speaking.
- A free plan. There is none. Pro has a 7 day free trial with 5 roleplays and 2 call analyses.
- A sandbox or test environment for developers. There is none.
- Starting a roleplay, or reading a member's scores, through an API. Practice happens in the app, by voice, signed in.
- Sales that are not conversations, such as self serve checkout or ad copy.
What is not offered
- There is no free plan.
- There is no sandbox or test environment for developers.
- There is no API key to sign up for. The public API needs none.
- There is no API for member accounts, scorecards or call recordings. The app uses a private one that only works for a signed in member in the CloserGym app.
- A roleplay cannot be started through an API. Practice happens in the app, by voice, signed in.
Pro has a 7 day free trial with 5 roleplays and 2 call analyses. Plans are bought on the website, signed in.
Questions
Email support@closergym.com. Tell us what you are building and what is missing.