Build powerful integrations with our RESTful API. Track revenue, manage expenses, and access metrics data programmatically.
Sign up for Risenexa and access your dashboard to generate API tokens.
Navigate to Settings > API Tokens to create a new token with specific scopes.
Use your token to authenticate requests and start integrating with our endpoints.
All API requests must be authenticated using a Bearer token in the Authorization header. Tokens are scoped to specific permissions.
write_revenue
Create revenue streams
write_expense
Create expenses
read_metrics
Read metric snapshots
curl https://api.risenexa.com/api/v1/snapshots \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
https://api.risenexa.com/api/v1
All API endpoints are relative to this base URL.
/revenue_streams
write_revenue
{
"revenue": {
"startup_id": 123, // or use "startup_slug": "my-startup"
"name": "Monthly Subscription",
"source": "stripe", // stripe, manual, api
"amount": "99.99", // or "amount_cents": 9999
"currency": "USD",
"interval": "monthly", // monthly, yearly, one_time
"occurred_on": "2025-10-24",
"notes": "October revenue"
}
}
{
"id": 456,
"status": "ok"
}
curl -X POST https://api.risenexa.com/api/v1/revenue_streams \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"revenue": {
"startup_slug": "my-startup",
"name": "Monthly Subscription",
"amount": "99.99",
"currency": "USD",
"interval": "monthly",
"occurred_on": "2025-10-24"
}
}'
/expenses
write_expense
{
"expense": {
"startup_id": 123, // or use "startup_slug": "my-startup"
"name": "AWS Hosting",
"amount": "500.00", // or "amount_cents": 50000
"currency": "USD",
"category": "hosting", // hosting, marketing, payroll, etc.
"recurrence": "monthly", // monthly, yearly, one_time
"incurred_on": "2025-10-24",
"vendor": "Amazon Web Services",
"notes": "October hosting costs"
}
}
{
"id": 789,
"status": "ok"
}
curl -X POST https://api.risenexa.com/api/v1/expenses \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"expense": {
"startup_slug": "my-startup",
"name": "AWS Hosting",
"amount": "500.00",
"currency": "USD",
"category": "hosting",
"recurrence": "monthly",
"incurred_on": "2025-10-24"
}
}'
/snapshots
read_metrics
startup_id
(optional)
Filter by startup ID
startup_slug
(optional)
Filter by startup slug
limit
(optional, default: 50, max: 200)
Number of snapshots to return
[
{
"id": 1,
"startup": {
"id": 123,
"name": "My Startup",
"slug": "my-startup"
},
"recorded_on": "2025-10-24",
"mrr_cents": 999900,
"arr_cents": 11998800,
"monthly_expense_cents": 50000,
"net_income_cents": 949900,
"data": {
"custom_field": "value"
}
}
]
curl https://api.risenexa.com/api/v1/snapshots?startup_slug=my-startup&limit=10 \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
The API uses standard HTTP response codes to indicate success or failure of requests.
200 OK - Request succeeded201 Created - Resource created401 Unauthorized - Invalid/missing token403 Forbidden - Insufficient scope422 Unprocessable - Validation error{
"error": "Missing token"
}
// or for validation errors
{
"errors": [
"Name can't be blank",
"Amount must be greater than 0"
]
}
API requests are currently unlimited during beta. Rate limits will be implemented based on your subscription tier once we launch.
Pro Tip: We recommend implementing exponential backoff and retry logic for production applications to handle potential rate limits gracefully.
Our developer support team is here to help you integrate quickly and efficiently.