Download openapi_schema.json from k01010/fundora: direct link, hf CLI and curl.
- Browser
- Download file 4.64 kB
-
https://huggingface.co/spaces/k01010/fundora/resolve/main/openapi_schema.json
- Command line
-
hf download hf://spaces/k01010/fundora/openapi_schema.json
-
curl -L -o openapi_schema.json https://huggingface.co/spaces/k01010/fundora/resolve/main/openapi_schema.json
4.64 kB
| { | |
| "openapi": "3.1.0", | |
| "info": { | |
| "title": "Scholarship Matcher", | |
| "description": "Semantic scholarship search — returns ranked scholarship links matching a user's academic profile.", | |
| "version": "1.0.0" | |
| }, | |
| "servers": [ | |
| { | |
| "url": "https://kabir08-fundora.hf.space" | |
| } | |
| ], | |
| "paths": { | |
| "/match": { | |
| "post": { | |
| "operationId": "matchScholarships", | |
| "summary": "Find scholarships that match a user's profile", | |
| "description": "Accepts a free-text profile description and returns the most relevant scholarships from a pre-indexed database covering DAAD, GyanDhan, Chevening, UCL, Commonwealth, and more.", | |
| "requestBody": { | |
| "required": true, | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/MatchRequest" | |
| } | |
| } | |
| } | |
| }, | |
| "responses": { | |
| "200": { | |
| "description": "List of matching scholarships", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/MatchResponse" | |
| } | |
| } | |
| } | |
| }, | |
| "400": { | |
| "description": "Invalid request" | |
| }, | |
| "503": { | |
| "description": "Index still building — retry in a minute" | |
| } | |
| } | |
| } | |
| }, | |
| "/health": { | |
| "get": { | |
| "operationId": "healthCheck", | |
| "summary": "Check if the service is running", | |
| "responses": { | |
| "200": { | |
| "description": "Service health status", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "type": "object", | |
| "properties": { | |
| "status": { "type": "string" }, | |
| "index_ready": { "type": "boolean" } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "/index_status": { | |
| "get": { | |
| "operationId": "indexStatus", | |
| "summary": "Get index build status and item count", | |
| "responses": { | |
| "200": { | |
| "description": "Index status", | |
| "content": { | |
| "application/json": { | |
| "schema": { | |
| "$ref": "#/components/schemas/IndexStatus" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }, | |
| "components": { | |
| "schemas": { | |
| "MatchRequest": { | |
| "type": "object", | |
| "required": ["profile"], | |
| "properties": { | |
| "profile": { | |
| "type": "string", | |
| "description": "The user's academic background, field of study, nationality, degree level, and any other relevant information.", | |
| "example": "I am a Nigerian student with a Bachelor's in Computer Science seeking a fully funded Master's in the UK or Germany." | |
| }, | |
| "top_k": { | |
| "type": "integer", | |
| "description": "Number of scholarships to return (1-50, default 10).", | |
| "default": 10, | |
| "minimum": 1, | |
| "maximum": 50 | |
| } | |
| } | |
| }, | |
| "ScholarshipResult": { | |
| "type": "object", | |
| "properties": { | |
| "title": { | |
| "type": "string", | |
| "description": "Scholarship name or programme title." | |
| }, | |
| "link": { | |
| "type": "string", | |
| "description": "Direct URL to the scholarship page." | |
| }, | |
| "description": { | |
| "type": "string", | |
| "description": "Short description or eligibility snippet." | |
| }, | |
| "source": { | |
| "type": "string", | |
| "description": "Website the scholarship was sourced from (e.g. DAAD, GyanDhan)." | |
| } | |
| } | |
| }, | |
| "MatchResponse": { | |
| "type": "object", | |
| "properties": { | |
| "results": { | |
| "type": "array", | |
| "items": { "$ref": "#/components/schemas/ScholarshipResult" } | |
| }, | |
| "total_indexed": { | |
| "type": "integer", | |
| "description": "Total number of scholarships in the index." | |
| }, | |
| "index_ready": { | |
| "type": "boolean" | |
| } | |
| } | |
| }, | |
| "IndexStatus": { | |
| "type": "object", | |
| "properties": { | |
| "ready": { "type": "boolean" }, | |
| "total_items": { "type": "integer" }, | |
| "error": { "type": "string", "nullable": true }, | |
| "build_started_at": { "type": "number", "nullable": true } | |
| } | |
| } | |
| } | |
| } | |
| } | |