{"name":"Busch Labs Study Configuration API","description":"Configure and price UX research studies. POST a study configuration to calculate pricing and feasibility. Add ?submit=true to submit a study order (requires clientName, clientEmail, source).","endpoint":"https://www.busch-labs.at/api/study-config","schema":{"priceCheck":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["persona","method","location","serviceMode","participantCount","durationMinutes"],"properties":{"persona":{"type":"string","enum":["b2c_general","b2c_gamer","b2b_professional","b2b_decision_maker"]},"method":{"type":"string","enum":["survey","interview","user_test"]},"location":{"type":"string","enum":["remote","in_person_client","in_person_lab","in_home"]},"serviceMode":{"type":"string","enum":["connect","platform","expert"]},"participantCount":{"type":"integer","minimum":0,"maximum":500},"durationMinutes":{"type":"integer","minimum":1,"maximum":360},"aiInterviewer":{"type":"boolean","default":false,"description":"Only applies when serviceMode=platform"},"expertAnalysis":{"type":"boolean","default":false,"description":"Applies when serviceMode=platform or expert"},"expertStudyDesign":{"type":"boolean","default":false,"description":"Only applies when serviceMode=expert"},"expertModeration":{"type":"boolean","default":false,"description":"Only applies when serviceMode=expert"},"consultingAddon":{"type":"boolean","default":false},"consultingHours":{"type":"integer","minimum":0,"default":0},"customScreening":{"type":"boolean","default":false},"qualificationRate":{"type":"number","minimum":10,"maximum":90,"default":50},"screeningQuestions":{"type":"array","items":{"type":"object","required":["id","text"],"properties":{"id":{"type":"string"},"text":{"type":"string"}}},"default":[]},"selectedFilters":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"default":{},"description":"Map of filter key → selected option IDs. Use geo_countries, geo_regions, etc."},"targetGroups":{"type":"array","description":"Multi-group mode. Omit or pass [] for single-group.","items":{"type":"object","required":["id","participantCount","selectedFilters","filterPrefills"],"properties":{"id":{"type":"string"},"participantCount":{"type":"integer","minimum":1,"maximum":500},"selectedFilters":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"filterPrefills":{"type":"object","additionalProperties":{"type":"string","enum":["location","lab"]}}}},"default":[]},"locationCountry":{"type":"string","default":""},"locationPostalCode":{"type":"string","default":""},"deliveryStartDate":{"type":["string","null"],"format":"date","default":null},"deliveryEndDate":{"type":["string","null"],"format":"date","default":null},"expertSubCategory":{"type":["string","null"],"enum":["healthcare","business","finance","legal",null],"default":null},"gameAccessType":{"type":["string","null"],"enum":["steam","other_platform",null],"default":null},"gameAccessLink":{"type":"string","default":""},"assetType":{"type":["string","null"],"enum":["url_figma","mobile_app","pc_mac_software","custom_physical",null],"default":null},"assetUrl":{"type":"string","default":""},"studyTitle":{"type":"string","default":""},"studyDescription":{"type":"string","default":""}},"additionalProperties":false},"submit":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","required":["persona","method","location","serviceMode","participantCount","durationMinutes","clientName","clientEmail","source"],"properties":{"persona":{"type":"string","enum":["b2c_general","b2c_gamer","b2b_professional","b2b_decision_maker"]},"method":{"type":"string","enum":["survey","interview","user_test"]},"location":{"type":"string","enum":["remote","in_person_client","in_person_lab","in_home"]},"serviceMode":{"type":"string","enum":["connect","platform","expert"]},"participantCount":{"type":"integer","minimum":0,"maximum":500},"durationMinutes":{"type":"integer","minimum":1,"maximum":360},"aiInterviewer":{"type":"boolean","default":false,"description":"Only applies when serviceMode=platform"},"expertAnalysis":{"type":"boolean","default":false,"description":"Applies when serviceMode=platform or expert"},"expertStudyDesign":{"type":"boolean","default":false,"description":"Only applies when serviceMode=expert"},"expertModeration":{"type":"boolean","default":false,"description":"Only applies when serviceMode=expert"},"consultingAddon":{"type":"boolean","default":false},"consultingHours":{"type":"integer","minimum":0,"default":0},"customScreening":{"type":"boolean","default":false},"qualificationRate":{"type":"number","minimum":10,"maximum":90,"default":50},"screeningQuestions":{"type":"array","items":{"type":"object","required":["id","text"],"properties":{"id":{"type":"string"},"text":{"type":"string"}}},"default":[]},"selectedFilters":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"default":{},"description":"Map of filter key → selected option IDs. Use geo_countries, geo_regions, etc."},"targetGroups":{"type":"array","description":"Multi-group mode. Omit or pass [] for single-group.","items":{"type":"object","required":["id","participantCount","selectedFilters","filterPrefills"],"properties":{"id":{"type":"string"},"participantCount":{"type":"integer","minimum":1,"maximum":500},"selectedFilters":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"filterPrefills":{"type":"object","additionalProperties":{"type":"string","enum":["location","lab"]}}}},"default":[]},"locationCountry":{"type":"string","default":""},"locationPostalCode":{"type":"string","default":""},"deliveryStartDate":{"type":["string","null"],"format":"date","default":null},"deliveryEndDate":{"type":["string","null"],"format":"date","default":null},"expertSubCategory":{"type":["string","null"],"enum":["healthcare","business","finance","legal",null],"default":null},"gameAccessType":{"type":["string","null"],"enum":["steam","other_platform",null],"default":null},"gameAccessLink":{"type":"string","default":""},"assetType":{"type":["string","null"],"enum":["url_figma","mobile_app","pc_mac_software","custom_physical",null],"default":null},"assetUrl":{"type":"string","default":""},"studyTitle":{"type":"string","default":""},"studyDescription":{"type":"string","default":""},"clientName":{"type":"string","minLength":2,"maxLength":200},"clientEmail":{"type":"string","format":"email"},"additionalNotes":{"type":"string","default":""},"preferredLocale":{"type":"string","enum":["en","de"],"default":"en"},"source":{"type":"string","enum":["calculator","player-labs-calculator","api"]}},"additionalProperties":false,"description":"Study submission payload — extends config with contact info. Use POST ?submit=true."}},"options":{"persona":[{"id":"b2c_general","description":"General consumers (18+, DACH region)"},{"id":"b2c_gamer","description":"Gamers — platform, genre, and playstyle filters available"},{"id":"b2b_professional","description":"Business professionals — industry, role, and company filters"},{"id":"b2b_decision_maker","description":"Decision makers — C-level, VP, director-level professionals"}],"method":[{"id":"survey","description":"Online survey (5–60 min)"},{"id":"interview","description":"Moderated interview or focus group (15–120 min)"},{"id":"user_test","description":"Usability test with task scenarios (15–120 min)"}],"serviceMode":[{"id":"connect","description":"Recruiting only — you use your own tools"},{"id":"platform","description":"Recruiting + Busch Labs platform (recording, transcription, AI notes)"},{"id":"expert","description":"Recruiting + platform + expert human services (moderation, analysis)"}],"location":[{"id":"remote","description":"Remote / online"},{"id":"in_person_client","description":"In-person at client location"},{"id":"in_person_lab","description":"In-person at Busch Labs Vienna lab"},{"id":"in_home","description":"In-home visit (ethnographic)"}],"geo_countries":[{"id":"AT","label":"Österreich"},{"id":"DE","label":"Deutschland"},{"id":"CH","label":"Schweiz"}],"geo_regions":[{"id":"AT_B","label":"Burgenland","country":"AT"},{"id":"AT_K","label":"Kärnten","country":"AT"},{"id":"AT_NÖ","label":"Niederösterreich","country":"AT"},{"id":"AT_OÖ","label":"Oberösterreich","country":"AT"},{"id":"AT_S","label":"Salzburg","country":"AT"},{"id":"AT_ST","label":"Steiermark","country":"AT"},{"id":"AT_T","label":"Tirol","country":"AT"},{"id":"AT_V","label":"Vorarlberg","country":"AT"},{"id":"AT_W","label":"Wien","country":"AT"},{"id":"DE_BW","label":"Baden-Württemberg","country":"DE"},{"id":"DE_BY","label":"Bayern","country":"DE"},{"id":"DE_BE","label":"Berlin","country":"DE"},{"id":"DE_BB","label":"Brandenburg","country":"DE"},{"id":"DE_HB","label":"Bremen","country":"DE"},{"id":"DE_HH","label":"Hamburg","country":"DE"},{"id":"DE_HE","label":"Hessen","country":"DE"},{"id":"DE_MV","label":"Mecklenburg-Vorpommern","country":"DE"},{"id":"DE_NI","label":"Niedersachsen","country":"DE"},{"id":"DE_NW","label":"Nordrhein-Westfalen","country":"DE"},{"id":"DE_RP","label":"Rheinland-Pfalz","country":"DE"},{"id":"DE_SL","label":"Saarland","country":"DE"},{"id":"DE_SN","label":"Sachsen","country":"DE"},{"id":"DE_ST","label":"Sachsen-Anhalt","country":"DE"},{"id":"DE_SH","label":"Schleswig-Holstein","country":"DE"},{"id":"DE_TH","label":"Thüringen","country":"DE"},{"id":"CH_BE","label":"Canton de Berne","country":"CH"},{"id":"CH_FR","label":"Canton de Fribourg","country":"CH"},{"id":"CH_VD","label":"Canton de Vaud","country":"CH"},{"id":"CH_VS","label":"Canton du Valais","country":"CH"},{"id":"CH_GE","label":"Genève","country":"CH"},{"id":"CH_JU","label":"Jura","country":"CH"},{"id":"CH_AG","label":"Kanton Aargau","country":"CH"},{"id":"CH_AR","label":"Kanton Appenzell Ausserrhoden","country":"CH"},{"id":"CH_AI","label":"Kanton Appenzell Innerrhoden","country":"CH"},{"id":"CH_BL","label":"Kanton Basel-Landschaft","country":"CH"},{"id":"CH_BS","label":"Kanton Basel-Stadt","country":"CH"},{"id":"CH_GL","label":"Kanton Glarus","country":"CH"},{"id":"CH_GR","label":"Kanton Graubünden","country":"CH"},{"id":"CH_LU","label":"Kanton Luzern","country":"CH"},{"id":"CH_NW","label":"Kanton Nidwalden","country":"CH"},{"id":"CH_OW","label":"Kanton Obwalden","country":"CH"},{"id":"CH_SH","label":"Kanton Schaffhausen","country":"CH"},{"id":"CH_SZ","label":"Kanton Schwyz","country":"CH"},{"id":"CH_SO","label":"Kanton Solothurn","country":"CH"},{"id":"CH_SG","label":"Kanton St. Gallen","country":"CH"},{"id":"CH_TG","label":"Kanton Thurgau","country":"CH"},{"id":"CH_UR","label":"Kanton Uri","country":"CH"},{"id":"CH_ZG","label":"Kanton Zug","country":"CH"},{"id":"CH_ZH","label":"Kanton Zürich","country":"CH"},{"id":"CH_NE","label":"Neuchâtel","country":"CH"},{"id":"CH_TI","label":"Ticino","country":"CH"}],"geo_cities":"~11,600 options (AT/DE/CH). Not included in GET response — use geo_countries and geo_regions for filtering. Cities cascade from selected countries/regions.","geo_plz":"~12,200 options (AT/DE/CH). Not included in GET response. PLZ cascades from selected countries/regions."},"examples":[{"name":"Minimal — 10-minute remote survey with 100 consumers","body":{"persona":"b2c_general","method":"survey","location":"remote","serviceMode":"connect","participantCount":100,"durationMinutes":10}},{"name":"With geo filter — 30-minute interview, Austrian participants only","body":{"persona":"b2c_general","method":"interview","location":"remote","serviceMode":"platform","participantCount":15,"durationMinutes":30,"selectedFilters":{"geo_countries":["AT"],"geo_regions":["AT_W","AT_NO"]}}},{"name":"Multi-group — two target groups with different filters","body":{"persona":"b2b_professional","method":"interview","location":"remote","serviceMode":"expert","participantCount":20,"durationMinutes":45,"expertAnalysis":true,"selectedFilters":{},"targetGroups":[{"id":"group-a","participantCount":10,"selectedFilters":{"geo_countries":["AT"],"industry":["technology"]},"filterPrefills":{}},{"id":"group-b","participantCount":10,"selectedFilters":{"geo_countries":["DE"],"industry":["finance"]},"filterPrefills":{}}]}}],"rateLimit":{"priceCheck":"30/hour per IP","submit":"5/hour per IP"},"geoCascadeRules":{"description":"Geo filters follow a cascade: country → region → city / PLZ. Selecting a region that does not belong to any selected country is a validation error.","levels":["geo_countries","geo_regions","geo_cities","postal_code"],"note":"Cities and PLZ are too large to include here (~24k entries). They are validated server-side against selected countries/regions."}}