Renta Docs

Locations API

Manage pickup locations where customers collect and return rental items.

The Locations API manages pickup locations for your rental business. Locations appear in the storefront and can be assigned to bookings.

List Locations

GET /v1/locations

Query Parameters:

ParameterTypeDescription
cursorstringPagination cursor
limitintegerResults per page (1–100, default 20)
const locations = await renta.locations.list();
for (const loc of locations.data) {
  console.log(`${loc.name} — ${loc.city}, ${loc.state} ${loc.zip}`);
}
curl https://api.getrenta.io/v1/locations \
  -H "Authorization: Bearer renta_sk_live_..."

Response:

{
  "data": [
    {
      "id": "loc_abc123",
      "name": "Main Shop",
      "address": "123 Mountain Road",
      "city": "Moab",
      "state": "UT",
      "zip": "84532",
      "lat": 38.5733,
      "lng": -109.5498,
      "phone": "+1-435-555-0123",
      "hours": {
        "mon": "8:00-18:00",
        "sat": "7:00-19:00",
        "sun": "9:00-17:00"
      },
      "sort_order": 0,
      "created_at": "2026-03-01T10:00:00Z",
      "updated_at": "2026-03-01T10:00:00Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Get Location

GET /v1/locations/:id
const location = await renta.locations.get('loc_abc123');
curl https://api.getrenta.io/v1/locations/loc_abc123 \
  -H "Authorization: Bearer renta_sk_live_..."

Create Location

POST /v1/locations

Body Parameters:

ParameterTypeRequiredDescription
namestringLocation display name (max 200 chars)
addressstringStreet address (max 500 chars)
citystringCity name (max 100 chars)
statestringState/province (max 100 chars)
zipstringZIP/postal code (max 20 chars)
latnumberLatitude (-90 to 90)
lngnumberLongitude (-180 to 180)
phonestringPhone number (max 50 chars)
hoursobjectOperating hours object
sort_orderintegerDisplay order (default 0)
const location = await renta.locations.create({
  name: 'Main Shop',
  address: '123 Mountain Road',
  city: 'Moab',
  state: 'UT',
  zip: '84532',
  lat: 38.5733,
  lng: -109.5498,
  phone: '+1-435-555-0123',
  hours: {
    mon: '8:00-18:00',
    sat: '7:00-19:00',
    sun: '9:00-17:00',
  },
});
curl -X POST https://api.getrenta.io/v1/locations \
  -H "Authorization: Bearer renta_sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Main Shop",
    "address": "123 Mountain Road",
    "city": "Moab",
    "state": "UT",
    "zip": "84532",
    "lat": 38.5733,
    "lng": -109.5498,
    "phone": "+1-435-555-0123"
  }'

Update Location

PATCH /v1/locations/:id

Accepts any subset of the create parameters.

await renta.locations.update('loc_abc123', {
  phone: '+1-435-555-9999',
  hours: { mon: '9:00-17:00' },
});
curl -X PATCH https://api.getrenta.io/v1/locations/loc_abc123 \
  -H "Authorization: Bearer renta_sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"phone": "+1-435-555-9999"}'

Delete Location

DELETE /v1/locations/:id
await renta.locations.del('loc_abc123');
curl -X DELETE https://api.getrenta.io/v1/locations/loc_abc123 \
  -H "Authorization: Bearer renta_sk_live_..."

Response:

{
  "deleted": true,
  "id": "loc_abc123"
}