Skip to main content
POST
Create Horse

Authentication

Required - JWT Bearer token with seller or admin role

Request Body

string
required
Horse name (trimmed)
number
required
Horse age in years (0-40)
string
required
Horse breed (trimmed)
string
required
Primary discipline (trimmed)
string
Pedigree information
object
required
Horse location information
string
required
Country
string
required
Region or state
string
City
object
GPS coordinates
number
Latitude
number
Longitude
number
Listing price (minimum: 0)
string
default:"USD"
Currency code: USD, EUR, ARS, BRL, MXN
array
required
Array of photos (minimum 3 required)
string
required
Photo URL
string
Photo caption
boolean
default:false
Whether this is the cover photo
array
Array of videos (optional)
string
required
Video URL (YouTube or Vimeo URLs will auto-generate embed_url)
string
required
Type: training, competition, other
string
Video title
string
Video description
string
required
Recording date (ISO 8601)

Response

boolean
Indicates if the request was successful
string
Success message
object
Created horse listing
string
Horse unique identifier
string
Seller ID (automatically set from authenticated user)
string
Horse name
number
Horse age
string
Horse breed
string
Primary discipline
string
Pedigree information
object
Location details
number
Listing price
string
Currency code
array
Array of photos with generated IDs and timestamps
array
Array of videos with auto-generated embed_url for YouTube/Vimeo
string
Initial status (always “draft”)
number
Initial view count (always 0)
string
Creation timestamp
string
Last update timestamp

Notes

  • New listings are created with status: "draft" by default
  • seller_id is automatically set from the authenticated user
  • views_count is initialized to 0
  • Video embed_url is auto-generated for YouTube and Vimeo URLs
  • Photos must include at least 3 items (validated)
  • Full-text search index includes name, breed, discipline, and pedigree

Examples

Error Responses

400 - Validation Error

401 - Unauthorized

403 - Forbidden

500 - Server Error