Introduction
Do you want to link your website to your equicty - equstable account? Do you want to save time by having your horses information stored in equicty shared with your website in one click? Not only horse profile information such as age, pedigree, color, horse height, etc., but also your photos and videos can be made available on your website in real time!
Therefore equicty has developed an Application Programming Interface called API to allow you to built an automated connection between your website and your equicty stable management account.
The benefits of this great feature;
- Save you tremendous time by avoiding you to duplicate information on your business website ! Once a horse is created in equicty it will appear in real-time on your business website
- Make sure your business website is always up-to-date without any effort ! Having your latest horses arrived at your stable, new upload of videos or photos on existing horses etc updated in in real time

What kind of information can be shared between equicty and your website ?
Horse Identification information: Gender, Age, Date of Birth, Studbook, Colour, Horse Height
Horses pedigree: 3 generations
Horses pictures: Profile picture, miniature, and other pictures you have made public
Horses videos: videos you have made public
How to get started with the integration ?
STEP 1: Upgrade your equicty account with the "Website API" add-on feature. Read more..
STEP 2: Share following information with your webmaster (your website developer)
- Your unique API key. After upgrading your account you can find this key on following location on your account; Settings > My Stable > API key
VERY IMPORTANT; Please handle the key very securely ! Keep it very secure !
- Technical API integration documentation you can find below in this document
STEP 3: Your webmaster can start accessing the required information from your equicty account
STEP 4: When your webmaster has done the job you can start configuring your equicty account!
Configure which horses you want to have synchronised with your website by activating the earth symbol
in the horse profile section.
Configure which photos or videos you want to share with your website by activating the earth symbol
in the Media module
API Technical documentation (For the webmasters)
Authentication
Authenticate your account when using the API by including your secret API key in the request. The customer administrator can find the website API key under Settings -> My Stable -> Website API.
Your API keys carry many privileges, so be sure to keep them secret! Do not share your secret API keys.
Authentication to the API is performed via HTTP Basic Auth. Provide your API key as the basic auth username value. You do not need to provide a password.
Authenticate via bearer: headers in:
-
- Authorization: Bearer {{website api key}}
-
- Accept-Language: EN/FR/DE/NL (default EN)
All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.
Errors
Equicty uses conventional HTTP response codes to indicate the success or failure of an API request. In general, codes in the 2xx range indicate success, codes in
the 4xx range indicate an error that failed given the information provided (e.g., a required parameter was omitted, a charge failed, etc.), and codes in the 5xx range indicate an error with the servers of equicty (exceptional).
To understand why a request is declined, see status codes below. HTTP status code summary
200-OK
400 - Bad Request
401 - Unauthorized
500 - Server Errors
Everything worked as expected.
The request was unacceptable, often due to missing a required parameter.
No valid API key provided.
Something went wrong on the server.
Basic JSON frame returned from API:
When is error, data have to looks like this:
{
“status” : false,
“msg” : “what was wrong” }
When is ok, data have to: {
“data” : {
//Other json data, arrays models etc
} }
Successful Request Failed Request
Demo example
http://demostable.equicty.com/
200 OK
400 Bad Request
Request list of public horses
Description: Function return list of public horses
Route: https://portal.equicty.com/equicty/api/public/web/horses Method: POST
Params in:
gender: STALLION/MARE/GELDING (optional filter)
headers in:
Authorization: Bearer {{website api key}}
Accept-Language: EN/FR/DE/NL (default EN)
Params out:
[
{
"id": 1,
"name": "horse name example", "age": 5,
"birthday": "07-03-2012",
"sex": "Gelding",
"studbook": "BWP",
"color": "Paint",
"height": 172, "heightunit": "cm" "horsetelex": false, "pedigree": {
"v": "father", "vv": "",
"vvv": "", "vvm": "", "vm": "", "vmv": "", "vmm": "", "m": "Mother", "mv": "", "mvv": "", "mvm": "", "mm": "", "mmv": "", "mmm": ""
},
"profile": "https://...jpg", "miniature": "https://...jpg
} ]
// Only for horses not synced to horesetelex
Request public horse details
Description: Function return details of a public horse
Route: https://portal.equicty.com/equicty/api/public/web/horses/{{horseid}} Method: GET
Params in:
headers in:
Authorization: Bearer {{website api key}}
Accept-Language: EN/FR/DE/NL (default EN)
Params out:
{
"id": 1,
"name": "horse name example", "age": 5,
"birthday": "07-03-2012",
"sex": "Gelding",
"studbook": "BWP",
"color": "Paint",
"height": 172, "heightunit": "cm", "horsetelex": false, "pedigree": {
"v": "father", "vv": "",
"vvv": "", "vvm": "", "vm": "", "vmv": "", "vmm": "", "m": "Mother", "mv": "", "mvv": "", "mvm": "", "mm": "", "mmv": "", "mmm": ""
},
"profile": "https://...jpg", "miniature": "https://...jpg", "videos": [
// Only for horses not synced to horesetelex
{
"name": "",
"module": "",
"mediaurl": "https://www.youtube.com/watch?v=b8-KqYAWJ4M", "miniatureurl": "https://i.ytimg.com/vi/b8-KqYAWJ4M/hqdefault.jpg"
} ],
"pictures": [ {
"name": "",
"module": "",
"mediaurl": "https://...4.png", "miniatureurl": "https://....png"
} ]
}
Request HorseTelex pedigree
Description: Function returns the horestelex pedigree of a public horse. This is only available for horses where “horsetelex” attribute is true. This return the html output and it is possible to override the color scheme. Remark: do not add the # character to the color value, this is done in the api!
Route: https://portal.equicty.com/equicty/api/public/web/horses/pedigree/{{horseid}} Method: POST
Params in:
{
: "ff0000", : "00ff00", : "0000ff"
}
headers in:
Authorization: Bearer {{website api key}} Accept-Language: EN/FR/DE/NL (default EN) Params out:
Html representation of the pedigree.
Logo integrated in the html output must be visible and may not be removed!
EQUICTY SAAS AGREEMENT article 4.3
“Customer agrees that, with any use of the SAASservice, the name, trademark and logo of EQUICTY and/or its suppliers (such as e.g. the HorseTelex database) shall be clearly visible and that Customer shall refrain from altering or removing any such notices from the products and services. “
"horse_textcolor" "mare_bgcolor" "mare_textcolor"
Sample code
List of public horses
<?php
// get list of public horses with filter gender
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://portal.equicty.com/equicty/api/public/web/horses", CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\n\t\"gender\": \"\"\n}", CURLOPT_HTTPHEADER => array(
"authorization: Bearer {{ website api key }}", "cache-control: no-cache",
"content-type: application/json
), ));
$response = curl_exec($curl); $err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HorseTelex pedigree
<?php
// get html output for the horstelex pedigree
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://portal.equicty.com/equicty/api/public/web/horses/pedigree/{{horse ID}}", CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS =>
"{\n\t\"horse_textcolor\":\"00AFA8\",\n\t\"mare_bgcolor\":\"efefef\",\n\t\"mare_textcolor\":\"000000\"\n}", CURLOPT_HTTPHEADER => array(
"authorization: Bearer {{ website api key }}", "cache-control: no-cache",
"content-type: application/json”
), ));
$response = curl_exec($curl); $err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Integration with Public API
openapi: "3.0.0"
info:
version: 1.0.0
title: Stable Management Public REST API v2
license:
name: MIT
servers:
- url: /equicty/api/
paths:
/public/web/horse:
post:
summary: Create a new horse
operationId: createHorse
tags:
- Horse
security:
- EquictyAuthenticationBearer: [ ]
requestBody:
description: create horse request
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/UpsertHorseRequest"
responses:
'200':
description: Horse details
content:
application/json:
schema:
$ref: '#/components/schemas/HorseDetails'
'400':
description: validation errors
content:
application/json:
schema:
oneOf:
- $ref: "#/components/responses/GenericErrorResponse"
- $ref: "#/components/responses/ValidationErrorResponse"
'401':
$ref: "#/components/responses/GenericErrorResponse"
'500':
$ref: "#/components/responses/GenericErrorResponse"
/public/web/horse/{horseId}:
put:
summary: Update an existing horse
operationId: editHorse
tags:
- Horse
security:
- EquictyAuthenticationBearer: [ ]
parameters:
- name: horseId
in: path
required: true
description: ID of the horse to update
schema:
type: integer
format: int32
requestBody:
description: edit horse request
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/UpsertHorseRequest"
responses:
'200':
description: Horse details
content:
application/json:
schema:
$ref: '#/components/schemas/HorseDetails'
'400':
description: validation errors
content:
application/json:
schema:
oneOf:
- $ref: "#/components/responses/GenericErrorResponse"
- $ref: "#/components/responses/ValidationErrorResponse"
'401':
$ref: "#/components/responses/GenericErrorResponse"
'500':
$ref: "#/components/responses/GenericErrorResponse"
/public/web/horses/{horse_id}:
get:
summary: Get single horse details
operationId: getHorseDetails
tags:
- Horse
security:
- EquictyAuthenticationBearer: [ ]
parameters:
- name: horse_id
in: path
required: true
description: ID of the horse to get details
schema:
type: integer
format: int32
- name: include_additional_info
in: query
required: false
schema:
type: boolean
default: false
description: if set to true - FullHorseDetails are returned, HorseDetailsWithMedia otherwise
responses:
'200':
description: Horse details
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/HorseDetailsWithMedia'
- $ref: '#/components/schemas/FullHorseDetails'
'400':
description: validation errors
content:
application/json:
schema:
oneOf:
- $ref: "#/components/responses/GenericErrorResponse"
- $ref: "#/components/responses/ValidationErrorResponse"
'401':
$ref: "#/components/responses/GenericErrorResponse"
'500':
$ref: "#/components/responses/GenericErrorResponse"
/public/web/horses/:
post:
summary: Get all horses
operationId: getAllHorses
tags:
- Horse
security:
- EquictyAuthenticationBearer: [ ]
parameters:
- name: include_additional_info
in: query
required: false
schema:
type: boolean
default: false
description: if set to true - FullHorseDetailsWithoutMedia are returned, HorseDetails otherwise
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
gender:
type: string
enum: [UNKNOWN, MARE, GELDING, STALLION, FILLY, COLT]
description: horse gender filter
responses:
'200':
description: Horse details
content:
application/json:
schema:
type: array
items:
oneOf:
- $ref: '#/components/schemas/HorseDetails'
- $ref: '#/components/schemas/FullHorseDetailsWithoutMedia'
'400':
description: validation errors
content:
application/json:
schema:
oneOf:
- $ref: "#/components/responses/GenericErrorResponse"
- $ref: "#/components/responses/ValidationErrorResponse"
'401':
$ref: "#/components/responses/GenericErrorResponse"
'500':
$ref: "#/components/responses/GenericErrorResponse"
components:
schemas:
UpsertHorseRequest:
type: object
required:
- name
- stableId
properties:
name:
type: string
nullable: false
sku:
type: string
nullable: true
minLength: 1
maxLength: 30
registration_number:
type: string
nullable: false
location:
type: string
nullable: true
birth_date:
type: string
example: "20-03-2024"
nullable: true
HorseDetails:
type: object
properties:
id:
type: string
name:
type: string
official_name:
type: string
nick_name:
type: string
age:
type: integer
format: int32
birth_date:
type: string
example: "20-03-2024"
sex:
type: string
studbook:
type: string
color:
type: string
height:
type: integer
format: int32
heightunit:
type: string
breeder:
type: string
pedigree:
type: string
nullable: true
horsetelex:
type: boolean
description: flag indicating if the horse is synced with horsetelex
profile:
type: string
description: horse's profile picture url
miniature:
type: string
description: horse's miniature picture url
HorseMediaDetails:
type: object
properties:
level:
type: string
info:
type: string
videos:
type: array
items:
$ref: '#/components/schemas/MediaDetails'
pictures:
type: array
items:
$ref: '#/components/schemas/MediaDetails'
AdditionalDetails:
type: object
properties:
level:
type: string
sku:
type: string
breeding_associations:
type: array
items:
type: string
semen_availability:
type: array
items:
type: string
wffs_test_result:
type: string
semen_price:
type: string
sales_content:
type: string
disciplines:
type: array
items:
type: string
FullHorseDetails:
allOf:
- $ref: '#/components/schemas/HorseDetails'
- $ref: '#/components/schemas/HorseMediaDetails'
- $ref: '#/components/schemas/AdditionalDetails'
HorseDetailsWithMedia:
allOf:
- $ref: '#/components/schemas/HorseDetails'
- $ref: '#/components/schemas/HorseMediaDetails'
FullHorseDetailsWithoutMedia:
allOf:
- $ref: '#/components/schemas/HorseDetails'
- $ref: '#/components/schemas/AdditionalDetails'
MediaDetails:
type: object
properties:
name:
type: string
module:
type: string
mediaurl:
type: string
description: url pointing to the media file
miniatureurl:
type: string
description: url pointing to the media file's miniature
responses:
GenericErrorResponse:
description: generic error
content:
application/json:
schema:
type: object
required:
- status
- msg
properties:
status:
type: boolean
msg:
type: string
ValidationErrorResponse:
description: validation errors
content:
application/json:
schema:
type: object
required:
- status
- msg
- errors
properties:
status:
type: integer
format: int32
msg:
type: string
errors:
type: array
items:
type: object
properties:
message:
type: string
fieldName:
type: string
field:
type: string
rejectedValue:
nullable: true
description: This value can be of any type, depending on the type of the field that failed validation
securitySchemes:
EquictyAuthenticationBearer:
type: http
scheme: bearer
Integration with NEW OPEN API EQUSTABLE 2.0
openapi: 3.0.0
info:
version: 1.0.0
title: Stable Management REST API v3
license:
name: MIT
servers:
- url: /equicty/api
paths:
/public/web/horses:
post:
summary: Get list of public horse details
operationId: getPublicHorses
tags:
- clientPublic
security:
- EquictyAuthenticationBearer: []
parameters:
- in: query
name: include_additional_info
required: false
schema:
type: boolean
description: 'if this is set to true, additional properties will be included in the response | level disciplines sku breeding_associations semen_availability wffs_test_result semen_price sales_content registration_number location active price_range shares'
requestBody:
description: Stable group details
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/PublicStableHorsesReadRequest'
responses:
'200':
description: list of public horse details
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PublicHorseModelSimple'
default:
$ref: '#/components/responses/GenericErrorResponse'
'/public/web/horses/{horse_id}':
get:
summary: Get public horse details by horse id
operationId: getPublicHorse
tags:
- clientPublic
security:
- EquictyAuthenticationBearer: []
parameters:
- in: path
name: horse_id
required: true
schema:
type: integer
format: int32
- in: query
name: include_additional_info
required: false
schema:
type: boolean
description: 'if this is set to true, additional properties will be included in the response | disciplines sku breeding_associations semen_availability wffs_test_result semen_price sales_content registration_number location active price_range shares'
responses:
'200':
description: horse details
content:
application/json:
schema:
$ref: '#/components/schemas/PublicHorseModelDetailed'
default:
$ref: '#/components/responses/GenericErrorResponse'
'/public/web/horses/pedigree/{horse_id}':
post:
summary: Get public horse's pedigree
operationId: getPublicHorsePedigree
tags:
- clientPublic
security:
- EquictyAuthenticationBearer: []
parameters:
- in: path
name: horse_id
required: true
schema:
type: integer
format: int32
requestBody:
description: page styling adjustments
required: false
content:
application/json:
schema:
$ref: '#/components/schemas/PublicHorsePedigreeHtmlPageRequest'
responses:
'200':
description: horse pedigree HTML page
content:
application/xhtml+xml:
schema:
type: string
default:
$ref: '#/components/responses/GenericErrorResponse'
/public/tasks/search:
get:
summary: Get list of tasks
operationId: getTasksPublicApi
tags:
- clientPublic
security:
- EquictyAuthenticationBearer: []
parameters:
- in: query
name: from
description: The date from which to get tasks.
required: true
schema:
type: string
example: 28-12-3045
- in: query
name: to
description: The date to which to get tasks.
required: true
schema:
type: string
example: 28-12-3045
- in: query
name: horseNames
required: false
description: List of horse names
schema:
type: array
items:
type: string
style: form
explode: true
- in: query
name: horseIds
required: false
description: List of horse IDs
schema:
type: array
items:
type: integer
format: int32
style: form
explode: true
- in: query
name: taskTypes
required: false
description: Task type
schema:
type: array
items:
$ref: '#/components/schemas/PublicApiTaskType'
style: form
explode: true
- in: query
name: taskName
required: false
description: Task name (action name)
schema:
type: string
- in: query
name: executed
required: false
description: Indicates whether the task is done (executed) or not
schema:
type: boolean
- in: query
name: staffRoles
required: false
description: This property allows filter tasks by assigned staff roles
schema:
type: array
items:
$ref: '#/components/schemas/PublicApiStaffType'
style: form
explode: true
responses:
'200':
description: list of tasks
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PublicTaskSimpleModel'
default:
$ref: '#/components/responses/GenericErrorResponse'
/public/web/horse:
post:
summary: Create a new horse
operationId: createHorse
tags:
- clientPublic
security:
- EquictyAuthenticationBearer: []
requestBody:
description: create horse request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpsertHorseRequest'
responses:
'200':
description: Horse details
content:
application/json:
schema:
$ref: '#/components/schemas/PublicHorseModelSimple'
'400':
description: validation errors
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/SimpleResponseBody'
- $ref: '#/components/schemas/ValidationError'
'401':
description: authentication error
content:
application/json:
schema:
$ref: '#/components/schemas/SimpleResponseBody'
'500':
description: internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/SimpleResponseBody'
'/public/web/horse/{horseId}':
put:
summary: Update an existing horse
operationId: editHorse
tags:
- clientPublic
security:
- EquictyAuthenticationBearer: []
parameters:
- name: horseId
in: path
required: true
description: ID of the horse to update
schema:
type: integer
format: int32
requestBody:
description: edit horse request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpsertHorseRequest'
responses:
'200':
description: Horse details
content:
application/json:
schema:
$ref: '#/components/schemas/PublicHorseModelSimple'
'400':
description: validation errors
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/SimpleResponseBody'
- $ref: '#/components/schemas/ValidationError'
'401':
description: authentication error
content:
application/json:
schema:
$ref: '#/components/schemas/SimpleResponseBody'
'500':
description: internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/SimpleResponseBody'
components:
schemas:
PublicApiTaskType:
type: string
enum:
- TRAINING
- HEALTH
- MARE
PublicTaskSimpleModel:
type: object
properties:
id:
type: integer
format: int32
taskType:
$ref: '#/components/schemas/PublicApiTaskType'
action:
type: string
description: an activity of a task
horse:
description: horse's id and name
nullable: false
type: object
properties:
id:
type: integer
format: int32
name:
type: string
rider:
description: staff member's id and name
type: object
nullable: false
properties:
id:
type: integer
format: int32
name:
type: string
taskInfo:
type: string
recurring:
type: boolean
executed:
type: boolean
from:
type: string
example: '28-12-2023 12:59'
to:
type: string
example: '28-12-2023 12:59'
period:
type: integer
format: int32
allDayTask:
type: boolean
PublicApiStaffType:
type: string
enum:
- RIDER
- GROOM
- TRAINER
- STAFF
- VETERINARIAN
- DENTIST
- MANAGER
- FARRIER
- OSTEOPATH
PublicVideo:
type: object
properties:
name:
type: string
module:
type: string
mediaurl:
type: string
miniatureurl:
type: string
PublicHorseModelSimple:
type: object
required:
- id
- name
- official_name
- nick_name
- age
- birthday
- sex
- studbook
- color
- height
- heightunit
- breeder
- chipnumber
- last_updated_at
- horsetelex
- profile
- miniature
properties:
id:
type: integer
format: int32
nullable: false
name:
type: string
nullable: false
official_name:
type: string
nullable: false
nick_name:
type: string
nullable: false
age:
type: integer
format: int32
nullable: false
birthday:
type: string
example: 23-10-2023
nullable: false
description: empty string if no birthday is known (ensuring backwards compatibility)
sex:
type: string
nullable: false
studbook:
type: string
nullable: false
color:
type: string
nullable: false
height:
type: integer
format: int32
nullable: false
heightunit:
type: string
nullable: false
breeder:
type: string
nullable: false
chipnumber:
type: string
nullable: false
last_updated_at:
type: string
example: '23-10-2023 12:59:59'
nullable: true
pedigree:
allOf:
- $ref: '#/components/schemas/Pedigree'
nullable: false
description: pedigree is present for a horse unless the horse is synced with horsetelex (in which case the pedigree is only present in PublicHorseModelDetailed)
horsetelex:
type: boolean
nullable: false
profile:
type: string
nullable: false
miniature:
type: string
nullable: false
level:
type: string
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
disciplines:
type: array
items:
type: string
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
sku:
type: string
nullable: true
description: This property is only present if flag `include_additional_info` is set to true in the request
breeding_associations:
type: array
items:
type: string
nullable: false
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
semen_availability:
type: array
items:
type: string
nullable: false
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
wffs_test_result:
type: string
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
semen_price:
type: string
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
sales_content:
type: string
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
registration_number:
type: string
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
location:
type: string
nullable: true
description: This property is only present if flag `include_additional_info` is set to true in the request
active:
type: boolean
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
price_range:
type: string
nullable: true
description: This property is only present if flag `include_additional_info` is set to true in the request
shares:
type: array
nullable: false
items:
type: object
nullable: false
properties:
owner_id:
type: integer
format: int32
nullable: false
name:
type: string
nullable: false
ownership:
type: number
format: float
nullable: false
cost_split:
type: number
format: float
nullable: false
profit_split:
type: number
format: float
nullable: false
competition_cost_split:
type: number
format: float
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
PublicHorseModelDetailed:
type: object
required:
- id
- name
- official_name
- nick_name
- age
- birthday
- sex
- studbook
- color
- height
- heightunit
- breeder
- chipnumber
- last_updated_at
- horsetelex
- profile
- miniature
- level
- info
- pedigree
- videos
- pictures
properties:
id:
type: integer
format: int32
nullable: false
name:
type: string
nullable: false
official_name:
type: string
nullable: false
nick_name:
type: string
nullable: false
age:
type: integer
format: int32
nullable: false
birthday:
type: string
example: 23-10-2023
nullable: false
description: empty string if no birthday is known (ensuring backwards compatibility)
sex:
type: string
nullable: false
studbook:
type: string
nullable: false
color:
type: string
nullable: false
height:
type: integer
format: int32
nullable: false
heightunit:
type: string
nullable: false
breeder:
type: string
nullable: false
chipnumber:
type: string
nullable: false
last_updated_at:
type: string
example: '23-10-2023 12:59:59'
nullable: true
pedigree:
allOf:
- $ref: '#/components/schemas/Pedigree'
nullable: false
horsetelex:
type: boolean
nullable: false
profile:
type: string
nullable: false
miniature:
type: string
nullable: false
level:
type: string
nullable: false
info:
type: string
nullable: false
videos:
type: array
items:
$ref: '#/components/schemas/PublicVideo'
nullable: false
pictures:
type: array
x-ignore-null: true
items:
$ref: '#/components/schemas/PublicPicture'
nullable: false
disciplines:
type: array
items:
type: string
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
sku:
type: string
nullable: true
description: This property is only present if flag `include_additional_info` is set to true in the request
breeding_associations:
type: array
items:
type: string
nullable: false
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
semen_availability:
type: array
items:
type: string
nullable: false
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
wffs_test_result:
type: string
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
semen_price:
type: string
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
sales_content:
type: string
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
registration_number:
type: string
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
location:
type: string
nullable: true
description: This property is only present if flag `include_additional_info` is set to true in the request
active:
type: boolean
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
price_range:
type: string
nullable: true
description: This property is only present if flag `include_additional_info` is set to true in the request
shares:
type: array
nullable: false
items:
type: object
nullable: false
properties:
owner_id:
type: integer
format: int32
nullable: false
name:
type: string
nullable: false
ownership:
type: number
format: float
nullable: false
cost_split:
type: number
format: float
nullable: false
profit_split:
type: number
format: float
nullable: false
competition_cost_split:
type: number
format: float
nullable: false
description: This property is only present if flag `include_additional_info` is set to true in the request
PublicPicture:
type: object
properties:
name:
type: string
module:
type: string
mediaurl:
type: string
miniatureurl:
type: string
PublicHorsePedigreeHtmlPageRequest:
type: object
properties:
horse_textcolor:
type: string
mare_bgcolor:
type: string
mare_textcolor:
type: string
PublicStableHorsesReadRequest:
type: object
required: []
properties:
gender:
$ref: '#/components/schemas/HorseGender'
last_updated_since:
type: string
example: '23-10-2023 12:59:59'
nullable: true
Pedigree:
type: object
description: describes horse's lineage
properties:
v:
type: string
description: sire
nullable: false
vv:
type: string
description: grand-sire (sire's sire)
nullable: false
vvv:
type: string
description: grand-sire's sire (sire's sire's sire)
nullable: false
vvm:
type: string
description: grand-sire's dam (sire's sire's dam)
nullable: false
vm:
type: string
description: sire's dam
nullable: false
vmv:
type: string
description: sire's dam's sire
nullable: false
vmm:
type: string
description: sire's dam's dam
nullable: false
m:
type: string
description: dam
nullable: false
mv:
type: string
description: dam's sire
nullable: false
mvv:
type: string
description: dam's sire's sire
nullable: false
mvm:
type: string
description: dam's sire's dam
nullable: false
mm:
type: string
description: dam's dam
nullable: false
mmv:
type: string
description: dam's dam's sire
nullable: false
mmm:
type: string
description: dam's dam's dam
nullable: false
HorseGender:
type: string
enum:
- UNKNOWN
- MARE
- GELDING
- STALLION
- FILLY
- COLT
UpsertHorseRequest:
type: object
required:
- name
- stableId
properties:
name:
type: string
nullable: false
sku:
type: string
nullable: true
minLength: 1
maxLength: 30
description: must be between 1 and 30 characters long
registration_number:
type: string
nullable: false
location:
type: string
nullable: true
birth_date:
type: string
example: 20-03-2024
nullable: true
HorseDetails:
type: object
properties:
id:
type: string
name:
type: string
official_name:
type: string
nick_name:
type: string
age:
type: integer
format: int32
birth_date:
type: string
example: 20-03-2024
sex:
type: string
studbook:
type: string
color:
type: string
height:
type: integer
format: int32
heightunit:
type: string
breeder:
type: string
pedigree:
type: string
nullable: true
horsetelex:
type: boolean
description: flag indicating if the horse is synced with horsetelex
profile:
type: string
description: horse's profile picture url
miniature:
type: string
description: horse's miniature picture url
ValidationError:
type: object
required:
- status
- msg
- errors
properties:
status:
type: integer
format: int32
msg:
type: string
errors:
type: array
items:
type: object
properties:
message:
type: string
fieldName:
type: string
field:
type: string
rejectedValue:
nullable: true
description: 'This value can be of any type, depending on the type of the field that failed validation'
SimpleResponseBody:
type: object
required:
- status
- msg
properties:
status:
type: boolean
msg:
type: string
responses:
GenericErrorResponse:
description: generic error
content:
application/json:
schema:
$ref: '#/components/schemas/SimpleResponseBody'
securitySchemes:
EquictyAuthenticationBearer:
type: http
scheme: bearer
You have questions?
If you have any question or need help please send your request to support@equicty.com and inform us for which customer you are acting!