API - Overview and Quick Start

The API lets your own website, app or script read and change the data in your account: customers, leads, inventory, payments and more. This article explains how it works from the ground up and links to the article for each endpoint. If you are new to the API, start here.

WhatValue
Base URLhttps://rental.software/api6
Current versionAPI6. Versions 1 through 5 have been shut down
Data formatJSON responses. Requests can be form fields or JSON
AuthenticationAn API key sent as the apiKey parameter
RequirementThe API & WordPress module on your subscription

Before You Start

  1. Activate the API & WordPress module under Settings > Subscription.
  2. Create an API key and give it the permissions your integration needs. See API - Setup Access.
  3. Know the costs. The first 500 API calls each month are free. After that, calls are billed. See API - Transaction Charges.

Your First Call

Paste this into a terminal, with your own key in place of YOUR_API_KEY. It asks for the first two items in your inventory.

curl "https://rental.software/api6/rentals?apiKey=YOUR_API_KEY&limit=2"

You can also open the same URL in a web browser. If the key works, you get JSON back:

{
  "offset": 0,
  "limit": "2",
  "count": "127",
  "first": "https://rental.software/api6/rentals?offset=0&limit=2",
  "next": "https://rental.software/api6/rentals?offset=2&limit=2",
  "previous": "https://rental.software/api6/rentals?offset=0&limit=2",
  "items": [
    { "id": "336198", "ridename": "10x10 Tent" },
    { "id": "336199", "ridename": "11 x 11 Castle Jumper" }
  ],
  "request_time": 1760000000
}

(The items are shortened here.) If you get an error instead, look it up in API - Errors and Rate Limits.


How Requests Work

The URL

Every URL starts with the base URL, followed by the name of an endpoint, and sometimes the ID of one record:

https://rental.software/api6/{endpoint}
https://rental.software/api6/{endpoint}/{id}

For example, /api6/customers is the list of customers and /api6/customers/533261 is one customer.

The HTTP Method

MethodWhat it doesExample
GETReads data. Nothing is changedGET /api6/leads/520247 reads a lead
POST without an IDCreates a new recordPOST /api6/customers creates a customer
POST with an IDUpdates that record. Fields you do not send stay the samePOST /api6/customers/533261 updates a customer
DELETE with an IDDeletes that record, on the endpoints that support itDELETE /api6/leads/520247 deletes a lead

Each endpoint article says which methods it accepts. Using a method an endpoint does not accept returns HTTP 405.

The API Key

Send your key in a parameter named apiKey (with a capital K) on every call. It can go in any of these places:

  • In the URL: ?apiKey=YOUR_API_KEY. Simple, and the usual choice for GET requests.
  • In the form fields of a POST.
  • In a JSON body: {"apiKey": "YOUR_API_KEY", ...}.

For POST requests, prefer the body over the URL. URLs tend to end up in server logs and browser history. Never put your key in JavaScript that runs in a visitor's browser. Call the API from your server.

Sending Data

When you create or update a record, send the fields in one of two ways.

As form fields, the same way an HTML form posts:

curl -X POST "https://rental.software/api6/customers" \
  -d "apiKey=YOUR_API_KEY" \
  -d "name=Jordan Rivera" \
  -d "email=jordan.rivera@example.com"

Or as JSON, with the Content-Type: application/json header:

curl -X POST "https://rental.software/api6/customers" \
  -H "Content-Type: application/json" \
  -d '{"apiKey": "YOUR_API_KEY", "name": "Jordan Rivera", "email": "jordan.rivera@example.com"}'

HTML tags are removed from the values you send.


How Responses Work

Status Codes

Always check the HTTP status code first. A code in the 200s means the call worked. A code in the 400s means something was wrong with the request, and the JSON body has a message explaining what. The full list is in API - Errors and Rate Limits.

Creating and Updating

When you create or update a customer or a lead, the answer tells you the ID of the record in recordid:

{
  "status": 201,
  "message": "Created",
  "recordid": 533297,
  "request_time": 1760000000
}

Keep that ID. You need it to read, update or link the record later.

Lists and Paging

List endpoints return a page of records at a time, in items. Two parameters control the page:

  • limit is how many records you want. The default is 25.
  • offset is how many records to skip. The default is 0.

To read a whole list, start at offset=0 and add your limit each time (0, 100, 200 and so on). Stop when a page comes back with fewer records than your limit. If you ask for a page past the end, most lists answer with HTTP 404.

The first, next and previous links in a response show the offsets for you, but they do not include your API key or your other parameters. Add those again before calling one.

More Detail With _body

Many list calls return a short version of each record to stay fast. Add _body=true to get the full records. The request takes longer, so use it only when you need the extra fields.

Dates and Times

Most date fields come back three ways, so you can use whichever is easiest:

"createtime": "2025-09-29T16:47:54-04:00",
"createtime_ts": "1759178874",
"createtime_utc": "2025-09-29T20:47:54Z"
  • The plain field is the date and time in your account's time zone.
  • _ts is a Unix timestamp: the number of seconds since January 1, 1970 (UTC).
  • _utc is the same moment in UTC.

When you send a date, each endpoint article says which format it expects. Most accept a Unix timestamp.

Extra Fields

Responses often include more fields than the articles list, and new fields can be added over time. Write your code so it reads the fields it needs and ignores the rest.


Rate Limits in Short

An API key can make 15 calls in 10 seconds and 300 calls in 5 minutes. Past that, calls are refused with HTTP 429 for a short time. Details and sample code are in API - Errors and Rate Limits.


Endpoint Index

Getting Started

Customers and Leads

EndpointWhat you can doArticle
customersCreate, update or delete a customerCustomers - Create or Update
customersRead one customerCustomers - Retrieve Details
customersList customersCustomers - Retrieve List
leadsCreate, update or delete a leadLeads - Create or Update
leadsRead one leadLeads - Retrieve Details
leadsList and search leadsLeads - Retrieve List
attachUpload a file to a leadAttachments - Upload a File to a Lead
handle_paymentRecord a payment on a leadPayments - Create
filters, filters_listRead your saved filtersFilters - Retrieve List and Details

Inventory, Availability and Pricing

EndpointWhat you can doArticle
rentalsList rental itemsRentals - Retrieve List
rentalsRead one rental item, with pricesRentals - Retrieve Details
categories_listList inventory categoriesCategories - Retrieve List
popular_itemsList your most rented itemsPopular Items - Retrieve List
availability_pricingCheck availability and price for a date and timeAvailability & Pricing API Endpoint
availability_listSee what is rented and available on one dayAvailability List - Retrieve by Date
packinglistsRead and update packing list progressPacking Lists - Retrieve Details or Update

Settings Lists

EndpointWhat you can doArticle
statuses_list, surfaces_list, deliverymethods_list, customertypes_list, paymenttypes_list, referrals_list, emailtemplates_list, positions_listRead the lists you set up in your settingsLookup Lists
locationsList your locations or read oneLocations - Retrieve List or Location Data
statsRead your dashboard statisticsStats - Retrieve List

Workers

EndpointWhat you can doArticle
workersList workersWorkers - Retrieve List
workersRead one workerWorkers - Retrieve Details
shifts_listList worker shifts in a date rangeShifts - Retrieve List

Sales CRM

EndpointWhat you can doArticle
tasksCreate a taskTasks - Create
journalsCreate a journal entryJournal - Create
journalsRead and update journal entries (October 2026 release)Journal - Retrieve and Update

Vendors

EndpointWhat you can doArticle
vendors, purchase_ordersRead vendors and purchase orders (October 2026 release)Vendors and Purchase Orders

Messaging, Webhooks and Zapier

TopicWhat you can doArticle
textSend and receive text messages with IO PhoneSMS, Text Message Sending and Receiving
WebhooksHave lead data sent to your own serverWebhooks
ZapierCreate or update leads from a ZapCreate/Update Lead with Zapier
ZapierSend lead data to a ZapSending Data Using Zapier and Automations

A Typical First Project

A common first integration is a custom quote form on your own website. The calls it makes are:

  1. GET /api6/categories_list and GET /api6/rentals to show what you offer. Store the results and refresh them once a day.
  2. POST /api6/availability_pricing to check that the items are free on the customer's date and to show a price.
  3. POST /api6/leads with the customer's details, the event details and the chosen items. This creates the customer and the lead in one call.

The PHP example shows how to make these calls from code.

Is this article helpful?
0 0 0