API documentation

Create protected contact-form links from your own tools. Each created link counts toward your monthly plan.

Authentication

Every request needs a per-account API key sent as a bearer token. Create and manage keys in your dashboard → API keys. Keys are shown once at creation — store them securely. Your email must be verified before keys will work.

Authorization: Bearer prc_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Create a contact link

POSThttps://pressreleasecontact.com/api/v1/forms

Request body (JSON)

FieldTypeDescription
protected_emailrequiredstringThe real inbox messages are forwarded to. Never shown publicly.
display_nameoptionalstringContact / person name shown on the form. Max 160 chars.
companyoptionalstringOrganization shown on the form. Max 200 chars.
release_titleoptionalstringPress-release title shown for context. Max 300 chars.

Response · 201 Created

{
  "ok": true,
  "public_id": "ddNZDcfj9v",
  "url": "https://pressreleasecontact.com/c/ddNZDcfj9v"
}

Put url in your press release's media-contact section. Anyone who clicks it reaches a captcha-gated form that forwards to your protected_email — your address is never exposed.

Errors

StatuserrorMeaning
401missing_keyNo Authorization bearer header.
401invalid_keyKey not recognized or revoked.
403email_unverifiedVerify your account email before using the API.
400invalid_bodyMissing or invalid fields (e.g. a malformed protected_email).
429limit_reachedMonthly form quota reached — upgrade.
429rate_limitedToo many requests in a short window — slow down and retry.

Examples

curl

curl -X POST https://pressreleasecontact.com/api/v1/forms \
  -H "Authorization: Bearer prc_live_…" \
  -H "Content-Type: application/json" \
  -d '{"protected_email":"[email protected]","display_name":"Jane Doe","company":"Acme"}'

Node.js

const res = await fetch("https://pressreleasecontact.com/api/v1/forms", {
  method: "POST",
  headers: {
    "Authorization": "Bearer prc_live_…",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ protected_email: "[email protected]", display_name: "Jane Doe" }),
})
const data = await res.json()
console.log(data.url) // https://pressreleasecontact.com/c/…

Python

import requests

r = requests.post(
    "https://pressreleasecontact.com/api/v1/forms",
    headers={"Authorization": "Bearer prc_live_…"},
    json={"protected_email": "[email protected]", "display_name": "Jane Doe"},
)
print(r.json()["url"])

← Back to API keys