ReplyCorp Client API Documentation

Introduction

The ReplyCorp Client API provides secure, authenticated access to profile and leaderboard data for external developers and integrations.

Base URLs

  • Production: https://client.api.replycorp.io

  • Development: http://localhost:9090 (with header x-client-api: true)

Quick Start

  1. Get API Access - Contact support or admin to grant API access to your account

  2. Login - Use your ReplyCorp credentials to get a JWT token

  3. Create API Key - Generate an API key for external use

  4. Use Client API - Make authenticated requests with your API key


Authentication & Setup

Step 1: Request API Access

API access must be granted by an administrator. Contact support at [email protected] to request access.

Step 2: Login to Main API

POST https://prod.api.replycorp.io/user/login

Response:

Step 3: Check API Access Status

GET https://prod.api.replycorp.io/user/api-keys

Response (if access granted):

Response (if no access):

Step 4: Create API Key

POST https://prod.api.replycorp.io/user/api-keys

Response:

⚠️ Save your API key securely - it won't be shown again!

API Key Management

List Your API Keys

GET https://prod.api.replycorp.io/user/api-keys

Delete API Key

DELETE https://prod.api.replycorp.io/user/api-keys/:id

Limits:

  • Maximum 5 API keys per user

  • Rate limit: 1000 requests per hour per key


Client API Endpoints

All Client API requests require your API key in the X-API-Key header:

Get API Key Info

GET /v1/auth/info

Response:

Get Profile Information

GET /v1/profiles/:name

Response:

Enhanced Field:

  • true - You own this campaign (access to sensitive data)

  • false - Public access only (no sensitive data)

Get Holders (Leaderboard)

GET /v1/profiles/:name/holders

Query Parameters:

  • page (default: 1)

  • limit (default: 100, max: 1000)

  • search (optional: filter by username)

Response:

Sensitive Data Access:

  • Public access - email, evmWallet, solanaWallet always return null

  • Owner access - Real values shown if users have connected their data

Get Enhanced Stats (Owner Only)

GET /v1/profiles/:name/stats

Only available for campaigns you own.

Response (if you own the campaign):

Response (if you don't own the campaign):


Access Control & Security

Public vs Owner Access

Data Type
Public Access
Owner Access

Profile Info

✅ Full access

✅ Full access

Leaderboard Rankings

✅ Username, points, rank

✅ Username, points, rank

User Emails

❌ Always null

✅ Real emails (if connected)

User Wallets

❌ Always null

✅ Real wallets (if connected)

Enhanced Stats

❌ Blocked

✅ Full analytics

Ownership Detection

You have owner access to campaigns where you are listed as a participant. This is determined by matching your API key's user ID with the campaign participants.


Rate Limiting & Usage

Limits

  • Rate Limit: 1000 requests per hour per API key

  • Max API Keys: 5 per user

  • Max Page Size: 1000 items per request

Usage Tracking

Every API request is logged with:

  • Timestamp

  • Endpoint called

  • Your IP address

  • User agent

  • API key used

Access usage info via GET /v1/auth/info.


Complete Examples

JavaScript/Node.js Example

Python Example


Error Handling

Error Response Format

HTTP Status Codes

  • 200 - Success

  • 400 - Bad Request (invalid parameters)

  • 401 - Unauthorized (invalid/missing API key)

  • 403 - Forbidden (insufficient permissions)

  • 404 - Not Found (profile doesn't exist)

  • 429 - Rate Limit Exceeded

  • 500 - Internal Server Error

Common Errors

Missing API Key

Invalid API Key

Rate Limited

Owner Access Required

Profile Not Found


Migration Guide

From Old Internal API

❌ Old Way (Deprecated):

✅ New Way (Recommended):

Benefits of New API

  • Proper authentication with API keys

  • Rate limiting and usage tracking

  • Better security with ownership-based access control

  • Consistent responses with comprehensive error handling

  • Enhanced features for campaign owners

  • Future-proof architecture


Support & Contact

Changelog

v1.2.0 (Current)

  • Ownership-based access control - Enhanced data only for campaign owners

  • Comprehensive API key management - Create, list, delete keys via main API

  • Usage tracking - Full audit trail of API requests

  • Enhanced security - Protected sensitive user data

  • Improved error messages - Clear ownership and permission errors

v1.1.0

  • Enhanced stats endpoint for detailed analytics

  • Better pagination with comprehensive metadata

  • Search functionality for filtering holders

v1.0.0

  • Initial release with profile and holder endpoints

  • Basic API key authentication

  • Rate limiting and error handling


Last updated: July 21, 2025

Last updated