Vughy Visa & Country API
The Vughy API powers visa workflows for thousands of travel agents. Every endpoint returns JSON, uses simple GET or POST requests, and is authenticated with a single domain-restricted API key.
Simple auth
Single header, x-api-key.
Global coverage
Visas across 150+ countries.
Backend-first
Call from your server, never the browser.
Authenticate every request
All API requests require an API key sent in the x-api-key header. Keys are domain-restricted, so make sure to register each domain you plan to use.
Required headers
{
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY"
}Best practice
Always call the API from your backend. Exposing your API key from a browser bypasses the domain restriction and risks abuse.
One base, every endpoint
All endpoints are relative to:
https://migrate.vughy.com/visaclapapi/apiAPI Reference
Nine endpoints cover the entire visa journey, from picking a destination to quoting service fees.
/visacountry🌍 Get Countries List
Returns a list of all countries with basic details (id, name, currency, capital, time zone). Use this to populate country dropdowns across your app.
- Endpoint
- GET /visacountry
- Use case
- Populate country dropdowns and pickers.
Request
No parameters required.
Sample cURL
"text-violet-300 font-semibold">curl "text-sky-300">-X "text-violet-300 font-semibold">GET "https://migrate.vughy.com/visaclapapi/api/visacountry" \
"text-sky-300">-H "x-api-key: YOUR_API_KEY"Sample response
{
"code": 200,
"message": [
{
"id": "1",
"name": "Andorra",
"currency": "Euro (EUR)",
"capital": "Andorra la Vella",
"time_zone": "UTC+1"
}
]
}/Getcountryname🌍 Get Country Details
Fetch detailed info of a country using its country ID. Returns the full record including a long-form description.
- Endpoint
- POST /Getcountryname
- Use case
- Show country information on a UI page.
Request body
{
"countryid": 2
}Sample cURL
"text-violet-300 font-semibold">curl "text-sky-300">-X "text-violet-300 font-semibold">POST "https://migrate.vughy.com/visaclapapi/api/Getcountryname" \
"text-sky-300">-H "Content-Type: application/json" \
"text-sky-300">-H "x-api-key: YOUR_API_KEY" \
"text-sky-300">-d '{ "countryid": 2 }'Sample response
{
"status": true,
"countrydata": [
{
"id": "2",
"name": "United Arab Emirates",
"currency": "Dirham (AED)",
"capital": "Abu Dhabi",
"description": "..."
}
]
}/visacountry✈️ Get Visa List
Returns all visa options between two countries. This is the most important endpoint for showing available visa types.
- Endpoint
- POST /visacountry
- Use case
- Show available visa types (tourist, business, etc.) between two countries.
Important note
This endpoint is overloaded. GET returns the country list, POST returns the visa data. Document this clearly in your UI.
Request body
{
"from_country": 107,
"to_country": 235
}Sample cURL
"text-violet-300 font-semibold">curl "text-sky-300">-X "text-violet-300 font-semibold">POST "https://migrate.vughy.com/visaclapapi/api/visacountry" \
"text-sky-300">-H "Content-Type: application/json" \
"text-sky-300">-H "x-api-key: YOUR_API_KEY" \
"text-sky-300">-d '{ "from_country": 107, "to_country": 235 }'Sample Response (trimmed)
{
"status": true,
"message": [
{
"visa_type_id": "1",
"type_of_visa": "Visiting Visa",
"price": "17390.00",
"visa_validity": "10-Year",
"length_of_stay": "6-Month",
"time_to_get_visa": "2-Month"
}
]
}/getvisadetail📄 Get Visa Details
Fetch detailed information for a specific visa type, including validity and entry type.
- Endpoint
- POST /getvisadetail
- Use case
- Display the full visa details page.
Request body
{
"value": 1,
"origin_country": 107,
"destination_country": 235
}Sample cURL
"text-violet-300 font-semibold">curl "text-sky-300">-X "text-violet-300 font-semibold">POST "https://migrate.vughy.com/visaclapapi/api/getvisadetail" \
"text-sky-300">-H "Content-Type: application/json" \
"text-sky-300">-H "x-api-key: YOUR_API_KEY" \
"text-sky-300">-d '{ "value": 1, "origin_country": 107, "destination_country": 235 }'Sample response
{
"status": true,
"country_visa": [
{
"type_of_visa": "Visiting Visa",
"visa_validity": "10-Year",
"entry_type": "Multiple"
}
]
}/getform_visa📝 Get Visa Form
Returns the dynamic form fields required to submit a visa application. Use this to render the application form on the fly.
- Endpoint
- POST /getform_visa
- Use case
- Dynamic visa application form generation.
Request body
{
"gid": 1,
"visatype": 1,
"visaid": 1,
"origincountry": 107,
"destinationcountry": 235
}Sample cURL
"text-violet-300 font-semibold">curl "text-sky-300">-X "text-violet-300 font-semibold">POST "https://migrate.vughy.com/visaclapapi/api/getform_visa" \
"text-sky-300">-H "Content-Type: application/json" \
"text-sky-300">-H "x-api-key: YOUR_API_KEY" \
"text-sky-300">-d '{ "gid": 1, "visatype": 1, "visaid": 1, "origincountry": 107, "destinationcountry": 235 }'Sample response
{
"status": true,
"formdata": {
"General information": [
{
"label_name": "person name visiting",
"field_type": "text"
}
]
}
}/getvisadocument📂 Get Visa Documents
Returns the document groups required for a visa application.
- Endpoint
- POST /getvisadocument
- Use case
- Show required document categories to the applicant.
Request body
{
"value": 1,
"origin_country": 107,
"destination_country": 235
}Sample cURL
"text-violet-300 font-semibold">curl "text-sky-300">-X "text-violet-300 font-semibold">POST "https://migrate.vughy.com/visaclapapi/api/getvisadocument" \
"text-sky-300">-H "Content-Type: application/json" \
"text-sky-300">-H "x-api-key: YOUR_API_KEY" \
"text-sky-300">-d '{ "value": 1, "origin_country": 107, "destination_country": 235 }'Sample response
{
"status": true,
"documentid": [
{
"name": "USA Visiting Visa Documents"
}
]
}/getlistofdocument📑 Get Document Details
Returns details of a specific document by ID.
- Endpoint
- POST /getlistofdocument
- Use case
- Show individual document details.
Request body
{
"value": 3
}Sample cURL
"text-violet-300 font-semibold">curl "text-sky-300">-X "text-violet-300 font-semibold">POST "https://migrate.vughy.com/visaclapapi/api/getlistofdocument" \
"text-sky-300">-H "Content-Type: application/json" \
"text-sky-300">-H "x-api-key: YOUR_API_KEY" \
"text-sky-300">-d '{ "value": 3 }'Sample response
{
"status": true,
"listdocument": {
"name": "passport front and back"
}
}/getvisatypename🏷 Get Visa Type Name
Returns the visa type name from a given type ID.
- Endpoint
- POST /getvisatypename
- Use case
- Display visa type labels.
Request body
{
"typeid": 3
}Sample cURL
"text-violet-300 font-semibold">curl "text-sky-300">-X "text-violet-300 font-semibold">POST "https://migrate.vughy.com/visaclapapi/api/getvisatypename" \
"text-sky-300">-H "Content-Type: application/json" \
"text-sky-300">-H "x-api-key: YOUR_API_KEY" \
"text-sky-300">-d '{ "typeid": 3 }'Sample response
{
"status": true,
"visaname": {
"name": "Tourist Visa"
}
}/Getvisaservicefees💰 Get Visa Service Fees
Returns visa pricing and service charges for the chosen visa and destination country.
- Endpoint
- POST /Getvisaservicefees
- Use case
- Show pricing breakdown to the customer.
Request body
{
"visaid": 1,
"intersted_country": 235
}Sample cURL
"text-violet-300 font-semibold">curl "text-sky-300">-X "text-violet-300 font-semibold">POST "https://migrate.vughy.com/visaclapapi/api/Getvisaservicefees" \
"text-sky-300">-H "Content-Type: application/json" \
"text-sky-300">-H "x-api-key: YOUR_API_KEY" \
"text-sky-300">-d '{ "visaid": 1, "intersted_country": 235 }'Sample response
{
"status": true,
"visaservice": {
"amount": "17390.00",
"service_amount": "10000.00"
}
}Need help integrating?
Our team helps Scale customers go live in days, not weeks.