Skip to main content
GET
/
api
/
horses
List Horses
curl --request GET \
  --url https://api.example.com/api/horses
{
  "success": true,
  "data": [
    {
      "_id": "507f1f77bcf86cd799439011",
      "seller_id": {
        "_id": "507f191e810c19729de860ea",
        "full_name": "John Smith",
        "seller_profile": {
          "is_verified_badge": true
        }
      },
      "name": "Thunder",
      "age": 8,
      "breed": "Thoroughbred",
      "discipline": "Show Jumping",
      "pedigree": "Sire: Storm Cat, Dam: Winning Colors",
      "location": {
        "country": "Argentina",
        "region": "Buenos Aires",
        "city": "San Isidro",
        "coordinates": {
          "lat": -34.4708,
          "lng": -58.5247
        }
      },
      "price": 45000,
      "currency": "USD",
      "photos": [
        {
          "url": "https://cdn.horsetrust.com/photos/abc123.jpg",
          "caption": "Thunder at competition",
          "is_cover": true,
          "uploaded_at": "2026-03-01T10:00:00Z"
        }
      ],
      "videos": [
        {
          "url": "https://youtube.com/watch?v=abc123",
          "embed_url": "https://www.youtube.com/embed/abc123",
          "video_type": "competition",
          "title": "Thunder jumping 1.40m",
          "recorded_at": "2026-02-15T00:00:00Z",
          "uploaded_at": "2026-03-01T10:00:00Z"
        }
      ],
      "status": "active",
      "views_count": 234,
      "created_at": "2026-03-01T10:00:00Z",
      "updated_at": "2026-03-05T15:30:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 12,
    "total": 45,
    "pages": 4
  }
}

Authentication

Optional - Public endpoint, authentication provides additional features

Query Parameters

breed
string
Filter by breed (case-insensitive partial match)
discipline
string
Filter by discipline (case-insensitive partial match)
country
string
Filter by country (case-insensitive partial match)
region
string
Filter by region (case-insensitive partial match)
min_price
number
Minimum price filter
max_price
number
Maximum price filter
Full-text search across name, breed, discipline, and pedigree
page
number
default:"1"
Page number for pagination (minimum: 1)
limit
number
default:"12"
Number of results per page (minimum: 1, maximum: 50)
sort
string
default:"created_at"
Sort order. Options:
  • created_at - Newest first (default)
  • price_asc - Price low to high
  • price_desc - Price high to low
  • age - Age ascending

Response

success
boolean
Indicates if the request was successful
data
array
Array of horse listings
_id
string
Horse unique identifier
seller_id
object
Seller information
_id
string
Seller ID
full_name
string
Seller full name
seller_profile
object
is_verified_badge
boolean
Whether seller has verified badge
name
string
Horse name
age
number
Horse age in years
breed
string
Horse breed
discipline
string
Primary discipline
pedigree
string
Pedigree information
location
object
country
string
required
Country location
region
string
required
Region/state
city
string
City
coordinates
object
lat
number
Latitude
lng
number
Longitude
price
number
Listing price
currency
string
Currency code (USD, EUR, ARS, BRL, MXN)
photos
array
Array of photos (minimum 3)
url
string
required
Photo URL
caption
string
Photo caption
is_cover
boolean
Whether this is the cover photo
uploaded_at
string
Upload timestamp
videos
array
Array of videos
url
string
required
Video URL
embed_url
string
Auto-generated embed URL for YouTube/Vimeo
video_type
string
required
Type: training, competition, other
title
string
Video title
description
string
Video description
recorded_at
string
required
Recording date
uploaded_at
string
Upload timestamp
status
string
Listing status: active, sold, paused, draft
views_count
number
Number of views
created_at
string
Creation timestamp
updated_at
string
Last update timestamp
pagination
object
Pagination metadata
page
number
Current page number
limit
number
Results per page
total
number
Total number of results
pages
number
Total number of pages

Examples

curl -X GET "https://api.horsetrust.com/api/horses?breed=thoroughbred&discipline=jumping&page=1&limit=12&sort=price_asc" \
  -H "Content-Type: application/json"
{
  "success": true,
  "data": [
    {
      "_id": "507f1f77bcf86cd799439011",
      "seller_id": {
        "_id": "507f191e810c19729de860ea",
        "full_name": "John Smith",
        "seller_profile": {
          "is_verified_badge": true
        }
      },
      "name": "Thunder",
      "age": 8,
      "breed": "Thoroughbred",
      "discipline": "Show Jumping",
      "pedigree": "Sire: Storm Cat, Dam: Winning Colors",
      "location": {
        "country": "Argentina",
        "region": "Buenos Aires",
        "city": "San Isidro",
        "coordinates": {
          "lat": -34.4708,
          "lng": -58.5247
        }
      },
      "price": 45000,
      "currency": "USD",
      "photos": [
        {
          "url": "https://cdn.horsetrust.com/photos/abc123.jpg",
          "caption": "Thunder at competition",
          "is_cover": true,
          "uploaded_at": "2026-03-01T10:00:00Z"
        }
      ],
      "videos": [
        {
          "url": "https://youtube.com/watch?v=abc123",
          "embed_url": "https://www.youtube.com/embed/abc123",
          "video_type": "competition",
          "title": "Thunder jumping 1.40m",
          "recorded_at": "2026-02-15T00:00:00Z",
          "uploaded_at": "2026-03-01T10:00:00Z"
        }
      ],
      "status": "active",
      "views_count": 234,
      "created_at": "2026-03-01T10:00:00Z",
      "updated_at": "2026-03-05T15:30:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 12,
    "total": 45,
    "pages": 4
  }
}

Error Responses

success
boolean
false
message
string
Error description

500 - Server Error

{
  "success": false,
  "message": "Server error"
}

Build docs developers (and LLMs) love