Offer profile
What you sell, used by Write with AI. 3 endpoints, each also a tool for your AI through MCP. Authentication and errors are on the overview.
Get the offer profile
GET/api/v1/offer-profile
What the workspace sells, who to, the problem, proof points and things never to claim. write_sequence uses only these facts.
MCP tool get_offer_profileRead-only
Returns
profilerequiredobject | null- Null until someone saves one
readyrequiredboolean- Has what a useful email needs: product, audience, problem
aiAvailablerequiredboolean- This server has an AI key, or the workspace connected its own
draftsrequiredobject- Write with AI drafts this month: one draft = one write_sequence or website draft call
sendingDomainrequiredstring | null- Domain from onboarding, offered for the website draft
updatedAtrequiredstring | null
curl https://ballast.to/api/v1/offer-profile \
-H "Authorization: Bearer $BALLAST_API_KEY"Save the offer profile
PUT/api/v1/offer-profile
Replaces the whole profile. Put only true facts here: proof points must be real numbers or customers.
MCP tool update_offer_profile
Parameters
companystring- Name of the sender's company
productstring- What you sell, in a sentence or two
audiencestring- Who it is for: roles, company types, sizes
problemstring- The problem it solves for them
proofstring- Proof points with real numbers or customer names, one per line
ctastring- What you ask for, e.g. a 15 minute call or a reply
tone"plain" | "friendly" | "direct" | "formal"avoidstring- Things never to claim or mention, one per line
Returns the same fields as Get the offer profile.
curl -X PUT https://ballast.to/api/v1/offer-profile \
-H "Authorization: Bearer $BALLAST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"company":"<company>","product":"<product>"}'Draft an offer profile from a website
POST/api/v1/offer-profile/draft
Reads the homepage and drafts the profile from what it says. Nothing is saved: review it, then call update_offer_profile.
MCP tool draft_offer_profile_from_websiteNeeds an active plan
Parameters
urlrequiredstring- Homepage, e.g. acme.com
Returns
profilerequiredobjecturlrequiredstring
curl -X POST https://ballast.to/api/v1/offer-profile/draft \
-H "Authorization: Bearer $BALLAST_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"<url>"}'