Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to Ramp

Scalekit connector
Open markdown

The Ramp connector lets your AI agent act in each user's Ramp account. Each user signs in to Ramp once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 114 tools.

Tools
114
What they doRead · write · destructive
71 · 41 · 271 read41 write2 destructive
Users sign in with
OAuth app
Your own Ramp app

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Ramp connection

    In AgentKit > Connections, create a Ramp connection and copy its redirect URI. The name you give it is the connection_name your code passes. See Configure connections.

  4. Register an OAuth app

    Ramp connections use your own OAuth app. Register one with Ramp and add the redirect URI you copied.

    Then enter the app's Client ID and Client Secret on the Ramp connection.

  5. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'ramp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Ramp:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'ramp_accounting_connection_list',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • ramp_accounting_connection_listList all accounting system connections for the Ramp business.Read-only

    List Accounting Connections

    List all accounting system connections for the Ramp business. Returns the connections with ID, accounting system, status and creation time. Use this to see which ERP is connected, or to get an inactive connection's ID for the accounting_connection_id filter on accounting list tools.

    Inputs

    This tool takes no inputs.

  • ramp_accounting_field_listList the custom accounting fields (such as class, department or project) configured in Ramp, filtered by remote ID or active state.Read-only

    List Accounting Fields

    List the custom accounting fields (such as class, department or project) configured in Ramp, filtered by remote ID or active state. Returns a page of fields with Ramp ID, remote ID, name, input type and active flag, plus page.next. Use this to find field IDs for coding. Use ramp_accounting_field_option_list for a field's options.

    Inputs

    accounting_connection_idstring
    If this accounting field belongs to an inactive accounting connection, you must specify that accounting connection's ID. Get the ID from ramp_accounting_connection_list. Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6.
    is_activeboolean
    Filter by active status. If not provided, returns all custom accounting fields. If true, returns only active fields. If false, returns only inactive fields. Example: true.
    page_sizeinteger
    Number of results per page, between 2 and 100. Ramp returns 20 when this is left empty. Example: 50.
    remote_idstring
    Filter by Remote/external ID of custom accounting fields in ERP system. Example: 1001.
    startstring
    Pagination cursor: the ID of the last item on the previous page. Copy the start value from the page.next URL in the previous response; leave empty for the first page. Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6.
  • ramp_accounting_field_option_listList the options of a custom accounting field, filtered by field, code, remote ID, visibility or active state.Read-only

    List Accounting Field Options

    List the options of a custom accounting field, filtered by field, code, remote ID, visibility or active state. Returns a page of options with Ramp ID, remote ID, code, name, visibility and active flag, plus page.next. Use this to pick an option for accounting coding. Set field_id (from ramp_accounting_field_list) or field_remote_id, not both.

    Inputs

    accounting_connection_idstring
    If this custom field option belongs to an inactive accounting connection, you must specify that accounting connection's ID. Get the ID from ramp_accounting_connection_list. Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6.
    codestring
    Filter by code of custom accounting field options. Example: 6000.
    field_idstring
    The ID of the custom accounting field that this custom accounting field option belongs to. This is the ramp_id returned from custom field endpoints. Mutually exclusive with field_remote_id. Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6.
    field_remote_idstring
    Remote/external ID of the custom accounting field in the ERP system. Mutually exclusive with field_id. Example: class.
    is_activeboolean
    Filter by active status. If not provided, returns all custom accounting field options. If true, returns only active options. If false, returns only inactive options. Example: true.
    page_sizeinteger
    Number of results per page, between 2 and 100. Ramp returns 20 when this is left empty. Example: 50.
    remote_idstring
    Filter by Remote/external ID of custom accounting field options in ERP system. Example: 1001.
    startstring
    Pagination cursor: the ID of the last item on the previous page. Copy the start value from the page.next URL in the previous response; leave empty for the first page. Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6.
    visibilitystring
    Filter by visibility of custom accounting field options. If not provided, returns options with any visibility. Example: HIDDEN.one of HIDDENVISIBLE
  • ramp_accounting_vendor_listList the vendors synced into Ramp from the connected accounting system (ERP), filtered by code, remote ID, active or sync state.Read-only

    List Accounting Vendors

    List the vendors synced into Ramp from the connected accounting system (ERP), filtered by code, remote ID, active or sync state. Returns a page of accounting vendors with Ramp ID, remote ID, code, name and active flag, plus page.next. Use this to link a Ramp vendor to an ERP vendor. Use ramp_vendor_list for Ramp vendors.

    Inputs

    accounting_connection_idstring
    If this object belongs to an inactive accounting connection, you must specify that accounting connection's ID. Get the ID from ramp_accounting_connection_list. Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6.
    codestring
    Filter by code. Example: 6000.
    is_activeboolean
    Filter by active status. If not provided, returns all objects. If true, returns only active objects. If false, returns only inactive objects. Example: true.
    is_syncedboolean
    Set to true to return only vendors synced from the accounting system, or false for only those that are not. Example: true.
    page_sizeinteger
    Number of results per page, between 2 and 100. Ramp returns 20 when this is left empty. Example: 50.
    remote_idstring
    Filter by Remote/external ID. Example: 1001.
    startstring
    Pagination cursor: the ID of the last item on the previous page. Copy the start value from the page.next URL in the previous response; leave empty for the first page. Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6.
  • ramp_ai_spend_api_key_listList AI provider (OpenAI, Anthropic) API keys tracked by Ramp with their estimated spend for a date range.Read-only

    List AI Spend API Keys

    List AI provider (OpenAI, Anthropic) API keys tracked by Ramp with their estimated spend for a date range. Returns a page of API keys sorted by estimated cost, with key ID, provider, status, owner and estimated cost, plus page.next. Use this to see which API keys drive AI cost. Use ramp_ai_spend_team_list for spend by person and ramp_ai_spend_usage_list for daily usage.

    Inputs

    from_datestringrequired
    Start date of the requested period in UTC, inclusive. Must be on or after 2023-01-01. The period can span up to 365 days. Example: 2026-01-01.
    to_datestringrequired
    End date of the requested period in UTC, exclusive. The period can span up to 365 days. Example: 2026-02-01.
    page_sizeinteger
    Number of results per page, between 2 and 100. Ramp returns 20 when this is left empty. Example: 50.
    providersstring
    Comma-separated providers to include. Omit to include OpenAI and Anthropic. Example: ANTHROPIC,OPENAI.
    startstring
    Pagination cursor. Copy the start value from the page.next URL in the previous response; leave empty for the first page. Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6.
    statusesstring
    Comma-separated current API key statuses to include. Omit to exclude terminated API keys. Example: active,expired.
  • ramp_ai_spend_team_listList Ramp users with estimated AI spend (OpenAI, Anthropic, Cursor) in a date range, optionally only anomalous spenders.Read-only

    List AI Spend by User

    List Ramp users with estimated AI spend (OpenAI, Anthropic, Cursor) in a date range, optionally only anomalous spenders. Returns a page of users with profile details and estimated AI spend, plus page.next. Use this to see who spends on AI tools. Use ramp_ai_spend_api_key_list for spend by API key.

    Inputs

    from_datestringrequired
    Start date of the requested period in UTC, inclusive. The period can span up to 365 days. Example: 2026-01-01.
    to_datestringrequired
    End date of the requested period in UTC, exclusive. The period can span up to 365 days. Example: 2026-02-01.
    is_anomalousboolean
    Filter by whether Ramp detected anomalous AI spend during the requested period. Omit to include all users. Example: true.
    page_sizeinteger
    Number of results per page, between 2 and 100. Ramp returns 20 when this is left empty. Example: 50.
    providersstring
    Comma-separated AI providers to include. Omit to include all supported providers. Example: ANTHROPIC,CURSOR.
    startstring
    Pagination cursor. Copy the start value from the page.next URL in the previous response; leave empty for the first page. Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6.
  • ramp_ai_spend_usage_listList daily AI usage and estimated spend grouped by provider, model and product for a date range.Read-only

    List AI Usage

    List daily AI usage and estimated spend grouped by provider, model and product for a date range. Returns a page of daily rows with provider, model, product, usage and estimated cost, plus page.next. Use this to analyse AI usage trends. Use ramp_ai_spend_team_list for spend by person.

    Inputs

    from_datestringrequired
    Start date of the requested period in UTC, inclusive. The period can span up to 365 days. Example: 2026-01-01.
    to_datestringrequired
    End date of the requested period in UTC, exclusive. The period can span up to 365 days. Example: 2026-02-01.
    modelsstring
    Comma-separated exact provider model names to include. Omit to include all models. Example: gpt-4o,claude-sonnet-4-5.
    page_sizeinteger
    Number of results per page, between 2 and 100. Ramp returns 20 when this is left empty. Example: 50.
    productsstring
    Comma-separated exact product names reported by providers to include. Omit to include all products. Example: ChatGPT.
    providersstring
    Comma-separated AI providers to include. Omit to include OpenAI and Anthropic. Example: ANTHROPIC,OPENAI.
    startstring
    Pagination cursor. Copy the start value from the page.next URL in the previous response; leave empty for the first page. Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6.
  • ramp_approval_listGet approval data for a set of Ramp transactions, reimbursements or bills.Read-only

    List Approvals

    Get approval data for a set of Ramp transactions, reimbursements or bills. Returns a page of approval records with the approval steps, approvers and their status for each requested item, plus page.next. Use this to see who has approved or still needs to approve spend. Use ramp_transaction_list or ramp_bill_list to find the item IDs first.

    Inputs

    entity_idsarrayrequired
    IDs (UUIDs) of the transactions, reimbursements or bills to get approvals for, all of the type set in entity_type. Sent as repeated entity_ids query parameters. Example: ["3fa85f64-5717-4562-b3fc-2c963f66afa6"].
    entity_typestringrequired
    Type of resource under approval. Example: BILL.one of BILLREIMBURSEMENTTRANSACTION
    page_sizeinteger
    Number of results per page, between 2 and 100. Ramp returns 20 when this is left empty. Example: 50.
    startstring
    Pagination cursor: the ID of the last item on the previous page. Copy the start value from the page.next URL in the previous response; leave empty for the first page. Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6.