Returns public studio metadata and customer authentication methods for the native mobile app.
/api/v1/mobile/studios/{accountSlug}
API
Усе для підключення сайту, мобільного застосунку та AI-помічників до Ladna.
Входи до мобільного застосунку, дії від імені студії та службові повідомлення від платіжних сервісів.
/api/v1/mobile/studios/{accountSlug}
/api/v1/mobile/auth/staff/login
/api/v1/mobile/auth/customer/email-login
/api/v1/mobile/auth/customer/otp/send
/api/v1/mobile/auth/customer/otp/verify
/api/v1/mobile/auth/customer/google/{accountSlug}/redirect
/api/v1/mobile/auth/customer/google/callback
/api/v1/mobile/auth/customer/google/exchange
/api/v1/mobile/me
/api/v1/mobile/logout
/api/v1/mobile/device-tokens
/api/v1/mobile/schedule
/api/v1/mobile/classes/{scheduledClass}
/api/v1/mobile/classes/{scheduledClass}/customer-booking
/api/v1/mobile/classes/{scheduledClass}/staff-bookings
/api/v1/mobile/bookings/{classBooking}
/api/v1/mobile/bookings/{classBooking}
/api/v1/mobile/customer/bookings
/api/v1/mobile/customer/passes
/api/v1/mobile/customer/profile
/api/v1/mobile/customer/profile/phone/send
/api/v1/mobile/customer/profile/phone/resend
/api/v1/mobile/customer/profile/phone/verify
/api/v1/mobile/staff/customers
/api/v1/website-leads
/api/v1/festival-payments/{provider}/callbacks
/api/v1/festival-battles/matches
/api/v1/festival-battles/matches/{match}
/api/v1/festival-battles/matches/{match}/audience-score
Для частини запитів потрібен вхід у мобільний застосунок, а для дій від імені студії — окремий ключ із Налаштувань акаунта → Інтеграції → API-ключі.
Authorization: Bearer ladna_your_token
POST /api/v1/website-leads
$response = (new \GuzzleHttp\Client())->request('POST', 'https://ladna.app/api/v1/website-leads', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
'json' => json_decode('{
"phone": "+380671112233",
"name": "Олена Коваль",
"source_page": "https://studio.example.com/trial"
}', true),
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'POST',
'https://ladna.app/api/v1/website-leads',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
json={
"phone": "+380671112233",
"name": "Олена Коваль",
"source_page": "https://studio.example.com/trial"
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/api/v1/website-leads', {
method: 'POST',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"phone": "+380671112233",
"name": "Олена Коваль",
"source_page": "https://studio.example.com/trial"
}),
});
const data = await response.json();
GET /api/v1/festival-battles/matches
$response = (new \GuzzleHttp\Client())->request('GET', 'https://ladna.app/api/v1/festival-battles/matches', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'GET',
'https://ladna.app/api/v1/festival-battles/matches',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/api/v1/festival-battles/matches', {
method: 'GET',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
});
const data = await response.json();
PUT /api/v1/festival-battles/matches/{match}/audience-score
$response = (new \GuzzleHttp\Client())->request('PUT', 'https://ladna.app/api/v1/festival-battles/matches/42/audience-score', [
'headers' => [
'Authorization' => 'Bearer ladna_your_token',
'Accept' => 'application/json',
],
'json' => json_decode('{
"audience_score_a": 612345,
"audience_score_b": 387655,
"measurement": {
"metric": "baseline_adjusted_integrated_energy",
"baseline_duration_ms": 2000,
"duration_ms": 5000,
"baseline_dbfs": -52.4,
"mean_dbfs_a": -18.2,
"mean_dbfs_b": -20.1,
"peak_dbfs_a": -2.1,
"peak_dbfs_b": -3.4
}
}', true),
]);
$data = json_decode((string) $response->getBody(), true);
import requests
response = requests.request(
'PUT',
'https://ladna.app/api/v1/festival-battles/matches/42/audience-score',
headers={
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
},
json={
"audience_score_a": 612345,
"audience_score_b": 387655,
"measurement": {
"metric": "baseline_adjusted_integrated_energy",
"baseline_duration_ms": 2000,
"duration_ms": 5000,
"baseline_dbfs": -52.4,
"mean_dbfs_a": -18.2,
"mean_dbfs_b": -20.1,
"peak_dbfs_a": -2.1,
"peak_dbfs_b": -3.4
}
},
)
response.raise_for_status()
data = response.json()
const response = await fetch('https://ladna.app/api/v1/festival-battles/matches/42/audience-score', {
method: 'PUT',
headers: {
'Authorization': 'Bearer ladna_your_token',
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"audience_score_a": 612345,
"audience_score_b": 387655,
"measurement": {
"metric": "baseline_adjusted_integrated_energy",
"baseline_duration_ms": 2000,
"duration_ms": 5000,
"baseline_dbfs": -52.4,
"mean_dbfs_a": -18.2,
"mean_dbfs_b": -20.1,
"peak_dbfs_a": -2.1,
"peak_dbfs_b": -3.4
}
}),
});
const data = await response.json();