{
    "openapi": "3.1.0",
    "info": {
        "title": "Univs.com public catalogue API",
        "version": "1.2.0",
        "description": "Read-only search of universities, study programmes and education agencies published on Univs.com. No authentication. Responses are cached for 15 minutes. Data from Univs.com listings. Confirm fees, requirements and deadlines on the official institution page before relying on them. \"univs_verified\" means Univs reviewed the listing; it is not accreditation, a ranking or an admission guarantee.",
        "contact": {
            "name": "Univs.com",
            "url": "https://univs.com/contact-us/",
            "email": "info@univs.com"
        }
    },
    "servers": [
        {
            "url": "https://univs.com/wp-json/univs-agent/v1"
        }
    ],
    "paths": {
        "/programs": {
            "get": {
                "operationId": "searchPrograms",
                "summary": "Search study programmes",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "description": "Words in the programme name, e.g. medicine.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "country",
                        "in": "query",
                        "required": false,
                        "description": "Country slug, e.g. georgia (see /countries).",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "degree",
                        "in": "query",
                        "required": false,
                        "description": "bachelor, master, doctorate, diploma, certificate or foundation.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "language",
                        "in": "query",
                        "required": false,
                        "description": "Teaching language, e.g. English.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "scholarship",
                        "in": "query",
                        "required": false,
                        "description": "Set to 1 for programmes with a listed scholarship.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "Result page, 12 results per page (max 50).",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Matching programmes.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "total": {
                                            "type": "integer"
                                        },
                                        "page": {
                                            "type": "integer"
                                        },
                                        "pages": {
                                            "type": "integer"
                                        },
                                        "results": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "notice": {
                                            "type": "string"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/institutes": {
            "get": {
                "operationId": "searchInstitutes",
                "summary": "Search universities and institutes",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "description": "Institute name or city.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "country",
                        "in": "query",
                        "required": false,
                        "description": "Country slug, e.g. georgia.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "Result page, 12 results per page (max 50).",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Matching institutes.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "total": {
                                            "type": "integer"
                                        },
                                        "page": {
                                            "type": "integer"
                                        },
                                        "pages": {
                                            "type": "integer"
                                        },
                                        "results": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "notice": {
                                            "type": "string"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/agencies": {
            "get": {
                "operationId": "searchAgencies",
                "summary": "Search education agencies (Univs Agencies), neutral order, no contact details",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "description": "Words in the agency name or profile.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "office_country",
                        "in": "query",
                        "required": false,
                        "description": "Office country name or ISO code, e.g. India or IN.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "city",
                        "in": "query",
                        "required": false,
                        "description": "Office city, e.g. Tbilisi.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "destination",
                        "in": "query",
                        "required": false,
                        "description": "Study destination country name or ISO code, e.g. Georgia.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "language",
                        "in": "query",
                        "required": false,
                        "description": "Language the agency speaks, e.g. English.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "Result page, 12 results per page (max 50).",
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Matching agencies.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "total": {
                                            "type": "integer"
                                        },
                                        "page": {
                                            "type": "integer"
                                        },
                                        "pages": {
                                            "type": "integer"
                                        },
                                        "results": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "notice": {
                                            "type": "string"
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/countries": {
            "get": {
                "operationId": "listCountries",
                "summary": "List study destinations with institute counts",
                "responses": {
                    "200": {
                        "description": "Countries in the catalogue.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "total": {
                                            "type": "integer"
                                        },
                                        "results": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "slug": {
                                                        "type": "string",
                                                        "description": "Country slug"
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "description": "Country name"
                                                    },
                                                    "institutes": {
                                                        "type": "integer"
                                                    },
                                                    "url": {
                                                        "type": "string",
                                                        "description": "Country page"
                                                    },
                                                    "programs_url": {
                                                        "type": "string",
                                                        "description": "Country programmes page"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}