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 URLhttps://clevelandrealestategroup.com
EndpointsPOST /api/submit and GET /api/health
Request formatForm data (multipart/form-data or application/x-www-form-urlencoded)
Response formatJSON
AuthenticationNone. Every submission must include a Cloudflare Turnstile token instead, see below.
Rate limit5 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

FieldRequiredDescription
form-typeYesMust be cash-offer.
property-addressYesStreet address of the property to sell, including city and ZIP code.
phone-numberYesPhone number where the team can reach the seller.
emailYesSeller's email address.
cf-turnstile-responseYesTurnstile token.

Fields for contact

FieldRequiredDescription
form-typeYesMust be contact.
first-nameYesFirst name.
last-nameYesLast name.
phone-numberNoCallback number.
emailYesEmail address.
messageYesThe message.
cf-turnstile-responseYesTurnstile token.

Fields for buyers-list

FieldRequiredDescription
form-typeYesMust be buyers-list.
nameYesBuyer's full name.
emailYesEmail address.
phoneYesPhone number.
zip-codesYesPreferred ZIP codes or cities, free text.
bedroomsNoPreferred number of bedrooms.
price-rangeNoTarget purchase price range.
close-timelineNoHow quickly the buyer can close.
messageNoAnything else the team should know.
cf-turnstile-responseYesTurnstile token.

Responses

StatusMeaning
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.