# StudioIntern API Doc ## API Docs - v1 · Public [List courses](https://api-doc.studiointern.org/list-courses-40661987e0.md): Returns current and planned courses. Optional location filter in Multi mode. - v1 · Public [Get course schedule](https://api-doc.studiointern.org/get-course-schedule-40661988e0.md): Returns scheduled course events. - v1 · Public [Get upcoming events and holidays](https://api-doc.studiointern.org/get-upcoming-events-and-holidays-40661989e0.md): Requires product package Premium or higher (`CUSTOMER_PID >= 2`). Limit via query parameter (not path). - v1 · Public [List upcoming course restarts](https://api-doc.studiointern.org/list-upcoming-course-restarts-40661990e0.md): Only available in real-calendar mode. Returns `204` in abstract-week mode. - v1 · Public [List SI Summer courses](https://api-doc.studiointern.org/list-si-summer-courses-40661991e0.md): Returns seasonal SI Summer courses and rooms. Requires at least Standard package. - v1 · Public [Get studio email signature](https://api-doc.studiointern.org/get-studio-email-signature-40661992e0.md): Returns the configured studio email signature HTML/text. - v1 · Public [List course plans](https://api-doc.studiointern.org/list-course-plans-40661993e0.md): Lists course plans. Location-aware in Multi mode. - v1 · Public [List tariffs](https://api-doc.studiointern.org/list-tariffs-40661994e0.md): Lists currently valid tariffs. - v1 · Public [Register applicant / contact form (v1)](https://api-doc.studiointern.org/register-applicant-contact-form-v1-40661995e0.md): Creates an applicant, updates an existing applicant with the same email, or returns an existing non-applicant customer. - v1 · Customer [Customer login](https://api-doc.studiointern.org/customer-login-40661996e0.md): Authenticates an end-customer and creates a session. Rate-limited by IP and customer. - v1 · Customer [Customer logout](https://api-doc.studiointern.org/customer-logout-40661997e0.md): Deletes the stored customer session. - v1 · Customer [Get authenticated customer profile](https://api-doc.studiointern.org/get-authenticated-customer-profile-40661998e0.md): Requires tenant API token plus customer session (`session_id`, `kid`, `token`). - v1 · Customer [Update or delete customer password](https://api-doc.studiointern.org/update-or-delete-customer-password-40661999e0.md): Updates the customer password. Empty `new_password` deletes the login. - v1 · Customer [Get course IDs of customer's students](https://api-doc.studiointern.org/get-course-ids-of-customers-students-40662000e0.md): Returns active course IDs (`kuID`) for all students of the authenticated end-customer, or for one owned student via `sid`. - v1 · Own [Create account entry (payment/credit/debit)](https://api-doc.studiointern.org/create-account-entry-paymentcreditdebit-40662001e0.md): Creates a bookkeeping entry for a customer. - v1 · Own [Get customer by ID](https://api-doc.studiointern.org/get-customer-by-id-40662002e0.md): Returns a customer profile by internal `kID`. Prefer v2 Own customer endpoints for new integrations. - v1 · Configuration [Provision tenant data / hooks](https://api-doc.studiointern.org/provision-tenant-data-hooks-40662003e0.md): Administrative provisioning. Accepts token as raw `Authorization` value or `Bearer `. - v1 · Configuration [Poll initial backup queue](https://api-doc.studiointern.org/poll-initial-backup-queue-40662004e0.md): Polls the asynchronous initial-backup queue status. - v1 · Configuration [Queue initial customer backups](https://api-doc.studiointern.org/queue-initial-customer-backups-40662005e0.md): Queues initial customer backups (async). Returns `202` when newly queued. - v1 · Configuration [Delete tenant data directory](https://api-doc.studiointern.org/delete-tenant-data-directory-40662006e0.md): **Destructive.** Recursively deletes the tenant data directory and related symlinks. - v2 · OAuth [Obtain OAuth2 access token](https://api-doc.studiointern.org/obtain-oauth2-access-token-40662007e0.md): Gateway-only endpoint (not proxied to Laravel). - v2 · Public [List locations](https://api-doc.studiointern.org/list-locations-40662008e0.md): Multi tenants: active locations with rooms. Non-Multi: location ID 1. - v2 · Public [List rooms of a location](https://api-doc.studiointern.org/list-rooms-of-a-location-40662009e0.md): Returns rooms for the given location. Empty list is valid. - v2 · Public [Get studio email signature](https://api-doc.studiointern.org/get-studio-email-signature-40662010e0.md): v2 equivalent of v1 `/pub/studio`. `data` is the signature string. - v2 · Public [List course styles (Kursgruppen)](https://api-doc.studiointern.org/list-course-styles-kursgruppen-40662011e0.md): Returns configured course styles / dance styles. - v2 · Public [Customer registration flow info](https://api-doc.studiointern.org/customer-registration-flow-info-40662012e0.md): Returns flow metadata (`meta.api_info`, `meta.steps`) for customer registration UIs. - v2 · Public [Register a new customer (end-user)](https://api-doc.studiointern.org/register-a-new-customer-end-user-40662013e0.md): Intended for online contact / registration forms. - v2 · Public [Submit contract revocation request (Widerruf)](https://api-doc.studiointern.org/submit-contract-revocation-request-widerruf-40662014e0.md): Sends a revocation request notification. Returns success acknowledgement even if no matching customer is found. - v2 · Public [Submit contract quit request (Kündigung)](https://api-doc.studiointern.org/submit-contract-quit-request-k%C3%BCndigung-40662015e0.md): Same as revoke-request plus required termination date `kuendigung_zum`. - v2 · Public [Appointment flow info](https://api-doc.studiointern.org/appointment-flow-info-40662016e0.md): Returns flow metadata for trial-class appointment booking UIs. - v2 · Public [Create trial-class appointment](https://api-doc.studiointern.org/create-trial-class-appointment-40662017e0.md): Creates a student appointment (typically a CourseFinder trial lesson). - v2 · Public [Validate email address](https://api-doc.studiointern.org/validate-email-address-40662018e0.md): Validates an email via the configured verification provider. Optional check level path segment available on the sibling path. - v2 · Public [Validate email address with check level](https://api-doc.studiointern.org/validate-email-address-with-check-level-40662019e0.md): Same as `/pub/mailcheck/{email}` with an explicit validation profile. - v2 · Public [CourseFinder flow info](https://api-doc.studiointern.org/coursefinder-flow-info-40662020e0.md): Requires the CourseFinder plugin. Data endpoints return HTTP 403 (application code `9000`) if not booked. - v2 · Public [List CourseFinder age groups](https://api-doc.studiointern.org/list-coursefinder-age-groups-40662021e0.md): Requires the CourseFinder plugin. Data endpoints return HTTP 403 (application code `9000`) if not booked. - v2 · Public [List CourseFinder styles for age](https://api-doc.studiointern.org/list-coursefinder-styles-for-age-40662022e0.md): Requires the CourseFinder plugin. Data endpoints return HTTP 403 (application code `9000`) if not booked. - v2 · Public [List CourseFinder levels](https://api-doc.studiointern.org/list-coursefinder-levels-40662023e0.md): Requires the CourseFinder plugin. Data endpoints return HTTP 403 (application code `9000`) if not booked. - v2 · Public [List CourseFinder lessons](https://api-doc.studiointern.org/list-coursefinder-lessons-40662024e0.md): Requires the CourseFinder plugin. Data endpoints return HTTP 403 (application code `9000`) if not booked. - v2 · Public [List available trial dates for a lesson](https://api-doc.studiointern.org/list-available-trial-dates-for-a-lesson-40662025e0.md): Requires the CourseFinder plugin. Data endpoints return HTTP 403 (application code `9000`) if not booked. - v2 · Own [List customers](https://api-doc.studiointern.org/list-customers-40662026e0.md): Requires `X-Api-Key` **and** `Authorization: Bearer ` from `/v2/oauth/token`. Endpoint role checks are tenant-specific. - v2 · Own [Get customer detail](https://api-doc.studiointern.org/get-customer-detail-40662027e0.md): Requires `X-Api-Key` **and** `Authorization: Bearer ` from `/v2/oauth/token`. Endpoint role checks are tenant-specific. - v2 · Own [Get customer CRM view](https://api-doc.studiointern.org/get-customer-crm-view-40662028e0.md): Requires `X-Api-Key` **and** `Authorization: Bearer ` from `/v2/oauth/token`. Endpoint role checks are tenant-specific. - v2 · Own [List students](https://api-doc.studiointern.org/list-students-40662029e0.md): Requires `X-Api-Key` **and** `Authorization: Bearer ` from `/v2/oauth/token`. Endpoint role checks are tenant-specific. - v2 · Own [Get student detail](https://api-doc.studiointern.org/get-student-detail-40662030e0.md): Requires `X-Api-Key` **and** `Authorization: Bearer ` from `/v2/oauth/token`. Endpoint role checks are tenant-specific. - v2 · Own [Create account entry](https://api-doc.studiointern.org/create-account-entry-40662031e0.md): Requires `X-Api-Key` **and** `Authorization: Bearer ` from `/v2/oauth/token`. Endpoint role checks are tenant-specific. - v2 · Own [Delete account entry](https://api-doc.studiointern.org/delete-account-entry-40662032e0.md): Requires `X-Api-Key` **and** `Authorization: Bearer ` from `/v2/oauth/token`. Endpoint role checks are tenant-specific. - v2 · Own [List CourseFinder leads](https://api-doc.studiointern.org/list-coursefinder-leads-40662033e0.md): Requires `X-Api-Key` **and** `Authorization: Bearer ` from `/v2/oauth/token`. Endpoint role checks are tenant-specific. ## Schemas - [V1Response](https://api-doc.studiointern.org/v1response-16684421d0.md): - [V1Course](https://api-doc.studiointern.org/v1course-16684422d0.md): - [V1CourseSchedule](https://api-doc.studiointern.org/v1courseschedule-16684423d0.md): - [V1Event](https://api-doc.studiointern.org/v1event-16684424d0.md): - [V1NextCourse](https://api-doc.studiointern.org/v1nextcourse-16684425d0.md): - [V1UserRegisterRequest](https://api-doc.studiointern.org/v1userregisterrequest-16684426d0.md): - [V1CustLoginRequest](https://api-doc.studiointern.org/v1custloginrequest-16684967d0.md): - [V1CustPasswordRequest](https://api-doc.studiointern.org/v1custpasswordrequest-16684968d0.md): - [V1ConfSetupRequest](https://api-doc.studiointern.org/v1confsetuprequest-16684969d0.md): - [V1CustomerUser](https://api-doc.studiointern.org/v1customeruser-16684427d0.md): - [V1CustomerBrief](https://api-doc.studiointern.org/v1customerbrief-16684428d0.md): - [V1AccountCreateRequest](https://api-doc.studiointern.org/v1accountcreaterequest-16684429d0.md): - [GatewayError](https://api-doc.studiointern.org/gatewayerror-16684430d0.md): - [RateLimitError](https://api-doc.studiointern.org/ratelimiterror-16684431d0.md): - [V2SuccessEnvelope](https://api-doc.studiointern.org/v2successenvelope-16684432d0.md): - [V2ErrorEnvelope](https://api-doc.studiointern.org/v2errorenvelope-16684433d0.md): - [PluginInfo](https://api-doc.studiointern.org/plugininfo-16684434d0.md): - [V2Location](https://api-doc.studiointern.org/v2location-16684435d0.md): - [V2Room](https://api-doc.studiointern.org/v2room-16684436d0.md): - [V2LocationsResponse](https://api-doc.studiointern.org/v2locationsresponse-16684437d0.md): - [V2RoomsResponse](https://api-doc.studiointern.org/v2roomsresponse-16684438d0.md): - [V2CourseStyle](https://api-doc.studiointern.org/v2coursestyle-16684439d0.md): - [V2CustomerRegisterRequest](https://api-doc.studiointern.org/v2customerregisterrequest-16684440d0.md): - [V2CustomerRegisterData](https://api-doc.studiointern.org/v2customerregisterdata-16684441d0.md): - [V2ContractRevokeRequest](https://api-doc.studiointern.org/v2contractrevokerequest-16684442d0.md): - [V2ContractQuitRequest](https://api-doc.studiointern.org/v2contractquitrequest-16684443d0.md): - [V2AppointmentCreateRequest](https://api-doc.studiointern.org/v2appointmentcreaterequest-16684444d0.md): - [V2AppointmentCreatedResponse](https://api-doc.studiointern.org/v2appointmentcreatedresponse-16684445d0.md): - [V2MailCheckData](https://api-doc.studiointern.org/v2mailcheckdata-16684446d0.md): - [CfAge](https://api-doc.studiointern.org/cfage-16684447d0.md): - [CfStyle](https://api-doc.studiointern.org/cfstyle-16684448d0.md): - [CfLevel](https://api-doc.studiointern.org/cflevel-16684449d0.md): - [CfLesson](https://api-doc.studiointern.org/cflesson-16684450d0.md): - [CfLead](https://api-doc.studiointern.org/cflead-16684451d0.md): - [V2OwnStudentBasic](https://api-doc.studiointern.org/v2ownstudentbasic-16684452d0.md): - [V2OwnCustomerListItem](https://api-doc.studiointern.org/v2owncustomerlistitem-16684453d0.md): - [V2OwnCustomerDetail](https://api-doc.studiointern.org/v2owncustomerdetail-16684454d0.md): - [V2OwnStudentDetail](https://api-doc.studiointern.org/v2ownstudentdetail-16684455d0.md): - [V2OwnStudentListItem](https://api-doc.studiointern.org/v2ownstudentlistitem-16684456d0.md): - [V2OwnCustomerCrm](https://api-doc.studiointern.org/v2owncustomercrm-16684457d0.md): - [V2OwnContract](https://api-doc.studiointern.org/v2owncontract-16684458d0.md): - [V2OwnWaitlist](https://api-doc.studiointern.org/v2ownwaitlist-16684459d0.md): - [V2OwnTrialLesson](https://api-doc.studiointern.org/v2owntriallesson-16684460d0.md): - [V2AccountCreateRequest](https://api-doc.studiointern.org/v2accountcreaterequest-16684461d0.md): - [V2AccountCreateData](https://api-doc.studiointern.org/v2accountcreatedata-16684462d0.md): - [OAuthTokenRequest](https://api-doc.studiointern.org/oauthtokenrequest-16684463d0.md): - [OAuthTokenResponse](https://api-doc.studiointern.org/oauthtokenresponse-16684464d0.md): - [OAuthTokenError](https://api-doc.studiointern.org/oauthtokenerror-16684465d0.md):