Edits

Ask to change your listing

Starts a change; applies nothing. Prove ownership one of two ways.

proof: "email" mails a one-time confirmation link to the address the listing is registered to — the response never contains the token.

proof: "domain" returns a token you must publish at /.well-known/curlship-verify.txt (as a whole line) or as <meta name="curlship-verify" content="…"> on both the currently listed site and the new one, then confirm via /api/edit-confirm. Publishing it only on the new domain proves you own the destination, not the listing, and is refused — as is a domain proof when the listed site is unreachable.

Changing email always requires proof: "email". Requests expire after 24 hours. Rate limits: 5/hour per IP, 3/day per listing.

Refreshing stale metadata. Send only listing_id and proof — no url, no email — to mean "re-read the title, description and image from my page". Use it when your site's copy changed and the directory card still shows what it said on the day you submitted. The URL is not modified, the badge is not reset, and the page scraped is always the one already on the listing. A refresh whose fetch fails, or that comes back with a bot-wall, parking or error-page title, is refused rather than written.

Confirming a refresh takes two calls to /api/edit-confirm: the first returns applied: false with the proposed changed values and an apply digest and writes nothing; send that digest back to save it. The page is re-read on apply, so if it changed in between you get a fresh preview rather than a write you never saw.

The body cannot set a title, description, or image. Those are copied from the page (og:title, og:description, og:image, else the title tag and the description meta). Emailing replacement copy does not change the card.

Removing a free listing. Send remove: true with listing_id and proof, and no url or email. Confirm it the same way as any other edit. The registered address gets a 7-day undo link. A paid listing, or the listing that holds the Featured spot, is refused (409) and stays a mail to support@curlship.com, because a payment is attached. One listing per root domain: to point the same listing at a different page, send a new url instead of remove.

post/api/edit-request

Request

  • Base URL: https://curlship.com
  • URL: https://curlship.com/api/edit-request
  • Auth: none declared

Request body

listing_idinteger required
urlstring uri

New product URL

emailstring email

New registered address (needs proof=email)

removeboolean

true takes a free listing offline. Send no url and no email with it. A paid listing or the Featured holder is refused.

proof'email' | 'domain'

Example request

{
  "listing_id": 2142
}

Response

Request created — pending proof

okboolean
request_idinteger
proof'email' | 'domain'
statusstring
tokenstring

Domain proof only — publish this. Never returned for email proof.

expires_atstring
publishobject[]

Domain proof only — where the token has to appear.

messagestring

Example response

{
  "ok": true,
  "status": "pending"
}

Changes

No recorded changes to this operation across all 1 revision of this API.