Cleveland Real Estate Group buys houses in and around Cleveland, Ohio for cash. This page documents the one public API the site exposes: the endpoint behind the cash offer, contact, and buyers list forms. A submission sent here reaches the team the same way a form on the site does. It is written for developers and for AI agents acting on behalf of a homeowner or investor.
At a glance
| Base URL | https://clevelandrealestategroup.com |
|---|---|
| Endpoints | POST /api/submit and GET /api/health |
| Request format | Form data (multipart/form-data or application/x-www-form-urlencoded) |
| Response format | JSON |
| Authentication | None. Every submission must include a Cloudflare Turnstile token instead, see below. |
| Rate limit | 5 submissions per minute per IP address |
| OpenAPI spec | /api/openapi.json |
| API catalog | /.well-known/api-catalog (RFC 9727) |
Bot protection
The endpoint is protected by Cloudflare Turnstile.
Each request must carry a cf-turnstile-response field holding a token issued by the Turnstile
widget. The widget only runs in a real browser, and the token is verified on the server and can be used once.
A request without a valid token is rejected with HTTP 400.
The public site key is 0x4AAAAAADe4bepqTeN1liGI. Fully headless clients cannot obtain a token. An agent
acting for a person should either drive a real browser session on one of the site's forms, or hand the
person off to the contact page or the phone number
216-238-2875.
Submitting a lead
Send a POST to /api/submit with form-encoded fields. The form-type
field selects the kind of submission and which other fields apply. There are three kinds:
cash-offer: a homeowner asking for a no-obligation cash offer on a property. contact: a general message to the team. buyers-list: an investor asking to hear about off-market properties.
curl -X POST https://clevelandrealestategroup.com/api/submit \
-F "form-type=cash-offer" \
-F "property-address=1234 Detroit Ave, Lakewood, OH 44107" \
-F "phone-number=216-555-0100" \
-F "email=seller@example.com" \
-F "cf-turnstile-response=<token from the Turnstile widget>"
Fields for cash-offer
Field Required Description form-typeYes Must be cash-offer. property-addressYes Street address of the property to sell, including city and ZIP code. phone-numberYes Phone number where the team can reach the seller. emailYes Seller's email address. cf-turnstile-responseYes Turnstile token.
Fields for contact
Field Required Description form-typeYes Must be contact. first-nameYes First name. last-nameYes Last name. phone-numberNo Callback number. emailYes Email address. messageYes The message. cf-turnstile-responseYes Turnstile token.
Fields for buyers-list
Field Required Description form-typeYes Must be buyers-list. nameYes Buyer's full name. emailYes Email address. phoneYes Phone number. zip-codesYes Preferred ZIP codes or cities, free text. bedroomsNo Preferred number of bedrooms. price-rangeNo Target purchase price range. close-timelineNo How quickly the buyer can close. messageNo Anything else the team should know. cf-turnstile-responseYes Turnstile token.
Responses
Status Meaning 200Accepted and emailed to the team. Body: { "success": true } 400Turnstile token missing or invalid, or unknown form-type. Body: { "error": "Turnstile verification failed" } 429Rate limit hit. Wait the number of seconds given in the Retry-After header. 500The submission could not be delivered. Retry later or call the office.
Health check
GET /api/health returns { "status": "ok" } with HTTP 200 when the API is up.
It is the status link in the API catalog.
Discovery
The API is listed in an RFC 9727 catalog at
/.well-known/api-catalog, served as
application/linkset+json. The homepage also advertises it in a
Link header using the api-catalog, service-desc,
service-doc, and describedby relations. The catalog looks like this:
{
"linkset": [
{
"anchor": "https://clevelandrealestategroup.com/api/",
"service-desc": [
{
"href": "https://clevelandrealestategroup.com/api/openapi.json",
"type": "application/json"
}
],
"service-doc": [
{
"href": "https://clevelandrealestategroup.com/api/",
"type": "text/html"
}
],
"status": [
{
"href": "https://clevelandrealestategroup.com/api/health",
"type": "application/json"
}
]
}
]
}
Questions
Use the contact form or call 216-238-2875.
Use of this API is subject to the terms and conditions and the
privacy policy.