Skip to main content
AI/MLjeremylongshore

ramp-ci-integration

"Ramp ci integration \u2014 corporate card and expense management API\

Stars
2,267
Source
jeremylongshore/claude-code-plugins-plus-skills
Updated
2026-05-31
Slug
jeremylongshore--claude-code-plugins-plus-skills--ramp-ci-integration
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/jeremylongshore/claude-code-plugins-plus-skills/HEAD/plugins/saas-packs/ramp-pack/skills/ramp-ci-integration/SKILL.md -o .claude/skills/ramp-ci-integration.md

Drops the SKILL.md into .claude/skills/ramp-ci-integration.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Ramp Ci Integration

Overview

Implementation patterns for Ramp ci integration using the Developer API with OAuth2 authentication.

Prerequisites

  • Completed ramp-install-auth setup

Instructions

Step 1: API Call Pattern

import os, requests

# Obtain token
token_resp = requests.post(f"{os.environ['RAMP_BASE_URL'].replace('/v1','')}/v1/token", data={
    "grant_type": "client_credentials",
    "client_id": os.environ["RAMP_CLIENT_ID"],
    "client_secret": os.environ["RAMP_CLIENT_SECRET"],
})
access_token = token_resp.json()["access_token"]
headers = {"Authorization": f"Bearer {access_token}"}

cards = requests.get(f"{os.environ['RAMP_BASE_URL']}/cards", headers=headers)
print(f"Cards: {len(cards.json()['data'])}")

Output

  • Ramp API integration for ci integration

Error Handling

Error Cause Solution
401 Unauthorized Expired token Re-authenticate
429 Rate Limited Too many requests Implement backoff
403 Forbidden Insufficient permissions Check API app permissions

Resources

Next Steps

See related Ramp skills for more workflows.