Use the OnRamp API to Access and Manage Your Data
Last updated: March 23, 2026
The OnRamp API lets you securely read and write data from your OnRamp instance — automate onboarding workflows, sync with Salesforce or HubSpot, or build custom integrations. It follows REST conventions, uses JSON for all requests and responses, and supports standard HTTP verbs (GET, POST, PUT, DELETE).
Always check the latest docs: New endpoints are added regularly. Visit https://api.onramp.us/docs for the most current reference.
Before You Begin
Confirm the API is enabled for your organization. Contact your OnRamp Account Manager if it’s not.
Generate an authentication token — required for every request.
Familiarize yourself with basic REST and JSON conventions.
Rate Limits
Read operations: up to 600 per minute
Write operations: up to 200 per minute
Exceeding these returns a 429 Too Many Requests response. Each request includes a unique Request ID (X-Request-Id header) — include this when contacting support@onramp.us.
URL Structure
OnRamp endpoints follow predictable RESTful patterns:
GET https://api.onramp.us/v1/users— list or create resourcesGET https://api.onramp.us/v1/tasks/{task_id}— retrieve a specific recordPOST https://api.onramp.us/v1/projects/{project_id}/archive— perform an action on a resource
Common Endpoints
Customers
GET /v1/customers— list all customersPOST /v1/customers— create a customerGET /v1/customers/{customer_id}— get by IDPUT /v1/customers/{customer_id}— updatePOST /v1/customers/{customer_id}/tag/{tag_id}— add a tagDELETE /v1/customers/{customer_id}/tag/{tag_id}— remove a tag
Customer Notes
Full CRUD for notes attached to a customer record. Notes are scoped to the customer (not to a specific project) and are only visible to internal users.
GET /v1/customers/{customer_id}/notes— list all notes for a customerPOST /v1/customers/{customer_id}/notes— create a noteGET /v1/customers/{customer_id}/notes/{note_id}— get a specific notePUT /v1/customers/{customer_id}/notes/{note_id}— update a noteDELETE /v1/customers/{customer_id}/notes/{note_id}— delete a note
Projects
GET /v1/projects— list all projectsPOST /v1/projects— create a projectGET /v1/projects/{project_id}— get by IDPUT /v1/projects/{project_id}— updateGET /v1/projects/{project_uuid}/members— list members
Tasks
GET /v1/tasks— list all tasksPOST /v1/tasks— create a taskGET /v1/tasks/{task_id}— get by IDPUT /v1/tasks/{task_id}— updatePOST /v1/tasks/{task_id}/complete— mark complete
Users & Roles
GET /v1/users/POST /v1/users/GET /v1/users/{user_id}/PUT /v1/users/{user_id}GET /v1/user-roles— list all user roles
Modules & Playbooks
GET /v1/modules/GET /v1/modules/{module_id}/PUT /v1/modules/{module_id}GET /v1/playbooks
Tags & Statuses
GET /v1/tags/POST /v1/tags/PUT /v1/tags/{tag_id}/DELETE /v1/tags/{tag_id}GET /v1/statuses
Webhooks
GET /v1/webhooks/POST /v1/webhooks/GET /v1/webhooks/{webhook_id}
Data Fields & Values
GET /v1/datafields/PUT /v1/datafields/{datafield_uuid}GET /v1/datafields/{datafield_uuid}/valuesGET /v1/datafield-values/{datafield_value_uuid}/PUT /v1/datafield-values/{datafield_value_uuid}
Bulk Datafield Value Update
Update up to 100 datafield values in a single request. Useful for bulk-populating project or account data fields from an external system without firing individual PUT calls.
POST /v1/datafield-values— bulk update datafield values
Key request parameters:
dry_run(boolean, default:true) — validate the payload without writing any changes. Set tofalseto commit.create_option_if_missing(boolean) — for Dropdown and Multi-Select fields, automatically create the option if it doesn’t exist yet.Supports all field types:
text,date,user,dropdown,multi_select,number,monetary,color,link.
Response: Best-effort processing — individual value failures don’t abort the batch. The response includes success_count, failure_count, and a failures array with details on any records that didn’t update.
Note: Always run with dry_run: true first to validate your payload before committing changes.
Tips & Troubleshooting
Use pagination and filtering to keep responses fast.
Implement retry logic with exponential backoff for rate-limit errors.
Log
X-Request-Idvalues for every request — you’ll need them if you contact support.Validate webhook signatures to confirm authenticity.
401 Unauthorized— check your authentication token.404 Not Found— verify the resource ID exists and is accessible.