Skip to main content

REST API Reference

The Reward Agent exposes all 45 tools as standard REST endpoints at /api/v1/*. Use any HTTP client — no MCP required.

Base URL: https://agent.rsnc.network/api/v1

Response Format​

Success:

{
"data": { ... },
"meta": { "tool": "rsnc_agent_brand_info", "timestamp": "2026-03-05T00:00:00Z" }
}

Error:

{
"error": { "message": "Brand not found", "code": "not_found", "status": 404 }
}

Error codes: auth_required (401), forbidden (403), validation (400), not_found (404), rate_limit (429), internal (500).

Authentication​

Authenticated endpoints require the same HMAC-SHA256 headers used by MCP:

HeaderValue
X-RSNC-Agent-KeyYour agent key ID
X-RSNC-TimestampUnix timestamp (seconds)
X-RSNC-SignatureHMAC-SHA256 signature

See Authentication for the signing process.

Rate Limits​

TypeLimit
Public (unauthenticated)100 requests/minute per IP
Authenticated20 requests/minute per agent key (configurable)

Discovery​

No authentication required.

Get Network Info​

GET /api/v1/network/info

Returns chain configuration, contract addresses, and exchange rates.

curl https://agent.rsnc.network/api/v1/network/info

Get Network Stats​

GET /api/v1/network/stats

Returns active brand count, user count, and reward totals.

List Brands​

GET /api/v1/brands
Query ParamTypeDescription
categorystringFilter by category (retail, gaming, dining, travel)
limitnumberMax brands to return (default: 50, max: 200)
offsetnumberPagination offset (default: 0)
curl "https://agent.rsnc.network/api/v1/brands?category=retail&limit=10"

Check Brand​

GET /api/v1/brands/check
Query ParamTypeDescription
querystringBrand name, domain, or URL
curl "https://agent.rsnc.network/api/v1/brands/check?query=nike.com"

Brand Rankings​

GET /api/v1/brands/rankings
Query ParamTypeDescription
categorystringFilter by category
limitnumberNumber of brands to rank (default: 10, max: 10)

Brand​

No authentication required.

Get Brand Info​

GET /api/v1/brands/:brandId

Returns reward program details: events, reward amounts, cooldown periods.

curl https://agent.rsnc.network/api/v1/brands/0xABC123

Get Brand Perks​

GET /api/v1/brands/:brandId/perks
Query ParamTypeDescription
categorystringFilter perks by category

User​

Authentication required.

Get User Balance​

GET /api/v1/users/:userId/brands/:brandId/balance

Returns current balance, total earned, total redeemed.

curl https://agent.rsnc.network/api/v1/users/user@example.com/brands/0xABC/balance \
-H "X-RSNC-Agent-Key: your-key-id" \
-H "X-RSNC-Timestamp: 1709500000" \
-H "X-RSNC-Signature: <computed>"

Get User Stats​

GET /api/v1/users/:userId/brands/:brandId/stats

Returns earnings, redemptions, streaks, and achievements.

Get User Portfolio​

GET /api/v1/users/:userId/portfolio

Returns cross-brand balance breakdown, active streaks, and best affordable perk.


Rewards​

Authentication required.

Process Event​

POST /api/v1/events
{
"brandId": "0xABC...",
"eventType": "purchase",
"userId": "user@example.com",
"metadata": { "order_total": 50 }
}
curl -X POST https://agent.rsnc.network/api/v1/events \
-H "Content-Type: application/json" \
-H "X-RSNC-Agent-Key: your-key-id" \
-H "X-RSNC-Timestamp: 1709500000" \
-H "X-RSNC-Signature: <computed>" \
-d '{"brandId":"0xABC","eventType":"purchase","userId":"user@example.com"}'

Process Bulk Events​

POST /api/v1/events/bulk
{
"events": [
{ "brandId": "0xABC", "eventType": "purchase", "userId": "user1@example.com" },
{ "brandId": "0xABC", "eventType": "signup", "userId": "user2@example.com" }
]
}

Perks​

Browse is public; redeem requires authentication.

Browse Perks​

GET /api/v1/perks
Query ParamTypeDescription
categorystringFilter by perk category
maxPricenumberMaximum RSNC cost
brandIdstringScope to a specific brand
limitnumberMax perks to return (default: 20, max: 100)
curl "https://agent.rsnc.network/api/v1/perks?maxPrice=5000&limit=10"

Redeem Perk​

POST /api/v1/perks/redeem

Authentication required.

{
"perkId": "perk-123",
"userId": "user@example.com",
"brandId": "0xABC..."
}

Leaderboard​

No authentication required.

Get Leaderboard​

GET /api/v1/brands/:brandId/leaderboard
Query ParamTypeDescription
metricenumrsnc_earned, streak, or activity (default: rsnc_earned)
periodenumdaily, weekly, monthly, or all_time (default: all_time)
limitnumberMax entries (default: 10, max: 100)

Growth​

No authentication required.

Estimate ROI​

POST /api/v1/growth/estimate-roi
{
"industry": "retail",
"monthlyCustomers": 5000,
"averageOrderValue": 75
}

Request Info​

POST /api/v1/growth/request-info
{
"businessName": "Acme Corp",
"contactEmail": "ceo@acme.com",
"website": "https://acme.com",
"industry": "retail"
}

Onboarding​

Authentication required + canOnboard permission.

Onboard Brand​

POST /api/v1/onboarding/brands
{
"brandAddress": "0xDEF...",
"businessName": "Acme Corp",
"contactEmail": "ceo@acme.com",
"website": "https://acme.com",
"category": "retail",
"description": "Premium retail brand"
}

Manage Keys​

POST /api/v1/onboarding/keys
{
"action": "rotate",
"brandId": "0xDEF..."
}

Actions: rotate, revoke, status.


Analytics​

No authentication required.

Network Analytics​

GET /api/v1/analytics/network
Query ParamTypeDescription
periodenum7d, 30d, or 90d (default: 30d)

Brand Analytics​

GET /api/v1/analytics/brands/:brandId
Query ParamTypeDescription
periodenum7d, 30d, or 90d (default: 30d)

Event Performance​

GET /api/v1/analytics/brands/:brandId/events
Query ParamTypeDescription
periodenum7d, 30d, or 90d (default: 30d)

Perk Analytics​

GET /api/v1/analytics/brands/:brandId/perks

Brand Health​

GET /api/v1/analytics/brands/:brandId/health

Returns health score (0-100), letter grade, strengths, weaknesses, and recommendations.


Management​

Authentication required + canManageProgram permission.

Create Event​

POST /api/v1/brands/:brandId/events
{
"eventType": "purchase",
"rewardAmount": 10,
"maxClaims": 0,
"cooldownHours": 24
}

Update Event​

PATCH /api/v1/brands/:brandId/events/:eventId
{
"rewardAmount": 15,
"enabled": true
}

Create Perk​

POST /api/v1/brands/:brandId/perks
{
"name": "10% Off Next Purchase",
"description": "Get 10% off your next order",
"priceInPoints": 500,
"maxSupply": 100,
"category": "discount"
}

Update Perk​

PATCH /api/v1/brands/:brandId/perks/:collectionId
{
"priceInPoints": 400,
"isActive": true
}

Agent Rewards​

Authentication required.

My Rewards​

GET /api/v1/agent/rewards

Returns your agent's RSNC earnings, activity stats, and rate cap allowances.

Claim Reward​

POST /api/v1/agent/rewards/claim
{
"rewardType": "discovery",
"brandAddress": "0xABC..."
}

Reward types: discovery (100 RSNC), onboarding (500 RSNC).


Comparison​

No authentication required.

Compare Brands​

GET /api/v1/compare/brands
Query ParamTypeDescription
brandIdsstringComma-separated brand IDs (2-5)
periodenum7d, 30d, or 90d (default: 30d)
curl "https://agent.rsnc.network/api/v1/compare/brands?brandIds=0xAAA,0xBBB,0xCCC"

Compare Cashback​

GET /api/v1/compare/cashback
Query ParamTypeDescription
brandIdsstringComma-separated brand IDs (2-10)
categorystringCategory to auto-discover brands
purchaseAmountnumberPurchase amount in USD

Either brandIds or category is required.

curl "https://agent.rsnc.network/api/v1/compare/cashback?category=retail&purchaseAmount=100"

Recommendations​

Best Deals​

GET /api/v1/deals

No authentication required (personalized results need auth).

Query ParamTypeDescription
intentstringShopping intent (e.g., "running shoes")
categorystringDirect category filter
userIdstringOptional user ID for personalized results
budgetnumberMax perk cost to consider
limitnumberMax deals to return (default: 10)

Next Goal​

GET /api/v1/users/:userId/goals

Authentication required.

Query ParamTypeDescription
brandIdstringFocus on a specific brand
targetPerkIdstringCalculate path to a specific perk

Commerce Routing​

Route Purchase​

GET /api/v1/commerce/route

No authentication required.

Query ParamTypeDescription
intentstringWhat the user wants to buy
categorystringDirect category filter
purchaseAmountnumberExpected purchase amount in USD
userIdstringOptional user ID for personalized routing
curl "https://agent.rsnc.network/api/v1/commerce/route?intent=running+shoes&purchaseAmount=150"

Stack Deals​

GET /api/v1/commerce/stack

Authentication required.

Query ParamTypeDescription
brandIdstringThe brand to optimize the deal for
purchaseAmountnumberPurchase amount in USD
userIdstringUser ID to check redeemable perks

Intelligence​

User-level tools require authentication; brand-level tools are public.

User Persona​

GET /api/v1/intelligence/users/:userId/persona

Authentication required. Returns behavioral profile, persona archetype, affinities, and network position.

User Recommendations​

GET /api/v1/intelligence/users/:userId/recommendations

Authentication required.

Query ParamTypeDescription
limitnumberMax recommendations (default: 5, max: 20)

Perk Intelligence​

GET /api/v1/intelligence/brands/:brandId/perks

No auth required. Returns heat scores, conversion funnels, supply depletion rates.

Perk Audience​

GET /api/v1/intelligence/brands/:brandId/perks/:collectionId/audience

No auth required. Returns persona breakdown of users who claimed this perk.

Brand Audience​

GET /api/v1/intelligence/brands/:brandId/audience

No auth required. Returns user persona distribution, engagement levels, platform split.


Network Intelligence​

No authentication required.

Network Flows​

GET /api/v1/network/flows
Query ParamTypeDescription
periodenum7d, 30d, or 90d (default: 30d)

Shows how users flow between brands — emitters vs attractors.

GET /api/v1/network/trending
Query ParamTypeDescription
periodenum7d, 30d, or 90d (default: 7d)
limitnumberMax trending items per category (default: 10, max: 50)

Suggestions​

No authentication required.

Suggest Events​

GET /api/v1/brands/:brandId/suggestions/events

AI-recommended reward event configurations based on network-wide patterns.

Suggest Perks​

GET /api/v1/brands/:brandId/suggestions/perks

AI-recommended perk configurations based on audience composition and balance distribution.


Converse​

POST /api/v1/converse

Authentication required + pro/enterprise tier.

Natural language queries processed through a Plan → Execute → Synthesize pipeline.

{
"query": "Which brand gives the best cashback for a $100 purchase in retail?"
}

See Converse for full documentation.