Loading...

API Documentation

Integrate Rindexa with your SaaS.

Base URL

https://api.rindexa.com
Bearer token auth for protected routes
No auth for public endpoints
POST /signup No Auth

Create Tenant

Create a new tenant account and receive an initial API key.

Request Body

Field Type Required Description
tenant_id string Yes Unique identifier (max 100 chars, alphanumeric, -, _)
email string Yes A valid email address
password string Yes Secure password (min 8 characters)
marketing_consent boolean No Opt-in for marketing emails (default: false)

Responses

201 Created — Returns tenant info and API key

cURL Example

curl -X POST https://api.rindexa.com/signup \
  -H "Content-Type: application/json" \
  -d '{
    "tenant_id": "myapp",
    "email": "me@example.com",
    "password": "securepassword123",
    "marketing_consent": false
  }'
POST /auth/login No Auth

Dashboard Login

Authenticate with email and password to receive a JWT token.

Request Body

Field Type Required Description
email string Yes Your registered email address
password string Yes Your account password

cURL Example

curl -X POST https://api.rindexa.com/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "me@example.com",
    "password": "securepassword123"
  }'
GET /tenants/me JWT

Get Tenant Stats

Retrieve detailed statistics for your tenant, including document count and search usage. Requires JWT authentication.

cURL Example

curl https://api.rindexa.com/tenants/me \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
POST /documents API Key

Add Document

Add a new document to the tenant's search index. If a document with the same id exists, it will be overwritten.

Request Body

Field Type Required Description
title string Yes* Document title. Required if body is empty.
body string Yes* Document body text. Required if title is empty.
id string No Unique ID. Auto-generated as UUID v4 if omitted.
tags string[] No Array of tags for filtering.

cURL Example

curl -X POST https://api.rindexa.com/documents \
  -H "Authorization: Bearer rx_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "doc1",
    "doc_type": "post",
    "title": "Hello World",
    "body": "This is my first post about Rust",
    "tags": ["rust", "tutorial"]
  }'
POST /documents/bulk API Key

Bulk Index Documents

Index multiple documents in a single request. Maximum 1,000 documents per batch.

cURL Example

curl -X POST https://api.rindexa.com/documents/bulk \
  -H "Authorization: Bearer rx_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "documents": [
      {
        "title": "First Document",
        "body": "Content of first doc",
        "tags": ["intro"]
      },
      {
        "title": "Second Document",
        "body": "Content of second doc",
        "tags": ["tutorial"]
      }
    ]
  }'
DELETE /documents/:id API Key

Delete Document

Delete an existing document from the search index using its unique identifier.

cURL Example

curl -X DELETE https://api.rindexa.com/documents/doc1 \
  -H "Authorization: Bearer rx_live_xxx"
POST /keys/rotate JWT

Rotate API Key

Rotate the API key for your tenant. The old key is invalidated immediately. Requires JWT authentication.

cURL Example

curl -X POST https://api.rindexa.com/keys/rotate \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
  -H "Content-Type: application/json"
GET /health No Auth

Health Check

Quick health check endpoint to monitor application uptime.

cURL Example

curl https://api.rindexa.com/health