Documentation

Developer Docs

Everything you need to integrate Rinnode into your app. Copy-paste examples, full API reference, and framework guides.

Ship in 30 seconds

Three ways to integrate Rinnode into your app.

1HTML Form (Simplest)

<!-- Step 1: Add your form -->
<form action="https://rinnode.com/api/v1/f/YOUR_ENDPOINT"
      method="POST">
  <!-- Optional Honeypot (Spam Guard) -->
  <input name="_rinnode_bot_trap" type="text" style="display:none" tabindex="-1" autocomplete="off" />

  <input name="name" type="text" required />
  <input name="email" type="email" required />
  <textarea name="message"></textarea>
  <button type="submit">Submit</button>
</form>

<!-- That's it! Submissions appear in your dashboard. -->

2JavaScript / React

// JavaScript / React example
const response = await fetch(
  'https://rinnode.com/api/v1/f/YOUR_ENDPOINT',
  {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      name: 'Alex Chen',
      email: 'alex@example.com',
      message: 'I love this product!'
    })
  }
);

const data = await response.json();
console.log(data.id); // Submission ID
console.log(data.position); // Waitlist position (if configured as waitlist)

3cURL

# cURL example
curl -X POST https://rinnode.com/api/v1/f/YOUR_ENDPOINT \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Alex Chen",
    "email": "alex@example.com",
    "message": "Hello from cURL!"
  }'

REST API

Rinnode aggregates waitlists, contact forms, newsletter signups, bug reports, and feedback forms behind a single, unified ingest endpoint.

POST/api/v1/f/{endpoint_id}Unified form ingestion. Accepts form-data or raw JSON payloads.

Submission Response

All successful submissions return a JSON payload with a submission ID. If your endpoint is configured as a waitlist (or auto-detected as one), the response dynamically includes the user's active queue position:

{
  "success": true,
  "id": "sub_f17a9e32cd0f4",
  "position": 142
}

Spam Mitigation & Bot Trap

Include a hidden form field named _rinnode_bot_trap styled with CSS to be invisible to users. Spambots automatically populate all available form fields. When Rinnode detects data inside _rinnode_bot_trap, it silently drops the submission without writing to your database or charging your tier plan limit, returning a clean success status code to waste the bot's resources.

Ready to integrate?

Create your first endpoint in 30 seconds. Free forever.