name: ramp description: Ramp corporate card and spend management. Use when user asks about expenses, transactions, cards, spend analysis, burn rate, or corporate finance. Triggers on ramp, expenses, transactions, spend, corporate card, burn rate. version: 1.0.0 tags: - ramp - finance - integration - expenses
Ramp
Corporate spend management via Ramp API. No OAuth needed — API key auth.
Setup
User needs a Ramp API key from their Ramp dashboard (Settings > Developer API).
Store locally (default):
mkdir -p ~/.atris/secrets/ramp
read -s -p "Ramp API key: " key
printf '%s' "$key" > ~/.atris/secrets/ramp/API_KEY
chmod 600 ~/.atris/secrets/ramp/API_KEY
unset key
echo "Saved."
The key is available at runtime as RAMP_API_KEY env var.
API Reference
Base URL: https://api.ramp.com/developer/v1
Auth header: Authorization: Bearer $RAMP_API_KEY
All responses are JSON. List endpoints support start (cursor) and page_size params for pagination.
Transactions
List Transactions
curl -s "https://api.ramp.com/developer/v1/transactions?page_size=50" \
-H "Authorization: Bearer $RAMP_API_KEY"
Filter params:
from_date/to_date— ISO 8601 (e.g.2026-03-01)department_id— filter by departmentmerchant_id— filter by merchantuser_id— filter by cardholdermin_amount/max_amount— in centsstate— PENDING, CLEARED, DECLINED
Get Transaction
curl -s "https://api.ramp.com/developer/v1/transactions/{transaction_id}" \
-H "Authorization: Bearer $RAMP_API_KEY"
Cards
List Cards
curl -s "https://api.ramp.com/developer/v1/cards?page_size=50" \
-H "Authorization: Bearer $RAMP_API_KEY"
Get Card
curl -s "https://api.ramp.com/developer/v1/cards/{card_id}" \
-H "Authorization: Bearer $RAMP_API_KEY"
Create Virtual Card
curl -s -X POST "https://api.ramp.com/developer/v1/cards/deferred/virtual" \
-H "Authorization: Bearer $RAMP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"display_name": "Marketing Q1",
"user_id": "USER_ID",
"spending_restrictions": {
"amount": 500000,
"interval": "MONTHLY",
"lock_date": null,
"categories": []
}
}'
Update Card (limits, name, owner)
curl -s -X PATCH "https://api.ramp.com/developer/v1/cards/{card_id}" \
-H "Authorization: Bearer $RAMP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"display_name": "New Name",
"spending_restrictions": {"amount": 100000, "interval": "MONTHLY"}
}'
Suspend Card
curl -s -X POST "https://api.ramp.com/developer/v1/cards/{card_id}/deferred/suspension" \
-H "Authorization: Bearer $RAMP_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Terminate Card
curl -s -X POST "https://api.ramp.com/developer/v1/cards/{card_id}/deferred/termination" \
-H "Authorization: Bearer $RAMP_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
Company
Get Company Info
curl -s "https://api.ramp.com/developer/v1/business" \
-H "Authorization: Bearer $RAMP_API_KEY"
Get Company Balance
curl -s "https://api.ramp.com/developer/v1/business/balance" \
-H "Authorization: Bearer $RAMP_API_KEY"
Users
List Users
curl -s "https://api.ramp.com/developer/v1/users?page_size=50" \
-H "Authorization: Bearer $RAMP_API_KEY"
Get User
curl -s "https://api.ramp.com/developer/v1/users/{user_id}" \
-H "Authorization: Bearer $RAMP_API_KEY"
Departments
List Departments
curl -s "https://api.ramp.com/developer/v1/departments" \
-H "Authorization: Bearer $RAMP_API_KEY"
Create Department
curl -s -X POST "https://api.ramp.com/developer/v1/departments" \
-H "Authorization: Bearer $RAMP_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Engineering"}'
Bills
List Bills
curl -s "https://api.ramp.com/developer/v1/bills?page_size=50" \
-H "Authorization: Bearer $RAMP_API_KEY"
Create Bill
curl -s -X POST "https://api.ramp.com/developer/v1/bills" \
-H "Authorization: Bearer $RAMP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"amount": {"amount": 150000, "currency_code": "USD"},
"vendor_name": "AWS",
"invoice_number": "INV-001",
"due_date": "2026-04-01",
"memo": "March hosting"
}'
Reimbursements
List Reimbursements
curl -s "https://api.ramp.com/developer/v1/reimbursements?page_size=50" \
-H "Authorization: Bearer $RAMP_API_KEY"
Cashbacks
List Cashback Payments
curl -s "https://api.ramp.com/developer/v1/cashbacks?page_size=50" \
-H "Authorization: Bearer $RAMP_API_KEY"
Accounting
List GL Accounts
curl -s "https://api.ramp.com/developer/v1/accounting/accounts" \
-H "Authorization: Bearer $RAMP_API_KEY"
List Vendors
curl -s "https://api.ramp.com/developer/v1/accounting/vendors" \
-H "Authorization: Bearer $RAMP_API_KEY"
Workflows
"What are we spending on?"
- Pull transactions:
GET /transactions?from_date=2026-03-01&to_date=2026-03-31 - Group by merchant name
- Sort by total amount descending
- Report top 10 merchants and total spend
"Monthly burn rate"
- Pull transactions for last 3 months
- Sum cleared transactions per month
- Calculate average monthly spend
- Get company balance:
GET /business/balance - Runway = balance / average_monthly_burn
"Subscription audit"
- Pull 90 days of transactions
- Find recurring merchants (same merchant, similar amounts, monthly cadence)
- Flag: unused (no logins), duplicate (overlapping tools), expensive (>$500/mo)
- Report with recommendation per subscription
"Create a project card"
- Find the user:
GET /users→ match by name/email - Confirm with user: "Create virtual card 'Project X' with $5,000/mo limit for {user}?"
- Create card:
POST /cards/deferred/virtual - Return card details
"Department spend breakdown"
- List departments:
GET /departments - For each department, pull transactions filtered by
department_id - Summarize spend per department
- Highlight departments over/under budget
"Anomaly detection"
- Pull last 30 days of transactions
- Calculate per-merchant averages from prior 90 days
- Flag transactions >2x the merchant average
- Flag new merchants with spend >$500
- Flag weekend/holiday transactions
- Report anomalies with context
Amounts
All monetary amounts in the Ramp API are in cents (integer). $150.00 = 15000.
Pagination
List endpoints return { "data": [...], "page": { "next": "cursor_string" } }.
To get next page: add ?start=cursor_string to the request.
Rate Limits
Ramp applies rate limits per API key. If you get 429, wait and retry with exponential backoff.
Full API Spec
For the complete OpenAPI spec: https://docs.ramp.com/openapi/developer-api.json
For AI-readable docs: https://docs.ramp.com/llms.txt