From ramp-pack
Sets up OAuth2 authentication for Ramp API (corporate cards/expenses). Guides credential setup, env config, token fetch via Python, and connection verification.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin ramp-packThis skill is limited to using the following tools:
Set up Ramp API authentication using OAuth2 client credentials flow with sandbox and production environments.
Implements OAuth2 client credentials for Ramp API to manage corporate cards and expenses securely. Includes token fetch, API calls, and error handling for integrations.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
Set up Ramp API authentication using OAuth2 client credentials flow with sandbox and production environments.
1. Go to Ramp Dashboard > Settings > Developer
2. Create new API application
3. Copy Client ID and Client Secret
4. Note: Sandbox URL is sandbox-api.ramp.com, Production is api.ramp.com
# .env
RAMP_CLIENT_ID=your_client_id
RAMP_CLIENT_SECRET=your_client_secret
RAMP_BASE_URL=https://sandbox-api.ramp.com/v1 # Switch to api.ramp.com for prod
import os, requests
token_resp = requests.post("https://sandbox-api.ramp.com/v1/token", data={
"grant_type": "client_credentials",
"client_id": os.environ["RAMP_CLIENT_ID"],
"client_secret": os.environ["RAMP_CLIENT_SECRET"],
})
token_resp.raise_for_status()
access_token = token_resp.json()["access_token"]
print(f"Token obtained (expires in {token_resp.json()['expires_in']}s)")
headers = {"Authorization": f"Bearer {access_token}"}
resp = requests.get(f"{os.environ['RAMP_BASE_URL']}/cards", headers=headers)
resp.raise_for_status()
cards = resp.json()["data"]
print(f"Connected! Found {len(cards)} cards")
| Error | Cause | Solution |
|---|---|---|
invalid_client | Wrong credentials | Verify client_id/secret in Dashboard |
401 Unauthorized | Token expired | Re-authenticate (tokens expire in 1 hour) |
| Wrong environment | Sandbox vs prod URL | Check RAMP_BASE_URL |
First API call: ramp-hello-world