REST API v1

ReplyBlade API

Generate strategic reply variants programmatically. Simple REST endpoint: send a message, get back crafted replies. No API key needed.

Endpoint

POST
/api/replies

Authentication

The API is completely free and open. No API key required. Just send a POST request to the endpoint with a JSON body.

Request Body

All fields must be sent as JSON.

FieldTypeRequiredDefaultDescription
messagestring
required
-The incoming message you want replies for (1-8000 chars)
contextstringoptional""Context about the sender or situation (up to 1000 chars)
goalstringoptional""Your desired outcome (up to 120 chars)
tonenumberoptional500 (warm) to 100 (firm)
countnumberoptional3Number of variants: 1, 3, or 5
lengthstringoptional"medium"Reply length: 'short', 'medium', or 'long'
languagestringoptional""Language for replies (empty = auto-detect)

Response

On success, returns a JSON object with a variants array.

{
  "variants": [
    {
      "label": "Polite Decline",
      "reply": "Hi [Name], thanks for the invite...",
      "strategy": "Optimizes for maintaining...",
      "tone": "Warm & polite",
      "risks": "May come across as evasive if..."
    }
  ]
}

On error, returns { "error": "..." } with appropriate HTTP status code (400, 429, 500).

Examples

curl
curl -X POST https://replyblade.com/api/replies \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Can you join a call tomorrow at 2pm?",
    "context": "From my boss",
    "goal": "Politely decline",
    "tone": 50,
    "count": 3,
    "length": "medium"
  }'
python
import requests

response = requests.post(
    "https://replyblade.com/api/replies",
    headers={"Content-Type": "application/json"},
    json={
        "message": "Can you join a call tomorrow at 2pm?",
        "context": "From my boss",
        "goal": "Politely decline",
        "tone": 50,
        "count": 3,
        "length": "medium",
    },
)

data = response.json()
for variant in data["variants"]:
    print(f"[{variant['label']}] ({variant['tone']})")
    print(variant["reply"])
    print(f"Strategy: {variant['strategy']}")
    print(f"Risks: {variant['risks']}")
    print()
javascript
const response = await fetch("https://replyblade.com/api/replies", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    message: "Can you join a call tomorrow at 2pm?",
    context: "From my boss",
    goal: "Politely decline",
    tone: 50,
    count: 3,
    length: "medium",
  }),
});

const data = await response.json();
data.variants.forEach((v) => {
  console.log(`[${v.label}] (${v.tone})`);
  console.log(v.reply);
  console.log("Strategy:", v.strategy);
  console.log("Risks:", v.risks);
});

Try it yourself

Test the endpoint live. No API key needed.

Rate Limits

API requests are rate-limited to 3 requests per minute and 10 requests per hour per IP address. If you exceed either limit, you'll receive a 429 response. This is the same rate limit applied to the web UI (including screenshot reads).

Error Codes

CodeMeaning
400Invalid request body or validation failed
405Method not allowed (use POST)
429Rate limited (3/min, 10/hour per IP)
500Internal server error