{"name":"Sturlason HTTP booking","version":"1.2.0","authentication":"No account, API key, MCP setup or browser required. Customer email code and approval are required to submit.","method":"POST JSON to this same URL","guide":"https://www.sturlason.info/agent-booking/public/http-guide.txt","openapi":"https://www.sturlason.info/agent-booking/public/openapi.json","liveServices":"https://www.sturlason.info/agent-booking/public/tools.php?tool=list_services","example":{"tool":"list_services","arguments":{}},"getReadTools":["list_services","find_slots"],"tools":{"list_services":{"description":"Les offentlige tjenester og krav før bestilling.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},"find_slots":{"description":"Finn ledige tider. Ingen reservasjon opprettes.","inputSchema":{"type":"object","properties":{"selection":{"type":"object","properties":{"service":{"type":"string","enum":["cv_private","cv_extended","portrait","baby","children","family","wedding_standard","wedding_express","pass","student_casting_express","student_casting_standard"]},"studio":{"type":"string","enum":["oslo","asker"]},"slotId":{"type":"string"},"passPeople":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"object","properties":{"nationality":{"type":"string"},"documentType":{"type":"string","enum":["pass","visa","other"]},"package":{"type":"string","enum":["print","digital","print_digital"]},"extraSets":{"type":"array","maxItems":10,"items":{"type":"object","properties":{"nationality":{"type":"string"},"documentType":{"type":"string","enum":["pass","visa","other"]}},"required":["nationality","documentType"],"additionalProperties":false}}},"required":["nationality","documentType","package","extraSets"],"additionalProperties":false}},"familyAdults":{"type":"integer","minimum":0,"maximum":8},"familyChildAges":{"type":"array","items":{"type":"string"},"maxItems":8},"discountCode":{"type":"string"},"notes":{"type":"string","maxLength":1600},"referenceUrl":{"type":"string"}},"required":["service","studio"],"additionalProperties":false},"from":{"type":"string"},"to":{"type":"string"}},"required":["selection"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},"quote_booking":{"description":"Beregn bindende valg og pris for en valgt slotId. Returnerer tilbud, ikke bestilling.","inputSchema":{"type":"object","properties":{"selection":{"type":"object","properties":{"service":{"type":"string","enum":["cv_private","cv_extended","portrait","baby","children","family","wedding_standard","wedding_express","pass","student_casting_express","student_casting_standard"]},"studio":{"type":"string","enum":["oslo","asker"]},"slotId":{"type":"string"},"passPeople":{"type":"array","minItems":1,"maxItems":4,"items":{"type":"object","properties":{"nationality":{"type":"string"},"documentType":{"type":"string","enum":["pass","visa","other"]},"package":{"type":"string","enum":["print","digital","print_digital"]},"extraSets":{"type":"array","maxItems":10,"items":{"type":"object","properties":{"nationality":{"type":"string"},"documentType":{"type":"string","enum":["pass","visa","other"]}},"required":["nationality","documentType"],"additionalProperties":false}}},"required":["nationality","documentType","package","extraSets"],"additionalProperties":false}},"familyAdults":{"type":"integer","minimum":0,"maximum":8},"familyChildAges":{"type":"array","items":{"type":"string"},"maxItems":8},"discountCode":{"type":"string"},"notes":{"type":"string","maxLength":1600},"referenceUrl":{"type":"string"}},"required":["service","studio"],"additionalProperties":false},"agent":{"type":"string","enum":["claude","chatgpt","codex","other"]}},"required":["selection"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},"hold_slot":{"description":"Hold av en tid midlertidig. Krever bookingToken fra tilbudet.","inputSchema":{"type":"object","properties":{"bookingToken":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"Privat tilgangsreferanse. Oppbevar sikkert; aldri legg i URL eller offentlige logger."}},"required":["bookingToken"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},"request_contact_code":{"description":"Send engangskode til kundens e-post etter at kunden har oppgitt kontaktdata.","inputSchema":{"type":"object","properties":{"bookingToken":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"Privat tilgangsreferanse. Oppbevar sikkert; aldri legg i URL eller offentlige logger."},"contact":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"}},"required":["name","email","phone"],"additionalProperties":false}},"required":["bookingToken","contact"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}},"submit_booking":{"description":"Oppretter reell bookingforespørsel og sender meldinger. Kunden må godkjenne tid, pris og opplysninger. Gjenta med samme bookingToken ved nettverksfeil; aldri nytt tilbud.","inputSchema":{"type":"object","properties":{"bookingToken":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"Privat tilgangsreferanse. Oppbevar sikkert; aldri legg i URL eller offentlige logger."},"code":{"type":"string"},"customerApproved":{"type":"boolean","description":"True only after the customer has authorized this specific action."},"acceptedPriceMinor":{"type":"integer","minimum":0,"description":"Exact quoted price in øre (minor NOK units), approved by customer."}},"required":["bookingToken","code","customerApproved","acceptedPriceMinor"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},"get_booking":{"description":"Hent status på egen forespørsel. requested betyr mottatt, ikke separat studiobekreftelse.","inputSchema":{"type":"object","properties":{"bookingToken":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"Privat tilgangsreferanse. Oppbevar sikkert; aldri legg i URL eller offentlige logger."}},"required":["bookingToken"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},"release_hold":{"description":"Frigi en midlertidig reservasjon. Avbestiller ikke en sendt forespørsel.","inputSchema":{"type":"object","properties":{"bookingToken":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"Privat tilgangsreferanse. Oppbevar sikkert; aldri legg i URL eller offentlige logger."}},"required":["bookingToken"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},"cancel_booking":{"description":"Avbestill en reell agentbooking etter kundens uttrykkelige instruks.","inputSchema":{"type":"object","properties":{"bookingToken":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"Privat tilgangsreferanse. Oppbevar sikkert; aldri legg i URL eller offentlige logger."},"customerApproved":{"type":"boolean","description":"True only after the customer has authorized this specific action."}},"required":["bookingToken","customerApproved"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}},"move_booking":{"description":"Flytt egen agentbooking til et nytt reservert tilbud med samme tjeneste, studio, valg og pris, etter kundens godkjenning.","inputSchema":{"type":"object","properties":{"bookingToken":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"Privat tilgangsreferanse. Oppbevar sikkert; aldri legg i URL eller offentlige logger."},"newQuoteToken":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"Privat tilgangsreferanse. Oppbevar sikkert; aldri legg i URL eller offentlige logger."},"customerApproved":{"type":"boolean","description":"True only after the customer has authorized this specific action."},"acceptedPriceMinor":{"type":"integer","minimum":0,"description":"Exact quoted price in øre (minor NOK units), approved by customer."}},"required":["bookingToken","newQuoteToken","customerApproved","acceptedPriceMinor"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":true}}}}