{"openapi":"3.0.3","info":{"title":"Mortgage Talent registration","version":"1.2.0","description":"For prospects, POST passwordless with email, create_user: true and profile data; set redirect_to to the role callback. The owner opens the emailed secure link to complete setup without sharing a password.\nAlternatively POST signup with email, password and data.first_name/data.last_name; include data.company_name for a brokerage. Set redirect_to to the callback for the selected role.\nIf signup returns no access_token, email confirmation is pending. Ask the account owner to open the confirmation email. Do not repeat signup or infer a new account from this response. A successful password sign-in must return a non-empty access_token; otherwise hand off to browser sign-in without claiming confirmation is pending.\nThe confirmation callback signs in the owner and opens their profile setup in the browser. New talent must still add contact details, a role and a primary CV. To continue by API, log in with the same email and password after confirmation.\nPOST onboard with p_role (talent or company) and optional p_first_name/p_last_name/p_company_name, using Authorization: Bearer <access_token> and apikey.\nPOST status with {} using the same headers. Complete only when role matches the requested role and has_profile is true. When the role matches but has_profile is false, keep the account and send the owner to workspace_urls for profile setup; do not repeat signup.","x-instructions":"https://mortgagetalent.com.au/agents/registration.md"},"servers":[{"url":"https://ttyqfdqhggywpkckmtdv.supabase.co"}],"components":{"securitySchemes":{"publishableKey":{"type":"apiKey","in":"header","name":"apikey","description":"Public key from https://mortgagetalent.com.au/api/agent-registration"},"bearerAuth":{"type":"http","scheme":"bearer"}}},"paths":{"/auth/v1/otp":{"post":{"operationId":"startPasswordlessSignup","summary":"Email a secure signup link; owner opens it to continue profile setup","security":[{"publishableKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"create_user":{"type":"boolean","description":"true for new signup; false to resend a link only for an existing account"},"data":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"company_name":{"type":"string"}}}},"required":["email","create_user"]}}}},"responses":{"200":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"400":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"401":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"422":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"429":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."}},"parameters":[{"name":"redirect_to","in":"query","required":true,"schema":{"type":"string","enum":["https://mortgagetalent.com.au/auth/agent-callback?onboard=talent","https://mortgagetalent.com.au/auth/agent-callback?onboard=company"]}}]}},"/auth/v1/signup":{"post":{"operationId":"signUp","summary":"Start signup; email confirmation may be required","security":[{"publishableKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"password":{"type":"string","minLength":8,"maxLength":128,"writeOnly":true},"data":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"company_name":{"type":"string"}}}},"required":["email","password"]}}}},"responses":{"200":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"400":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"401":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"422":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"429":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."}},"parameters":[{"name":"redirect_to","in":"query","required":true,"schema":{"type":"string","enum":["https://mortgagetalent.com.au/auth/agent-callback?onboard=talent","https://mortgagetalent.com.au/auth/agent-callback?onboard=company"]}}]}},"/auth/v1/token":{"post":{"operationId":"signIn","summary":"Sign in after email confirmation","security":[{"publishableKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"password":{"type":"string","writeOnly":true}},"required":["email","password"]}}}},"responses":{"200":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"400":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"401":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"422":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"429":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."}},"parameters":[{"name":"grant_type","in":"query","required":true,"schema":{"type":"string","enum":["password"]}}]}},"/auth/v1/resend":{"post":{"operationId":"resendConfirmation","summary":"Resend a pending password signup confirmation","security":[{"publishableKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["signup"]},"email":{"type":"string"}},"required":["type","email"]}}}},"responses":{"200":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"400":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"401":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"422":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"429":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."}},"parameters":[{"name":"redirect_to","in":"query","required":true,"schema":{"type":"string","enum":["https://mortgagetalent.com.au/auth/agent-callback?onboard=talent","https://mortgagetalent.com.au/auth/agent-callback?onboard=company"]}}]}},"/rest/v1/rpc/onboard_current_user":{"post":{"operationId":"completeRegistration","summary":"Create or recover the verified user profile; safe to retry for the same role","security":[{"publishableKey":[],"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"p_role":{"type":"string","enum":["talent","company"]},"p_first_name":{"type":"string"},"p_last_name":{"type":"string"},"p_company_name":{"type":"string"}},"required":["p_role"]}}}},"responses":{"200":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"400":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"401":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"422":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"429":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."}}}},"/rest/v1/rpc/get_current_auth_context":{"post":{"operationId":"registrationStatus","summary":"Check authoritative role and has_profile","security":[{"publishableKey":[],"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"responses":{"200":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"400":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"401":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"422":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."},"429":{"description":"Supabase JSON response. Errors use HTTP 4xx/5xx; honour 429 Retry-After."}}}}}}