{"openapi":"3.1.0","info":{"title":"EY Greensight API","description":"API for running Studio evaluations and listing rulesets.\n**Text limit:** 200 KB\n**PDF limit:** 50 MB","version":"1.0"},"paths":{"/api/guidelines":{"get":{"tags":["Relevant Context"],"summary":"List guideline files","description":"Returns all guideline files (PDFs) uploaded for the client associated with the API key.","operationId":"list_guideline_files_api_guidelines_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GuidelineFileOut"},"title":"Response List Guideline Files Api Guidelines Get"}}}}},"security":[{"ApiKeyAuth":[]}]},"post":{"tags":["Relevant Context"],"summary":"Upload guideline PDF","description":"Uploads a PDF, chunks and embeds it, then stores the guideline chunks for the client associated with your API key.","operationId":"create_guidelines_api_guidelines_post","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_guidelines_api_guidelines_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Guidelines Api Guidelines Post"}}}},"400":{"description":"Invalid file, duplicate, or extraction failure."},"409":{"description":"Guidelines for this file already exist."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"tags":["Relevant Context"],"summary":"Delete guideline PDF","description":"Deletes all chunks for a given PDF file name across all domains of your client.","operationId":"delete_guidelines_api_guidelines_delete","parameters":[{"name":"file_name","in":"query","required":true,"schema":{"type":"string","description":"Exact file name of the PDF to delete.","title":"File Name"},"description":"Exact file name of the PDF to delete."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Guidelines Api Guidelines Delete"}}}},"404":{"description":"No guidelines found for the given file name."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/api/pagechunks":{"get":{"tags":["Relevant Context"],"summary":"List context pages","description":"Returns all manually-uploaded context pages (non-scrapable) and their chunk counts for the client associated with the API key.","operationId":"list_pagechunk_pages_api_pagechunks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PageChunkFileOut"},"title":"Response List Pagechunk Pages Api Pagechunks Get"}}}}},"security":[{"ApiKeyAuth":[]}]},"post":{"tags":["Relevant Context"],"summary":"Upload context page PDF","description":"Uploads a PDF, extracts text, chunks and embeds it, then stores a non-scrapable Page with associated PageChunks for the client associated with your API key.","operationId":"create_pagechunk_page_api_pagechunks_post","requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_create_pagechunk_page_api_pagechunks_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Pagechunk Page Api Pagechunks Post"}}}},"400":{"description":"Invalid file, duplicate, or extraction failure."},"409":{"description":"A context page for this file already exists."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyAuth":[]}]},"delete":{"tags":["Relevant Context"],"summary":"Delete context page","description":"Deletes the context page (and all its chunks) identified by the PDF file name for the client associated with your API key. Chunks are removed via cascade.","operationId":"delete_pagechunk_page_api_pagechunks_delete","parameters":[{"name":"file_name","in":"query","required":true,"schema":{"type":"string","description":"Exact file name (title) of the PDF to delete.","title":"File Name"},"description":"Exact file name (title) of the PDF to delete."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Pagechunk Page Api Pagechunks Delete"}}}},"404":{"description":"No context page found for the given file name."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/api/rulesets":{"get":{"tags":["Studio"],"summary":"List rulesets","description":"Returns available ruleset IDs and names for use with other endpoints.","operationId":"get_rulesets_api_rulesets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/RulesetListItem"},"type":"array","title":"Response Get Rulesets Api Rulesets Get"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/api/rulesets/{ruleset_id}":{"get":{"tags":["Studio"],"summary":"List rules for a ruleset","description":"Returns rule IDs and names for the specified ruleset.","operationId":"get_ruleset_api_rulesets__ruleset_id__get","parameters":[{"name":"ruleset_id","in":"path","required":true,"schema":{"type":"string","title":"Ruleset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RuleListItem"},"title":"Response Get Ruleset Api Rulesets  Ruleset Id  Get"}}}},"404":{"description":"Ruleset not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/api/evaluate":{"post":{"tags":["Studio"],"summary":"Evaluate text","description":"Accepts JSON {text} and evaluates it using the selected rulesets. Returns immediately with an `evaluation_id`; poll `/api/evaluate/result/{evaluation_id}` for the result. Text limit: 200 KB.","operationId":"evaluate_api_evaluate_post","parameters":[{"name":"ruleset_ids","in":"query","required":true,"schema":{"type":"array","items":{"type":"string"},"description":"Ruleset IDs to evaluate against. Use /api/rulesets to list available IDs.","title":"Ruleset Ids"},"description":"Ruleset IDs to evaluate against. Use /api/rulesets to list available IDs."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudioTextRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationJobResponse"}}}},"400":{"description":"Invalid payload or size limits exceeded."},"404":{"description":"Ruleset not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/api/evaluate/upload":{"post":{"tags":["Studio"],"summary":"Evaluate PDF file","description":"Accepts multipart form with a PDF file. The PDF is converted to text using the PDF Azure Function before evaluation. Returns immediately with an `evaluation_id`; poll `/api/evaluate/result/{evaluation_id}` for the result. PDF limit: 50 MB.","operationId":"evaluate_upload_api_evaluate_upload_post","parameters":[{"name":"ruleset_ids","in":"query","required":true,"schema":{"type":"array","items":{"type":"string"},"description":"Ruleset IDs to evaluate against. Use /api/rulesets to list available IDs.","title":"Ruleset Ids"},"description":"Ruleset IDs to evaluate against. Use /api/rulesets to list available IDs."}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_evaluate_upload_api_evaluate_upload_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationJobResponse"}}}},"400":{"description":"Invalid PDF, size limits exceeded, or extraction failed."},"404":{"description":"Ruleset not found."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/api/evaluate/evaluations":{"get":{"tags":["Studio"],"summary":"List evaluation jobs for this API key","description":"Returns all evaluation jobs created by the current API key, newest first.","operationId":"list_evaluations_api_evaluate_evaluations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationsResponse"}}}}},"security":[{"ApiKeyAuth":[]}]}},"/api/evaluate/result/{evaluation_id}":{"get":{"tags":["Studio"],"summary":"Fetch evaluation result","description":"Poll for the result of an async evaluation job. Status is `pending` while the evaluation is running, `complete` when finished, or `error` if it failed. Results expire after the result is fetched (one-time read).","operationId":"get_evaluation_result_api_evaluate_result__evaluation_id__get","parameters":[{"name":"evaluation_id","in":"path","required":true,"schema":{"type":"string","title":"Evaluation Id"}}],"responses":{"200":{"description":"Current status and result of the evaluation job.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EvaluationResultResponse"}}}},"404":{"description":"Evaluation not found or expired."},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"ApiKeyAuth":[]}]}}},"components":{"schemas":{"Body_create_guidelines_api_guidelines_post":{"properties":{"file":{"type":"string","format":"binary","title":"File","description":"PDF file to process."}},"type":"object","required":["file"],"title":"Body_create_guidelines_api_guidelines_post"},"Body_create_pagechunk_page_api_pagechunks_post":{"properties":{"file":{"type":"string","format":"binary","title":"File","description":"PDF file to process."}},"type":"object","required":["file"],"title":"Body_create_pagechunk_page_api_pagechunks_post"},"Body_evaluate_upload_api_evaluate_upload_post":{"properties":{"file":{"type":"string","format":"binary","title":"File","description":"PDF file to evaluate."}},"type":"object","required":["file"],"title":"Body_evaluate_upload_api_evaluate_upload_post"},"EvaluationJobResponse":{"properties":{"evaluation_id":{"type":"string","title":"Evaluation Id","description":"Unique ID for this evaluation job."},"status":{"type":"string","title":"Status","description":"Job status: 'pending', 'complete', or 'error'."}},"type":"object","required":["evaluation_id","status"],"title":"EvaluationJobResponse"},"EvaluationResultResponse":{"properties":{"status":{"type":"string","title":"Status","description":"Job status: 'pending', 'complete', or 'error'."},"result":{"anyOf":[{"$ref":"#/components/schemas/PublicEvaluateResponseData"},{"type":"null"}],"description":"Evaluation result when status is 'complete'."},"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail","description":"Error detail when status is 'error'."}},"type":"object","required":["status"],"title":"EvaluationResultResponse"},"EvaluationStatusItem":{"properties":{"evaluation_id":{"type":"string","title":"Evaluation Id"},"status":{"type":"string","title":"Status","description":"'pending', 'complete', 'error', or 'expired'."},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At","description":"ISO-8601 UTC timestamp when the job was created."}},"type":"object","required":["evaluation_id","status"],"title":"EvaluationStatusItem"},"EvaluationsResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/EvaluationStatusItem"},"type":"array","title":"Items"},"message":{"type":"string","title":"Message"}},"type":"object","required":["items","message"],"title":"EvaluationsResponse"},"GuidelineFileOut":{"properties":{"name":{"type":"string","title":"Name"},"created":{"type":"string","title":"Created"}},"type":"object","required":["name","created"],"title":"GuidelineFileOut"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"LLMGuidelineContext":{"properties":{"chunk_id":{"type":"integer","title":"Chunk Id"},"page_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page Title"}},"type":"object","required":["chunk_id"],"title":"LLMGuidelineContext"},"NationalLegislation":{"properties":{"country":{"type":"string","title":"Country"},"rule_id":{"type":"string","title":"Rule Id"},"rule_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rule Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"usefulness_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Usefulness Reason"}},"type":"object","required":["country","rule_id"],"title":"NationalLegislation"},"PageChunkFileOut":{"properties":{"title":{"type":"string","title":"Title"},"created":{"type":"string","title":"Created"}},"type":"object","required":["title","created"],"title":"PageChunkFileOut"},"PublicClaimData":{"properties":{"findings":{"anyOf":[{"items":{"$ref":"#/components/schemas/PublicFindingData"},"type":"array"},{"type":"null"}],"title":"Findings"},"statement":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Statement"},"severity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Severity"},"severity_rationale":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity Rationale"},"reason_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason Summary","default":""},"mitigation_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mitigation Summary","default":""},"reason_summary_translation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason Summary Translation","default":""},"mitigation_summary_translation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mitigation Summary Translation","default":""},"leading_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Leading Context"},"trailing_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trailing Context"},"categories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Categories"},"relevant_context":{"anyOf":[{"items":{"$ref":"#/components/schemas/RelevantContext"},"type":"array"},{"type":"null"}],"title":"Relevant Context"},"guideline_info":{"anyOf":[{"additionalProperties":{"anyOf":[{"type":"string"},{"items":{"$ref":"#/components/schemas/LLMGuidelineContext"},"type":"array"},{"type":"null"}]},"type":"object"},{"type":"null"}],"title":"Guideline Info"}},"type":"object","title":"PublicClaimData"},"PublicEvaluateResponseData":{"properties":{"claims":{"items":{"$ref":"#/components/schemas/PublicClaimData"},"type":"array","title":"Claims"},"context":{"type":"string","title":"Context"}},"type":"object","required":["claims","context"],"title":"PublicEvaluateResponseData"},"PublicFindingData":{"properties":{"statement":{"type":"string","title":"Statement"},"reason":{"type":"string","title":"Reason"},"mitigation":{"type":"string","title":"Mitigation"},"translation_en":{"type":"string","title":"Translation En"},"risk_evaluation":{"type":"string","title":"Risk Evaluation"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"useful_legislations":{"items":{"$ref":"#/components/schemas/NationalLegislation"},"type":"array","title":"Useful Legislations"},"rule":{"anyOf":[{"$ref":"#/components/schemas/RuleDataOut"},{"type":"null"}]},"reason_translation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason Translation","default":""},"mitigation_translation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mitigation Translation","default":""},"description_translation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description Translation","default":""},"severity":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Severity"}},"type":"object","required":["statement","reason","mitigation","translation_en","risk_evaluation"],"title":"PublicFindingData"},"RelevantContext":{"properties":{"chunk_id":{"type":"integer","title":"Chunk Id"},"page_title":{"type":"string","title":"Page Title"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"}},"type":"object","required":["chunk_id","page_title"],"title":"RelevantContext"},"RuleDataOut":{"properties":{"id":{"type":"string","title":"Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"severity":{"type":"integer","title":"Severity"},"non_compliance_potential":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Non Compliance Potential"},"potential_to_mislead":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Potential To Mislead"}},"type":"object","required":["id","severity"],"title":"RuleDataOut"},"RuleListItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","name"],"title":"RuleListItem"},"RulesetListItem":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"}},"type":"object","required":["id","name"],"title":"RulesetListItem"},"StudioTextRequest":{"properties":{"text":{"type":"string","title":"Text","description":"Plain text to evaluate.","examples":["We reduced emissions by 40% compared to 2020."]}},"type":"object","required":["text"],"title":"StudioTextRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY"}}},"tags":[{"name":"Studio","description":"Studio evaluation and ruleset endpoints."}]}