{"openapi":"3.1.0","info":{"title":"OpeningsFirst (local)","version":"0.1.0"},"paths":{"/":{"get":{"summary":"Landing","operationId":"landing__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/jobs":{"get":{"summary":"Jobs Preview","description":"Browse jobs with filters (level, years, work mode, job type, posted, recruiters off by default), one card per\ncompany with its other jobs folded under it. Visitors: one page, company hidden (never sent to the browser).\nSubscribers: company and apply links, up to JOBS_PAGES pages of JOBS_PER_PAGE cards, JOBS_SEARCHES_PER_DAY page\nloads a day (no bulk copying), their hidden jobs left out, and one company's jobs (?company=).","operationId":"jobs_preview_jobs_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"","title":"Role"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","default":"","title":"Country"}},{"name":"city","in":"query","required":false,"schema":{"type":"string","default":"","title":"City"}},{"name":"remote","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Remote"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"posted","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Posted"}},{"name":"years","in":"query","required":false,"schema":{"type":"string","default":"","title":"Years"}},{"name":"others","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Others"}},{"name":"company","in":"query","required":false,"schema":{"type":"string","default":"","title":"Company"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/job/{job_id}":{"get":{"summary":"Job Panel","description":"One job: the side panel on lists (X-Panel: 1 -> the panel alone), or a page of its own.","operationId":"job_panel_job__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/job/{job_id}/{slug}":{"get":{"summary":"Job Page","description":"A job's own page with words in its address (the address search engines get).","operationId":"job_page_job__job_id___slug__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Id"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/preview":{"get":{"summary":"Preview","operationId":"preview_api_preview_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"","title":"Role"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","default":"","title":"Country"}},{"name":"city","in":"query","required":false,"schema":{"type":"string","default":"","title":"City"}},{"name":"remote","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Remote"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/signup":{"get":{"summary":"Signup Form","operationId":"signup_form_signup_get","parameters":[{"name":"next","in":"query","required":false,"schema":{"type":"string","default":"","title":"Next"}},{"name":"email","in":"query","required":false,"schema":{"type":"string","default":"","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Signup","description":"Email a one-time login link (new and returning users alike): typing an email alone never logs anyone in.","operationId":"signup_signup_post","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_signup_signup_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/start/count":{"get":{"summary":"Quiz Count","description":"The live count under the quiz: listings like their answers so far, posted in the past 7 days (kept 10 minutes).","operationId":"quiz_count_start_count_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"","title":"Role"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","default":"","title":"Country"}},{"name":"city","in":"query","required":false,"schema":{"type":"string","default":"","title":"City"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/start":{"get":{"summary":"Quiz","operationId":"quiz_start_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"","title":"Role"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","default":"","title":"Country"}},{"name":"city","in":"query","required":false,"schema":{"type":"string","default":"","title":"City"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/start/preview":{"get":{"summary":"Quiz Preview","description":"What the quiz answers would have found in the past week: the newest few as cards (company hidden), counts.","operationId":"quiz_preview_start_preview_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"","title":"Role"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","default":"","title":"Country"}},{"name":"city","in":"query","required":false,"schema":{"type":"string","default":"","title":"City"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/start/go":{"post":{"summary":"Quiz Go","description":"'Email me these jobs': logged in -> the answers become their filters (if they have none) -> pay; else sign up.","operationId":"quiz_go_start_go_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/google":{"get":{"summary":"Google Start","operationId":"google_start_auth_google_get","parameters":[{"name":"tz","in":"query","required":false,"schema":{"type":"string","default":"Asia/Kolkata","title":"Tz"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/google/callback":{"get":{"summary":"Google Callback","operationId":"google_callback_auth_google_callback_get","parameters":[{"name":"code","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}},{"name":"error","in":"query","required":false,"schema":{"type":"string","default":"","title":"Error"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/login/{token}":{"get":{"summary":"Login With Link","operationId":"login_with_link_login__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/contact":{"get":{"summary":"Legal","description":"Terms, privacy, refund policy and contact (payment providers check for these).","operationId":"legal_contact_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/refunds":{"get":{"summary":"Legal","description":"Terms, privacy, refund policy and contact (payment providers check for these).","operationId":"legal_refunds_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/privacy":{"get":{"summary":"Legal","description":"Terms, privacy, refund policy and contact (payment providers check for these).","operationId":"legal_privacy_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/terms":{"get":{"summary":"Legal","description":"Terms, privacy, refund policy and contact (payment providers check for these).","operationId":"legal_terms_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/unsubscribe/{user_id}/{token}":{"get":{"summary":"Unsubscribe Page","operationId":"unsubscribe_page_unsubscribe__user_id___token__get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Unsubscribe","description":"One click from the email (also the List-Unsubscribe-Post target): stops emails, keeps the account.","operationId":"unsubscribe_unsubscribe__user_id___token__post","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/apply/{job_id}":{"get":{"summary":"Apply Gate","operationId":"apply_gate_apply__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Apply Email","operationId":"apply_email_apply__job_id__post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_apply_email_apply__job_id__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/join":{"post":{"summary":"Join","description":"The offer's email box (the popup on Apply, or the card beside a job, open or closed). The card sends the alert\nit showed, maybe edited: role, city or remote, country; else the alert comes from the job itself. Variant A goes on\nto Dodo; variant B to their week of matches first (/myjobs), and pays from there.","operationId":"join_join_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_join_join_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/myjobs/{user_id}/{token}":{"get":{"summary":"My Jobs","description":"Variant B's page after the email (2026-10-27): their alert's matches from the past 7 days, companies hidden on\njobs still behind the 5-day lock, then one button to pay. Also the next-morning email's link. No sign-in: the link\nis signed (like /join/resume).","operationId":"my_jobs_myjobs__user_id___token__get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/myjobs/{user_id}/{token}/pay":{"post":{"summary":"My Jobs Pay","description":"'Get these every morning': Dodo's checkout, exactly as the offer's variant A does it.","operationId":"my_jobs_pay_myjobs__user_id___token__pay_post","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_my_jobs_pay_myjobs__user_id___token__pay_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/join/resume/{user_id}/{token}":{"get":{"summary":"Join Resume","description":"The reminder email's button: straight back to checkout (no sign-in needed), or to sign in if they've paid since.","operationId":"join_resume_join_resume__user_id___token__get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}},{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/r/{code}":{"get":{"summary":"Creator Link","description":"A creator's tracked link: counts the click, remembers the creator for 60 days (the first one stays), and\nopens the page it points at with utm tags for analytics. Unknown codes just go to the page.","operationId":"creator_link_r__code__get","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","default":"/","title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/r/{code}/{job_id}":{"get":{"summary":"Creator Job Link","description":"The short form for one job (in a creator's DM): /r/basun/8936962 = /r/basun?to=/job/8936962.","operationId":"creator_job_link_r__code___job_id__get","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/heard":{"post":{"summary":"Heard From","description":"'How did you hear about us?' on the dashboard (once). A creator named here counts for them only when no\ncreator link already brought this account.","operationId":"heard_from_heard_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_heard_from_heard_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/creators":{"get":{"summary":"Admin Creators","operationId":"admin_creators_admin_creators_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Days"}},{"name":"added","in":"query","required":false,"schema":{"type":"string","default":"","title":"Added"}},{"name":"error","in":"query","required":false,"schema":{"type":"string","default":"","title":"Error"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Admin Creators Add","operationId":"admin_creators_add_admin_creators_post","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_creators_add_admin_creators_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/refunds/done":{"post":{"summary":"Admin Refund Done","description":"Refunded in Dodo: off the list (and out of the health check).","operationId":"admin_refund_done_admin_refunds_done_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_refund_done_admin_refunds_done_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/whitelist":{"post":{"summary":"Admin Whitelist Add","description":"Whitelist jobs for one channel's links; back with the link to share (the last one) or what went wrong.","operationId":"admin_whitelist_add_admin_whitelist_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_whitelist_add_admin_whitelist_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/dm":{"post":{"summary":"Admin Dm","description":"The DM for a creator's auto-reply (jobs whitelisted for them, short links), shown on the page to copy.","operationId":"admin_dm_admin_dm_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_dm_admin_dm_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/admin/whitelist/remove":{"post":{"summary":"Admin Whitelist Remove","operationId":"admin_whitelist_remove_admin_whitelist_remove_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_admin_whitelist_remove_admin_whitelist_remove_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/logout":{"get":{"summary":"Logout","operationId":"logout_logout_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/onboarding":{"get":{"summary":"Onboarding","operationId":"onboarding_onboarding_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}},"post":{"summary":"Save Filters","operationId":"save_filters_onboarding_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/match-count":{"post":{"summary":"Match Count","description":"Live count on the filters page: how many jobs these filters would have found in the past week.","operationId":"match_count_api_match_count_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/alerts/{alert_id}/settings":{"post":{"summary":"Alert Settings","description":"Email on / off and the times, per alert (the first alert's are the account's).","operationId":"alert_settings_alerts__alert_id__settings_post","parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"string","title":"Alert Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/alerts/{alert_id}/delete":{"post":{"summary":"Alert Delete","description":"Delete an extra alert. Its past alerts stay readable under Past alerts.","operationId":"alert_delete_alerts__alert_id__delete_post","parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/pay":{"get":{"summary":"Pay","operationId":"pay_pay_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/pay/why":{"post":{"summary":"Pay Why","description":"'Not today?' with a reason, one tap (2026-10-31; in the open on every offer since 2026-11-01): what stops people\npaying. Visitors who only gave an email are known by their signed link.","operationId":"pay_why_pay_why_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_pay_why_pay_why_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/pay/unlock":{"post":{"summary":"Pay Unlock","description":"Retired 2026-11-03 (the one free unlock; see pay()). Old pages still post here: back to the payment page.\nJobs unlocked before then stay unlocked for those accounts (job_view).","operationId":"pay_unlock_pay_unlock_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_pay_unlock_pay_unlock_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/pay/checkout":{"post":{"summary":"Pay Checkout","description":"Signed in: Dodo's checkout. From the unlock panel (job_id): back to that job once paid.","operationId":"pay_checkout_pay_checkout_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_pay_checkout_pay_checkout_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/pay/done":{"get":{"summary":"Pay Done","description":"Dodo sends the customer back here; the plan switches on when its webhook arrives (usually seconds).","operationId":"pay_done_pay_done_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/webhooks/resend":{"post":{"summary":"Resend Webhook","description":"Resend's delivery events for our campaign emails (jb.app.campaign): delivered, opened, bounced, complained.\nSigned like Dodo's (Svix / Standard Webhooks): RESEND_WEBHOOK_SECRET.","operationId":"resend_webhook_webhooks_resend_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/e/{send_id}/{sig}":{"get":{"summary":"Email Click","description":"A link in a campaign email: the click counts for that email, then the page opens (our own pages only).","operationId":"email_click_e__send_id___sig__get","parameters":[{"name":"send_id","in":"path","required":true,"schema":{"type":"integer","title":"Send Id"}},{"name":"sig","in":"path","required":true,"schema":{"type":"string","title":"Sig"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","default":"/","title":"To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webhooks/dodo":{"post":{"summary":"Dodo Webhook","operationId":"dodo_webhook_webhooks_dodo_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/alerts/resume":{"post":{"summary":"Resume Alerts","operationId":"resume_alerts_alerts_resume_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/billing":{"get":{"summary":"Billing","description":"Manage or cancel: Dodo's customer portal (a fresh 24-hour link each time).","operationId":"billing_billing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/pay/test-activate":{"post":{"summary":"Test Activate","operationId":"test_activate_pay_test_activate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/dashboard":{"get":{"summary":"Dashboard","description":"New for you / All matches (per alert), My jobs (Saved, Applied, Hidden), My alerts, Past alerts.","operationId":"dashboard_dashboard_get","parameters":[{"name":"tab","in":"query","required":false,"schema":{"type":"string","default":"new","title":"Tab"}},{"name":"posted","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Posted"}},{"name":"group","in":"query","required":false,"schema":{"type":"string","default":"","title":"Group"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"company","in":"query","required":false,"schema":{"type":"string","default":"","title":"Company"}},{"name":"alert","in":"query","required":false,"schema":{"type":"string","default":"","title":"Alert"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/account":{"get":{"summary":"Account","description":"Profile, plan (manage or cancel), emails and log out: everything about the account in one place.","operationId":"account_account_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/account/refund":{"post":{"summary":"Refund Request","description":"'Request a refund' (2026-10-26): recorded, and the owner is emailed the account and subscription to refund in\nDodo by hand. The health check lists it until it's marked done on /admin/creators. One open request at a time.","operationId":"refund_request_account_refund_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_refund_request_account_refund_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/connect":{"get":{"summary":"Connect","description":"Connect your AI: the address, per-app steps with copy buttons, connected apps, keys (signed in).","operationId":"connect_connect_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/account/ai-keys":{"post":{"summary":"Ai Key Create","description":"A personal key for apps that can't sign in, shown once.","operationId":"ai_key_create_account_ai_keys_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_ai_key_create_account_ai_keys_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/connect/keys":{"post":{"summary":"Ai Key Create","description":"A personal key for apps that can't sign in, shown once.","operationId":"ai_key_create_connect_keys_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_ai_key_create_connect_keys_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/connect/dismiss":{"post":{"summary":"Connect Dismiss","description":"Hide the dashboard's one-time 'connect your AI' card for good.","operationId":"connect_dismiss_connect_dismiss_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/account/ai-keys/{key_id}/revoke":{"post":{"summary":"Ai Key Revoke","operationId":"ai_key_revoke_account_ai_keys__key_id__revoke_post","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/account/ai-apps/{client_id}/disconnect":{"post":{"summary":"Ai App Disconnect","operationId":"ai_app_disconnect_account_ai_apps__client_id__disconnect_post","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","title":"Client Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai/{app_key}":{"get":{"summary":"Ai Page","description":"Public pages: what connecting your AI does and how, overall and per app.","operationId":"ai_page_ai__app_key__get","parameters":[{"name":"app_key","in":"path","required":true,"schema":{"type":"string","title":"App Key"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ai":{"get":{"summary":"Ai Page","description":"Public pages: what connecting your AI does and how, overall and per app.","operationId":"ai_page_ai_get","parameters":[{"name":"app_key","in":"query","required":false,"schema":{"type":"string","default":"","title":"App Key"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/jobs/{job_id}/state":{"post":{"summary":"Job State","description":"Save / Mark applied / Hide, each a toggle (hidden jobs never come back in lists or alerts until unhidden from\nMy jobs). Answers JSON when asked (jobs.js), else goes back to the list.","operationId":"job_state_jobs__job_id__state_post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Id"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_job_state_jobs__job_id__state_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard/seen":{"post":{"summary":"Mark Seen","operationId":"mark_seen_dashboard_seen_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/settings":{"post":{"summary":"Save Settings","operationId":"save_settings_settings_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/digest/build-now":{"post":{"summary":"Build Now","operationId":"build_now_digest_build_now_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/digest/{digest_id}":{"get":{"summary":"Digest Page","description":"One alert, grouped by role. Each section shows 50; '?group=' pages through one role 100 at a time.","operationId":"digest_page_digest__digest_id__get","parameters":[{"name":"digest_id","in":"path","required":true,"schema":{"type":"integer","title":"Digest Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"group","in":"query","required":false,"schema":{"type":"string","default":"","title":"Group"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/digest/{digest_id}/pdf":{"get":{"summary":"Digest Pdf","operationId":"digest_pdf_digest__digest_id__pdf_get","parameters":[{"name":"digest_id","in":"path","required":true,"schema":{"type":"integer","title":"Digest Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/robots.txt":{"get":{"summary":"Robots Txt","operationId":"robots_txt_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap Index","operationId":"sitemap_index_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/sitemaps/{name}":{"get":{"summary":"Sitemap File","operationId":"sitemap_file_sitemaps__name__get","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/22b8bca4bf48696cc941b20e36a33a46.txt":{"get":{"summary":"Indexnow Key","operationId":"indexnow_key_22b8bca4bf48696cc941b20e36a33a46_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/indexnow.txt":{"get":{"summary":"Indexnow Key","operationId":"indexnow_key_indexnow_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llms.txt":{"get":{"summary":"Llms Txt","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/jobs/{a}":{"get":{"summary":"Seo Landing 1","operationId":"seo_landing_1_jobs__a__get","parameters":[{"name":"a","in":"path","required":true,"schema":{"type":"string","title":"A"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/jobs/{a}/{b}":{"get":{"summary":"Seo Landing 2","operationId":"seo_landing_2_jobs__a___b__get","parameters":[{"name":"a","in":"path","required":true,"schema":{"type":"string","title":"A"}},{"name":"b","in":"path","required":true,"schema":{"type":"string","title":"B"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/jobs/{a}/{b}/{c}":{"get":{"summary":"Seo Landing 3","operationId":"seo_landing_3_jobs__a___b___c__get","parameters":[{"name":"a","in":"path","required":true,"schema":{"type":"string","title":"A"}},{"name":"b","in":"path","required":true,"schema":{"type":"string","title":"B"}},{"name":"c","in":"path","required":true,"schema":{"type":"string","title":"C"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/jobs/{a}/{b}/{c}/{d}":{"get":{"summary":"Seo Landing 4","operationId":"seo_landing_4_jobs__a___b___c___d__get","parameters":[{"name":"a","in":"path","required":true,"schema":{"type":"string","title":"A"}},{"name":"b","in":"path","required":true,"schema":{"type":"string","title":"B"}},{"name":"c","in":"path","required":true,"schema":{"type":"string","title":"C"}},{"name":"d","in":"path","required":true,"schema":{"type":"string","title":"D"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/companies/{slug}":{"get":{"summary":"Seo Company","operationId":"seo_company_companies__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/hiring/{cslug}/{week}":{"get":{"summary":"Hiring Report","description":"Who's hiring this week (counts per company / role / city; no job details) and the weeks before.","operationId":"hiring_report_hiring__cslug___week__get","parameters":[{"name":"cslug","in":"path","required":true,"schema":{"type":"string","title":"Cslug"}},{"name":"week","in":"path","required":true,"schema":{"type":"string","title":"Week"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/hiring/{cslug}":{"get":{"summary":"Hiring Report","description":"Who's hiring this week (counts per company / role / city; no job details) and the weeks before.","operationId":"hiring_report_hiring__cslug__get","parameters":[{"name":"cslug","in":"path","required":true,"schema":{"type":"string","title":"Cslug"}},{"name":"week","in":"query","required":false,"schema":{"type":"string","default":"","title":"Week"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/about":{"get":{"summary":"About","operationId":"about_about_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/.well-known/oauth-protected-resource/mcp":{"get":{"summary":"Well Known Resource","operationId":"well_known_resource__well_known_oauth_protected_resource_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-protected-resource":{"get":{"summary":"Well Known Resource","operationId":"well_known_resource__well_known_oauth_protected_resource_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/openid-configuration":{"get":{"summary":"Well Known Server","operationId":"well_known_server__well_known_openid_configuration_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-authorization-server/mcp":{"get":{"summary":"Well Known Server","operationId":"well_known_server__well_known_oauth_authorization_server_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-authorization-server":{"get":{"summary":"Well Known Server","operationId":"well_known_server__well_known_oauth_authorization_server_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/{rest}":{"options":{"summary":"Preflight","operationId":"preflight_oauth__rest__options","parameters":[{"name":"rest","in":"path","required":true,"schema":{"type":"string","title":"Rest"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/.well-known/{rest}":{"options":{"summary":"Preflight","operationId":"preflight__well_known__rest__options","parameters":[{"name":"rest","in":"path","required":true,"schema":{"type":"string","title":"Rest"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/oauth/register":{"post":{"summary":"Register","operationId":"register_oauth_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/authorize":{"get":{"summary":"Authorize","operationId":"authorize_oauth_authorize_get","parameters":[{"name":"client_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Client Id"}},{"name":"redirect_uri","in":"query","required":false,"schema":{"type":"string","default":"","title":"Redirect Uri"}},{"name":"response_type","in":"query","required":false,"schema":{"type":"string","default":"","title":"Response Type"}},{"name":"code_challenge","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code Challenge"}},{"name":"code_challenge_method","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code Challenge Method"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","title":"State"}},{"name":"scope","in":"query","required":false,"schema":{"type":"string","default":"jobs","title":"Scope"}},{"name":"resource","in":"query","required":false,"schema":{"type":"string","title":"Resource"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Authorize Answer","operationId":"authorize_answer_oauth_authorize_post","requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_authorize_answer_oauth_authorize_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/oauth/token":{"post":{"summary":"Token","operationId":"token_oauth_token_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/revoke":{"post":{"summary":"Revoke","operationId":"revoke_oauth_revoke_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/mcp":{"get":{"summary":"Mcp Other","description":"No server-sent event stream and no sessions: everything is answered on POST.","operationId":"mcp_other_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Mcp","operationId":"mcp_mcp_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"delete":{"summary":"Mcp Other","description":"No server-sent event stream and no sessions: everything is answered on POST.","operationId":"mcp_other_mcp_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"options":{"summary":"Mcp Preflight","operationId":"mcp_preflight_mcp_options","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/widget":{"get":{"summary":"Widget","description":"A small list of the newest public jobs behind one landing page, for an <iframe>; every link carries\nutm_source=widget and the embedding site, so sign-ups from widgets show up by site.","operationId":"widget_widget_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"string","default":"/jobs/india","title":"Page"}},{"name":"n","in":"query","required":false,"schema":{"type":"integer","default":8,"title":"N"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/widgets":{"get":{"summary":"Widgets Page","description":"How to put a jobs widget on your site: pick a page, copy one line.","operationId":"widgets_page_widgets_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/manifest.webmanifest":{"get":{"summary":"Web Manifest","operationId":"web_manifest_manifest_webmanifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/assetlinks.json":{"get":{"summary":"Asset Links","description":"For the Play Store app: ANDROID_PACKAGE + ANDROID_SHA256 (the app signing key's fingerprint) in .env.","operationId":"asset_links__well_known_assetlinks_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/i/{code}":{"get":{"summary":"Invite Link","description":"A friend's invite link: remember who invited (60 days, the first invite stays) and open the start page.","operationId":"invite_link_i__code__get","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/check":{"get":{"summary":"Job Check","operationId":"job_check_api_check_get","parameters":[{"name":"company","in":"query","required":false,"schema":{"type":"string","default":"","title":"Company"}},{"name":"title","in":"query","required":false,"schema":{"type":"string","default":"","title":"Title"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/.well-known/mcp-registry-auth":{"get":{"summary":"Mcp Registry Auth","description":"Proves to the official MCP Registry that we own openingsfirst.com (the connector's listing, 2026-10-29).","operationId":"mcp_registry_auth__well_known_mcp_registry_auth_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/review-login/{token}":{"get":{"summary":"Review Login","operationId":"review_login_review_login__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/.well-known/openai-apps-challenge":{"get":{"summary":"Openai Apps Challenge","description":"OpenAI's domain check for listing the connector in the ChatGPT directory (OPENAI_APPS_CHALLENGE in .env).","operationId":"openai_apps_challenge__well_known_openai_apps_challenge_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/glama.json":{"get":{"summary":"Glama Claim","description":"Proves to Glama (MCP connector directory) that we own the domain, so we can manage our listing (GLAMA_CLAIM).","operationId":"glama_claim__well_known_glama_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/reviewer-login":{"get":{"summary":"Reviewer Login Page","operationId":"reviewer_login_page_reviewer_login_get","parameters":[{"name":"next","in":"query","required":false,"schema":{"type":"string","default":"/connect","title":"Next"}},{"name":"error","in":"query","required":false,"schema":{"type":"string","default":"","title":"Error"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Reviewer Login","operationId":"reviewer_login_reviewer_login_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_reviewer_login_reviewer_login_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"Body_admin_creators_add_admin_creators_post":{"properties":{"code":{"type":"string","title":"Code"},"name":{"type":"string","title":"Name"},"handle":{"type":"string","title":"Handle","default":""},"platform":{"type":"string","title":"Platform","default":""},"pct":{"type":"number","title":"Pct","default":0},"fee":{"type":"number","title":"Fee","default":0},"notes":{"type":"string","title":"Notes","default":""}},"type":"object","required":["code","name"],"title":"Body_admin_creators_add_admin_creators_post"},"Body_admin_dm_admin_dm_post":{"properties":{"channel":{"type":"string","title":"Channel"},"jobs":{"type":"string","title":"Jobs","default":""},"company":{"type":"string","title":"Company","default":""},"n":{"type":"integer","title":"N","default":3},"days":{"type":"number","title":"Days","default":0}},"type":"object","required":["channel"],"title":"Body_admin_dm_admin_dm_post"},"Body_admin_refund_done_admin_refunds_done_post":{"properties":{"id":{"type":"integer","title":"Id"}},"type":"object","required":["id"],"title":"Body_admin_refund_done_admin_refunds_done_post"},"Body_admin_whitelist_add_admin_whitelist_post":{"properties":{"channel":{"type":"string","title":"Channel"},"jobs":{"type":"string","title":"Jobs"},"days":{"type":"number","title":"Days","default":0}},"type":"object","required":["channel","jobs"],"title":"Body_admin_whitelist_add_admin_whitelist_post"},"Body_admin_whitelist_remove_admin_whitelist_remove_post":{"properties":{"job":{"type":"string","title":"Job"}},"type":"object","required":["job"],"title":"Body_admin_whitelist_remove_admin_whitelist_remove_post"},"Body_ai_key_create_account_ai_keys_post":{"properties":{"name":{"type":"string","title":"Name","default":"My AI"}},"type":"object","title":"Body_ai_key_create_account_ai_keys_post"},"Body_ai_key_create_connect_keys_post":{"properties":{"name":{"type":"string","title":"Name","default":"My AI"}},"type":"object","title":"Body_ai_key_create_connect_keys_post"},"Body_apply_email_apply__job_id__post":{"properties":{"email":{"type":"string","title":"Email"},"tz":{"type":"string","title":"Tz","default":""},"ph_id":{"type":"string","title":"Ph Id","default":""}},"type":"object","required":["email"],"title":"Body_apply_email_apply__job_id__post"},"Body_authorize_answer_oauth_authorize_post":{"properties":{"client_id":{"type":"string","title":"Client Id"},"redirect_uri":{"type":"string","title":"Redirect Uri"},"code_challenge":{"type":"string","title":"Code Challenge"},"state":{"type":"string","title":"State","default":""},"scope":{"type":"string","title":"Scope","default":"jobs"},"token":{"type":"string","title":"Token"},"decision":{"type":"string","title":"Decision"}},"type":"object","required":["client_id","redirect_uri","code_challenge","token","decision"],"title":"Body_authorize_answer_oauth_authorize_post"},"Body_heard_from_heard_post":{"properties":{"heard":{"type":"string","title":"Heard","default":""},"who":{"type":"string","title":"Who","default":""}},"type":"object","title":"Body_heard_from_heard_post"},"Body_job_state_jobs__job_id__state_post":{"properties":{"state":{"type":"string","title":"State"},"back":{"type":"string","title":"Back","default":"/dashboard"}},"type":"object","required":["state"],"title":"Body_job_state_jobs__job_id__state_post"},"Body_join_join_post":{"properties":{"email":{"type":"string","title":"Email"},"job_id":{"type":"integer","title":"Job Id","default":0},"tz":{"type":"string","title":"Tz","default":""},"via":{"type":"string","title":"Via","default":"popup"},"role":{"type":"string","title":"Role","default":""},"city":{"type":"string","title":"City","default":""},"country":{"type":"string","title":"Country","default":""},"remote":{"type":"string","title":"Remote","default":""},"ov":{"type":"string","title":"Ov","default":""},"trigger":{"type":"string","title":"Trigger","default":""},"ph_id":{"type":"string","title":"Ph Id","default":""},"company":{"type":"string","title":"Company","default":""},"level":{"type":"string","title":"Level","default":""},"plan":{"type":"string","title":"Plan","default":"1m"}},"type":"object","required":["email"],"title":"Body_join_join_post"},"Body_my_jobs_pay_myjobs__user_id___token__pay_post":{"properties":{"plan":{"type":"string","title":"Plan","default":"1m"}},"type":"object","title":"Body_my_jobs_pay_myjobs__user_id___token__pay_post"},"Body_pay_checkout_pay_checkout_post":{"properties":{"job_id":{"type":"integer","title":"Job Id","default":0},"where":{"type":"string","title":"Where","default":""},"plan":{"type":"string","title":"Plan","default":"1m"}},"type":"object","title":"Body_pay_checkout_pay_checkout_post"},"Body_pay_unlock_pay_unlock_post":{"properties":{"job_id":{"type":"integer","title":"Job Id"}},"type":"object","required":["job_id"],"title":"Body_pay_unlock_pay_unlock_post"},"Body_pay_why_pay_why_post":{"properties":{"reason":{"type":"string","title":"Reason","default":"other"},"u":{"type":"string","title":"U","default":""},"t":{"type":"string","title":"T","default":""},"where":{"type":"string","title":"Where","default":""}},"type":"object","title":"Body_pay_why_pay_why_post"},"Body_refund_request_account_refund_post":{"properties":{"reason":{"type":"string","title":"Reason","default":""}},"type":"object","title":"Body_refund_request_account_refund_post"},"Body_reviewer_login_reviewer_login_post":{"properties":{"email":{"type":"string","title":"Email","default":""},"password":{"type":"string","title":"Password","default":""},"next":{"type":"string","title":"Next","default":"/connect"}},"type":"object","title":"Body_reviewer_login_reviewer_login_post"},"Body_signup_signup_post":{"properties":{"email":{"type":"string","title":"Email"},"timezone_name":{"type":"string","title":"Timezone Name","default":"Asia/Kolkata"}},"type":"object","required":["email"],"title":"Body_signup_signup_post"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}