{"openapi":"3.1.0","info":{"title":"GOURVIA public API","description":"Routes publiques en lecture seule de GOURVIA (aucune authentification requise).","version":"1.0.0","contact":{"name":"GOURVIA","email":"support@gourvia.online","url":"https://gourvia.online/contact"}},"paths":{"/api/public/assets/{path}":{"get":{"summary":"Public Asset","description":"Public asset endpoint — STRICTLY limited to non-sensitive assets.\nAllowed: /logos/, /photos/ only. Documents (CV, CNI, diplomas, etc.)\nMUST be served via the authenticated /api/documents/view/{id} endpoint.","operationId":"public_asset_api_public_assets__path__get","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/blog/articles":{"get":{"summary":"List Blog Articles","operationId":"list_blog_articles_api_blog_articles_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/blog/articles/{slug}":{"get":{"summary":"Get Blog Article","operationId":"get_blog_article_api_blog_articles__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/jobs":{"get":{"summary":"List Public Jobs","description":"Liste publique des offres actives (sans authentification).","operationId":"list_public_jobs_api_public_jobs_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"location","in":"query","required":false,"schema":{"type":"string","default":"","title":"Location"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"country","in":"query","required":false,"schema":{"type":"string","default":"","title":"Country"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/jobs/{ref}":{"get":{"summary":"Get Public Job","description":"Detail public d une offre active, par slug ou id.","operationId":"get_public_job_api_public_jobs__ref__get","parameters":[{"name":"ref","in":"path","required":true,"schema":{"type":"string","title":"Ref"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/seo/catalog":{"get":{"summary":"Get Catalog","description":"Lightweight payload for index pages: lists everything we generate.","operationId":"get_catalog_api_seo_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/seo/salary/{slug}":{"get":{"summary":"Get Salary Page","operationId":"get_salary_page_api_seo_salary__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/seo/interview-prep/{metier}":{"get":{"summary":"Get Interview Prep","operationId":"get_interview_prep_api_seo_interview_prep__metier__get","parameters":[{"name":"metier","in":"path","required":true,"schema":{"type":"string","title":"Metier"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/seo/skill-analysis/{slug}":{"get":{"summary":"Get Skill Analysis","operationId":"get_skill_analysis_api_seo_skill_analysis__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/seo/career-evolution/{slug}":{"get":{"summary":"Get Career Evolution","operationId":"get_career_evolution_api_seo_career_evolution__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/seo/related-metiers/{slug}":{"get":{"summary":"Get Related Metiers","description":"Return up to `limit` métiers from the same category as `slug`.\n\nUsed by the \"Métiers proches\" block on salary / interview-prep / career\ndetail pages to weave internal links between sibling content and boost\ncrawlability + topical clustering.","operationId":"get_related_metiers_api_seo_related_metiers__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":6,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/seo/barometre":{"get":{"summary":"Barometre","operationId":"barometre_api_seo_barometre_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/countries":{"get":{"summary":"List Countries","operationId":"list_countries_api_countries_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"type":"string","maxLength":5,"default":"fr","title":"Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/countries/{code}":{"get":{"summary":"Get Country","operationId":"get_country_api_countries__code__get","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","maxLength":5,"default":"fr","title":"Lang"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"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"}}},"servers":[{"url":"https://gourvia.online"}],"externalDocs":{"description":"Documentation développeurs","url":"https://gourvia.online/developers"}}