Skip to main content

Owner Venues API

As a venue owner, you can create, update, and manage your venues. These endpoints allow you to control venue information, images, and operational status.

List My Venues

Retrieve all venues that you own.
curl -X GET https://api.hub.com/api/owner/venues \
  -H "Authorization: Bearer YOUR_TOKEN"

Response

id
string (UUID)
required
Unique identifier for the venue
ownerId
string (UUID)
required
Owner’s user ID
name
string
required
Venue name
description
string
Venue description
street
string
required
Street address
city
string
required
City name
country
string
required
Country name
postalCode
string
Postal/ZIP code
latitude
number
required
GPS latitude coordinate
longitude
number
required
GPS longitude coordinate
status
string
required
Venue status (ACTIVE, SUSPENDED, PENDING_APPROVAL, REJECTED)
rejectReason
string
Reason for rejection (if status is REJECTED)
images
array
Array of venue images with URL and publicId
resourceCount
integer
Number of resources at this venue
createdAt
string (ISO 8601)
required
Creation timestamp
updatedAt
string (ISO 8601)
required
Last update timestamp

Create Venue

Create a new venue. The venue will be in PENDING_APPROVAL status initially.
curl -X POST https://api.hub.com/api/owner/venues \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Padel Club Madrid",
    "description": "Premium padel facility in central Madrid",
    "street": "Calle Gran Via 123",
    "city": "Madrid",
    "country": "Spain",
    "postalCode": "28013",
    "latitude": 40.4168,
    "longitude": -3.7038
  }'

Request Body

name
string
required
Venue name (cannot be blank)
description
string
Detailed description of the venue
street
string
required
Street address (cannot be blank)
city
string
required
City name (cannot be blank)
country
string
required
Country name (cannot be blank)
postalCode
string
Postal or ZIP code
latitude
number
required
GPS latitude coordinate
longitude
number
required
GPS longitude coordinate

Response

Returns the created venue object with HTTP status 201 (Created).

Update Venue

Update an existing venue’s information.
curl -X PUT https://api.hub.com/api/owner/venues/{venueId} \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Padel Club Madrid - Updated",
    "description": "Premium padel facility with new courts",
    "street": "Calle Gran Via 123",
    "city": "Madrid",
    "country": "Spain",
    "postalCode": "28013",
    "latitude": 40.4168,
    "longitude": -3.7038
  }'

Path Parameters

id
string (UUID)
required
Venue ID to update

Request Body

Same as Create Venue request body.

Response

Returns the updated venue object.

Suspend Venue

Temporarily suspend a venue. Suspended venues are not visible to players.
curl -X PATCH https://api.hub.com/api/owner/venues/{venueId}/suspend \
  -H "Authorization: Bearer YOUR_TOKEN"

Path Parameters

id
string (UUID)
required
Venue ID to suspend

Response

Returns HTTP status 204 (No Content) on success.

Reactivate Venue

Reactivate a previously suspended venue.
curl -X PATCH https://api.hub.com/api/owner/venues/{venueId}/reactivate \
  -H "Authorization: Bearer YOUR_TOKEN"

Path Parameters

id
string (UUID)
required
Venue ID to reactivate

Response

Returns HTTP status 204 (No Content) on success.

Add Venue Image

Add an image to a venue. Images should be uploaded to your CDN first, then the URL provided here.
curl -X POST https://api.hub.com/api/owner/venues/{venueId}/images \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://cdn.example.com/images/venue-photo.jpg",
    "publicId": "venue-photo-123"
  }'

Path Parameters

id
string (UUID)
required
Venue ID to add image to

Request Body

url
string
required
Full URL to the image (cannot be blank)
publicId
string
required
Public identifier for the image (cannot be blank)

Response

Returns the updated venue object with the new image included.

Delete Venue Image

Remove an image from a venue.
curl -X DELETE https://api.hub.com/api/owner/venues/{venueId}/images/{imageId} \
  -H "Authorization: Bearer YOUR_TOKEN"

Path Parameters

id
string (UUID)
required
Venue ID
imageId
string (UUID)
required
Image ID to delete

Response

Returns HTTP status 204 (No Content) on success.
After creating a venue, you’ll need to wait for admin approval before it becomes visible to players. You can check the venue status using the List My Venues endpoint.

Build docs developers (and LLMs) love