Retrieve Unified Form View
curl --request GET \
--url https://api.pricenow.dev/api/booking/products/{productId}/journey/unified-view/form \
--header 'accept-language: <accept-language>' \
--header 'pratiq-channel-uuid: <pratiq-channel-uuid>'import requests
url = "https://api.pricenow.dev/api/booking/products/{productId}/journey/unified-view/form"
headers = {
"accept-language": "<accept-language>",
"pratiq-channel-uuid": "<pratiq-channel-uuid>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'accept-language': '<accept-language>',
'pratiq-channel-uuid': '<pratiq-channel-uuid>'
}
};
fetch('https://api.pricenow.dev/api/booking/products/{productId}/journey/unified-view/form', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.pricenow.dev/api/booking/products/{productId}/journey/unified-view/form",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"accept-language: <accept-language>",
"pratiq-channel-uuid: <pratiq-channel-uuid>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.pricenow.dev/api/booking/products/{productId}/journey/unified-view/form"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("accept-language", "<accept-language>")
req.Header.Add("pratiq-channel-uuid", "<pratiq-channel-uuid>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.pricenow.dev/api/booking/products/{productId}/journey/unified-view/form")
.header("accept-language", "<accept-language>")
.header("pratiq-channel-uuid", "<pratiq-channel-uuid>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pricenow.dev/api/booking/products/{productId}/journey/unified-view/form")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["accept-language"] = '<accept-language>'
request["pratiq-channel-uuid"] = '<pratiq-channel-uuid>'
response = http.request(request)
puts response.read_body{
"data": {
"title": "<string>",
"description": [
{
"children": [
{
"_type": "<string>",
"_key": "<string>"
}
],
"markDefs": [
{
"_type": "<string>",
"_key": "<string>"
}
],
"style": "<string>",
"listItem": "<string>",
"level": 123
}
],
"media": [
{
"kind": "image",
"url": "<string>",
"alt": "<string>"
}
],
"currency": "<string>",
"banner": {
"text": "<string>",
"enabled": true,
"backgroundColor": "<string>",
"icon": {
"_type": "iconPicker",
"name": "<string>",
"provider": "mdi"
},
"cta": {
"title": "<string>",
"newTab": true,
"product": {
"slug": {
"current": "<string>"
}
},
"link": "<string>",
"page": {
"slug": {
"current": "<string>"
}
}
}
},
"formElements": [
{
"id": "<string>",
"hasPaginatedOptions": true,
"explanation": "<string>",
"isValid": true,
"error": "SELECTION_REQUIRED",
"kind": "datepicker",
"value": {
"from": "<string>",
"to": "<string>"
}
}
],
"items": [
{
"id": 123,
"productVariantId": 123,
"personId": 123,
"validity": {
"from": "<string>",
"to": "<string>"
},
"parentItemId": 123,
"originatedItemId": 123,
"discountCardTypeId": 123
}
],
"isValid": true,
"formErrors": {},
"debugHints": [
"<string>"
],
"formState": {
"attributes": {},
"allocation": {},
"validity": {
"from": "2023-11-07T05:31:56Z",
"to": "2023-11-07T05:31:56Z"
}
},
"totals": {
"listPrice": 123,
"discountedPrice": 123
},
"formBase": {
"proceedButton": {
"color": "default",
"variant": "link",
"label": "<string>"
}
}
}
}booking
Retrieve Unified Form View
Fetch the unified form view for a specific product based on the provided form state. The form state must be stored client side and provided with every request. Further, if the returned form state in the request response differs from the sent form state, the client must update its persisted form state accordingly.
GET
/
api
/
booking
/
products
/
{productId}
/
journey
/
unified-view
/
form
Retrieve Unified Form View
curl --request GET \
--url https://api.pricenow.dev/api/booking/products/{productId}/journey/unified-view/form \
--header 'accept-language: <accept-language>' \
--header 'pratiq-channel-uuid: <pratiq-channel-uuid>'import requests
url = "https://api.pricenow.dev/api/booking/products/{productId}/journey/unified-view/form"
headers = {
"accept-language": "<accept-language>",
"pratiq-channel-uuid": "<pratiq-channel-uuid>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'accept-language': '<accept-language>',
'pratiq-channel-uuid': '<pratiq-channel-uuid>'
}
};
fetch('https://api.pricenow.dev/api/booking/products/{productId}/journey/unified-view/form', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.pricenow.dev/api/booking/products/{productId}/journey/unified-view/form",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"accept-language: <accept-language>",
"pratiq-channel-uuid: <pratiq-channel-uuid>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.pricenow.dev/api/booking/products/{productId}/journey/unified-view/form"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("accept-language", "<accept-language>")
req.Header.Add("pratiq-channel-uuid", "<pratiq-channel-uuid>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.pricenow.dev/api/booking/products/{productId}/journey/unified-view/form")
.header("accept-language", "<accept-language>")
.header("pratiq-channel-uuid", "<pratiq-channel-uuid>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pricenow.dev/api/booking/products/{productId}/journey/unified-view/form")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["accept-language"] = '<accept-language>'
request["pratiq-channel-uuid"] = '<pratiq-channel-uuid>'
response = http.request(request)
puts response.read_body{
"data": {
"title": "<string>",
"description": [
{
"children": [
{
"_type": "<string>",
"_key": "<string>"
}
],
"markDefs": [
{
"_type": "<string>",
"_key": "<string>"
}
],
"style": "<string>",
"listItem": "<string>",
"level": 123
}
],
"media": [
{
"kind": "image",
"url": "<string>",
"alt": "<string>"
}
],
"currency": "<string>",
"banner": {
"text": "<string>",
"enabled": true,
"backgroundColor": "<string>",
"icon": {
"_type": "iconPicker",
"name": "<string>",
"provider": "mdi"
},
"cta": {
"title": "<string>",
"newTab": true,
"product": {
"slug": {
"current": "<string>"
}
},
"link": "<string>",
"page": {
"slug": {
"current": "<string>"
}
}
}
},
"formElements": [
{
"id": "<string>",
"hasPaginatedOptions": true,
"explanation": "<string>",
"isValid": true,
"error": "SELECTION_REQUIRED",
"kind": "datepicker",
"value": {
"from": "<string>",
"to": "<string>"
}
}
],
"items": [
{
"id": 123,
"productVariantId": 123,
"personId": 123,
"validity": {
"from": "<string>",
"to": "<string>"
},
"parentItemId": 123,
"originatedItemId": 123,
"discountCardTypeId": 123
}
],
"isValid": true,
"formErrors": {},
"debugHints": [
"<string>"
],
"formState": {
"attributes": {},
"allocation": {},
"validity": {
"from": "2023-11-07T05:31:56Z",
"to": "2023-11-07T05:31:56Z"
}
},
"totals": {
"listPrice": 123,
"discountedPrice": 123
},
"formBase": {
"proceedButton": {
"color": "default",
"variant": "link",
"label": "<string>"
}
}
}
}Headers
Language of the response
Available options:
en, de, fr, it UUID of the sales channel
Path Parameters
Query Parameters
Show child attributes
Show child attributes
Response
200 - application/json
Successful response
Show child attributes
Show child attributes
⌘I

