mrfirdauss commited on
Commit
04f322e
·
1 Parent(s): 516c523

fix: run headful

Browse files
README.md CHANGED
@@ -8,3 +8,11 @@ pinned: false
8
  ---
9
 
10
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
8
  ---
9
 
10
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
11
+
12
+ ---
13
+
14
+
15
+ ### HOW TO RUN VISA CHECKER
16
+ ```bash
17
+ python -m app.util.visa_availability_scraper_playwright
18
+ ```
app/util/visa_availability_scraper_playwright.py CHANGED
@@ -1,6 +1,7 @@
1
  import asyncio
2
- import json
3
  from typing import Dict, Optional, List
 
4
  from playwright.async_api import async_playwright
5
 
6
  class PassportIndexVisaScraper:
@@ -23,7 +24,7 @@ class PassportIndexVisaScraper:
23
  self.playwright = await async_playwright().start()
24
 
25
  self.browser = await self.playwright.chromium.launch(
26
- headless=True, # Using headless mode
27
  args=[
28
  '--disable-blink-features=AutomationControlled',
29
  '--disable-dev-shm-usage',
@@ -183,6 +184,7 @@ class PassportIndexVisaScraper:
183
  print(f"✅ Got result: {result}")
184
  return result
185
  elif result and 'error' in result:
 
186
  print(f"❌ API Error: {result['error']}")
187
  return None
188
  else:
@@ -206,7 +208,7 @@ class PassportIndexVisaScraper:
206
 
207
  # Find and click the country in the list
208
  passport_selector = f'.vch-passports .s-div[data-ccode="{passport_country.lower()}"]'
209
- await self.page.wait_for_selector(passport_selector, timeout=5000)
210
  await self.page.click(passport_selector)
211
  await self.page.wait_for_timeout(500)
212
 
@@ -244,7 +246,45 @@ class PassportIndexVisaScraper:
244
  if self.debug:
245
  print(f"❌ Interactive method failed: {e}")
246
  return None
247
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
248
  async def check_multiple_destinations(self, passport_country: str, destinations: List[str], delay: float = 2.0) -> Dict:
249
  """
250
  Check visa requirements for multiple destinations
@@ -297,45 +337,46 @@ class PassportIndexVisaScraper:
297
 
298
 
299
  async def main():
300
- """Main function to demonstrate usage"""
301
  print("="*60)
302
  print(" Passport Index Visa Checker (Playwright)")
303
  print("="*60)
304
 
305
  async with PassportIndexVisaScraper(debug=True) as scraper:
306
- # Initialize session
307
  if not await scraper.initialize_session():
308
  print("❌ Failed to initialize session")
309
  return
310
-
311
- print("\n" + "="*60)
312
- print(" Testing visa requirements...")
313
- print("="*60)
314
-
315
- # Test single visa requirement
316
- print("\n📍 Single visa check: US → GB")
317
- print("-" * 40)
318
- result = await scraper.check_visa_requirement_browser('us', 'gb')
319
- if result:
320
- print(f"Result: {scraper.format_result(result)}")
321
- else:
322
- print("Trying interactive method...")
323
- result = await scraper.check_visa_interactive('us', 'gb')
324
- if result:
325
- print(f"Result: {scraper.format_result(result)}")
326
-
327
- # Test multiple destinations
328
- print("\n📍 Multiple destinations for US passport:")
329
- print("-" * 40)
330
- destinations = ['ca', 'mx', 'jp', 'au'] # Canada, Mexico, Japan, Australia
331
- results = await scraper.check_multiple_destinations('us', destinations, delay=2.0)
332
-
333
- print("\n📊 Summary:")
334
  for dest, result in results.items():
335
  if result:
336
- print(f" ✅ {scraper.format_result(result)}")
 
 
 
 
 
 
 
337
  else:
338
  print(f" ❌ US → {dest.upper()}: Failed")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
339
 
340
  if __name__ == "__main__":
341
  asyncio.run(main())
 
1
  import asyncio
2
+ import pandas as pd
3
  from typing import Dict, Optional, List
4
+ from constant import COUNTRY_CODES, REVERSE_COUNTRY_CODES
5
  from playwright.async_api import async_playwright
6
 
7
  class PassportIndexVisaScraper:
 
24
  self.playwright = await async_playwright().start()
25
 
26
  self.browser = await self.playwright.chromium.launch(
27
+ headless=False, # Using headless mode
28
  args=[
29
  '--disable-blink-features=AutomationControlled',
30
  '--disable-dev-shm-usage',
 
184
  print(f"✅ Got result: {result}")
185
  return result
186
  elif result and 'error' in result:
187
+ print(result)
188
  print(f"❌ API Error: {result['error']}")
189
  return None
190
  else:
 
208
 
209
  # Find and click the country in the list
210
  passport_selector = f'.vch-passports .s-div[data-ccode="{passport_country.lower()}"]'
211
+ await self.page.wait_for_selector(passport_selector, timeout=3000)
212
  await self.page.click(passport_selector)
213
  await self.page.wait_for_timeout(500)
214
 
 
246
  if self.debug:
247
  print(f"❌ Interactive method failed: {e}")
248
  return None
249
+ async def check_multiple_source(self, passport_countries: List[str], destination: str, delay: float = 2.0) -> Dict:
250
+ """
251
+ Check visa requirements for multiple passport countries to a single destination.
252
+
253
+ Args:
254
+ passport_countries: List of two-letter country codes for passports.
255
+ destination: Two-letter country code for the destination.
256
+ delay: Delay between requests in seconds.
257
+
258
+ Returns:
259
+ Dictionary mapping passport country codes to visa information.
260
+ """
261
+ results = {}
262
+
263
+ for i, passport in enumerate(passport_countries, 1):
264
+ print(f"\n[{i}/{len(passport_countries)}] Checking {passport.upper()} → {destination.upper()}...")
265
+
266
+ # Try API method first
267
+ result = await self.check_visa_requirement_browser(passport, destination)
268
+
269
+ # If API fails, try interactive method
270
+ if not result:
271
+ result = await self.check_visa_interactive(passport, destination)
272
+
273
+ if result:
274
+ results[passport] = result
275
+ text = result.get('text', 'No text available')
276
+ print(f" ✅ Result: {text}")
277
+ else:
278
+ results[passport] = None
279
+ print(f" ❌ Failed to get result")
280
+
281
+ # Rate limiting to avoid blocking
282
+ if i < len(passport_countries):
283
+ print(f" ⏳ Waiting {delay} seconds...")
284
+ await asyncio.sleep(delay)
285
+
286
+ return results
287
+
288
  async def check_multiple_destinations(self, passport_country: str, destinations: List[str], delay: float = 2.0) -> Dict:
289
  """
290
  Check visa requirements for multiple destinations
 
337
 
338
 
339
  async def main():
 
340
  print("="*60)
341
  print(" Passport Index Visa Checker (Playwright)")
342
  print("="*60)
343
 
344
  async with PassportIndexVisaScraper(debug=True) as scraper:
345
+ l = []
346
  if not await scraper.initialize_session():
347
  print("❌ Failed to initialize session")
348
  return
349
+ destinations = list(COUNTRY_CODES.values())
350
+ results = await scraper.check_multiple_destinations('id', destinations, delay=2.0)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
351
  for dest, result in results.items():
352
  if result:
353
+ dic = {}
354
+ dic['text'] = result.get('text', 'N/A')
355
+ dic['days'] = result.get('days', 'N/A')
356
+ dic['pass'] = result.get('pass', 'N/A')
357
+ dic['dest'] = REVERSE_COUNTRY_CODES[dest]
358
+ dic['source'] = 'Indonesia'
359
+ l.append(dic)
360
+ print(f"ID -> {dest.upper()}: {result.get('text', 'N/A')}")
361
  else:
362
  print(f" ❌ US → {dest.upper()}: Failed")
363
+ results = await scraper.check_multiple_source(destinations, 'id', delay=2.0)
364
+ for passport, result in results.items():
365
+ if result:
366
+ dic = {}
367
+ dic['text'] = result.get('text', 'N/A')
368
+ dic['days'] = result.get('days', 'N/A')
369
+ dic['pass'] = result.get('pass', 'N/A')
370
+ dic['dest'] = REVERSE_COUNTRY_CODES['id']
371
+ dic['source'] = REVERSE_COUNTRY_CODES[passport]
372
+ l.append(dic)
373
+ print(f"{passport.upper()} -> ID: {result.get('text', 'N/A')}")
374
+ else:
375
+ print(f" ❌ {passport.upper()} → ID: Failed")
376
+
377
+ # save to csv
378
+ df = pd.DataFrame(l)
379
+ df.to_csv('visa_avaibility_playwright.csv', index=False)
380
 
381
  if __name__ == "__main__":
382
  asyncio.run(main())
constant.py CHANGED
@@ -205,4 +205,207 @@ COUNTRY_CODES = {
205
  'Yemen': 'ye',
206
  'Zambia': 'zm',
207
  'Zimbabwe': 'zw'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
  }
 
205
  'Yemen': 'ye',
206
  'Zambia': 'zm',
207
  'Zimbabwe': 'zw'
208
+ }
209
+
210
+
211
+ REVERSE_COUNTRY_CODES = {
212
+ "af": "Afghanistan",
213
+ "al": "Albania",
214
+ "dz": "Algeria",
215
+ "ad": "Andorra",
216
+ "ao": "Angola",
217
+ "ag": "Antigua and Barbuda",
218
+ "ar": "Argentina",
219
+ "am": "Armenia",
220
+ "au": "Australia",
221
+ "at": "Austria",
222
+ "az": "Azerbaijan",
223
+ "bs": "Bahamas",
224
+ "bh": "Bahrain",
225
+ "bd": "Bangladesh",
226
+ "bb": "Barbados",
227
+ "by": "Belarus",
228
+ "be": "Belgium",
229
+ "bz": "Belize",
230
+ "bj": "Benin",
231
+ "bt": "Bhutan",
232
+ "bo": "Bolivia",
233
+ "ba": "Bosnia and Herzegovina",
234
+ "bw": "Botswana",
235
+ "br": "Brazil",
236
+ "bn": "Brunei",
237
+ "bg": "Bulgaria",
238
+ "bf": "Burkina Faso",
239
+ "bi": "Burundi",
240
+ "kh": "Cambodia",
241
+ "cm": "Cameroon",
242
+ "ca": "Canada",
243
+ "cv": "Cape Verde",
244
+ "cf": "Central African Republic",
245
+ "td": "Chad",
246
+ "cl": "Chile",
247
+ "cn": "China",
248
+ "co": "Colombia",
249
+ "km": "Comoros",
250
+ "cg": "Congo",
251
+ "cd": "Congo (Dem. Rep.)",
252
+ "cr": "Costa Rica",
253
+ "ci": "Cote d'Ivoire",
254
+ "hr": "Croatia",
255
+ "cu": "Cuba",
256
+ "cy": "Cyprus",
257
+ "cz": "Czech Republic",
258
+ "dk": "Denmark",
259
+ "dj": "Djibouti",
260
+ "dm": "Dominica",
261
+ "do": "Dominican Republic",
262
+ "ec": "Ecuador",
263
+ "eg": "Egypt",
264
+ "sv": "El Salvador",
265
+ "gq": "Equatorial Guinea",
266
+ "er": "Eritrea",
267
+ "ee": "Estonia",
268
+ "sz": "Swaziland",
269
+ "et": "Ethiopia",
270
+ "fj": "Fiji",
271
+ "fi": "Finland",
272
+ "fr": "France",
273
+ "ga": "Gabon",
274
+ "gm": "Gambia",
275
+ "ge": "Georgia",
276
+ "de": "Germany",
277
+ "gh": "Ghana",
278
+ "gr": "Greece",
279
+ "gd": "Grenada",
280
+ "gt": "Guatemala",
281
+ "gn": "Guinea",
282
+ "gw": "Guinea-Bissau",
283
+ "gy": "Guyana",
284
+ "ht": "Haiti",
285
+ "hn": "Honduras",
286
+ "hk": "Hong Kong",
287
+ "hu": "Hungary",
288
+ "is": "Iceland",
289
+ "in": "India",
290
+ "id": "Indonesia",
291
+ "ir": "Iran",
292
+ "iq": "Iraq",
293
+ "ie": "Ireland",
294
+ "il": "Israel",
295
+ "it": "Italy",
296
+ "jm": "Jamaica",
297
+ "jp": "Japan",
298
+ "jo": "Jordan",
299
+ "kz": "Kazakhstan",
300
+ "ke": "Kenya",
301
+ "ki": "Kiribati",
302
+ "xk": "Kosovo",
303
+ "kw": "Kuwait",
304
+ "kg": "Kyrgyzstan",
305
+ "la": "Laos",
306
+ "lv": "Latvia",
307
+ "lb": "Lebanon",
308
+ "ls": "Lesotho",
309
+ "lr": "Liberia",
310
+ "ly": "Libya",
311
+ "li": "Liechtenstein",
312
+ "lt": "Lithuania",
313
+ "lu": "Luxembourg",
314
+ "mo": "Macao",
315
+ "mk": "North Macedonia",
316
+ "mg": "Madagascar",
317
+ "mw": "Malawi",
318
+ "my": "Malaysia",
319
+ "mv": "Maldives",
320
+ "ml": "Mali",
321
+ "mt": "Malta",
322
+ "mh": "Marshall Islands",
323
+ "mr": "Mauritania",
324
+ "mu": "Mauritius",
325
+ "mx": "Mexico",
326
+ "fm": "Micronesia",
327
+ "md": "Moldova",
328
+ "mc": "Monaco",
329
+ "mn": "Mongolia",
330
+ "me": "Montenegro",
331
+ "ma": "Morocco",
332
+ "mz": "Mozambique",
333
+ "mm": "Myanmar",
334
+ "na": "Namibia",
335
+ "nr": "Nauru",
336
+ "np": "Nepal",
337
+ "nl": "Netherlands",
338
+ "nz": "New Zealand",
339
+ "ni": "Nicaragua",
340
+ "ne": "Niger",
341
+ "ng": "Nigeria",
342
+ "kp": "North Korea",
343
+ "no": "Norway",
344
+ "om": "Oman",
345
+ "pk": "Pakistan",
346
+ "pw": "Palau",
347
+ "ps": "Palestinian Territories",
348
+ "pa": "Panama",
349
+ "pg": "Papua New Guinea",
350
+ "py": "Paraguay",
351
+ "pe": "Peru",
352
+ "ph": "Philippines",
353
+ "pl": "Poland",
354
+ "pt": "Portugal",
355
+ "qa": "Qatar",
356
+ "ro": "Romania",
357
+ "ru": "Russian Federation",
358
+ "rw": "Rwanda",
359
+ "kn": "Saint Kitts and Nevis",
360
+ "lc": "Saint Lucia",
361
+ "vc": "St. Vincent and the Grenadines",
362
+ "ws": "Samoa",
363
+ "sm": "San Marino",
364
+ "st": "Sao Tome and Principe",
365
+ "sa": "Saudi Arabia",
366
+ "sn": "Senegal",
367
+ "rs": "Serbia",
368
+ "sc": "Seychelles",
369
+ "sl": "Sierra Leone",
370
+ "sg": "Singapore",
371
+ "sk": "Slovakia",
372
+ "si": "Slovenia",
373
+ "sb": "Solomon Islands",
374
+ "so": "Somalia",
375
+ "za": "South Africa",
376
+ "kr": "South Korea",
377
+ "ss": "South Sudan",
378
+ "es": "Spain",
379
+ "lk": "Sri Lanka",
380
+ "sd": "Sudan",
381
+ "sr": "Suriname",
382
+ "se": "Sweden",
383
+ "ch": "Switzerland",
384
+ "sy": "Syria",
385
+ "tw": "Taiwan",
386
+ "tj": "Tajikistan",
387
+ "tz": "Tanzania",
388
+ "th": "Thailand",
389
+ "tl": "Timor-Leste",
390
+ "tg": "Togo",
391
+ "to": "Tonga",
392
+ "tt": "Trinidad and Tobago",
393
+ "tn": "Tunisia",
394
+ "tr": "Türkiye",
395
+ "tm": "Turkmenistan",
396
+ "tv": "Tuvalu",
397
+ "ug": "Uganda",
398
+ "ua": "Ukraine",
399
+ "ae": "United Arab Emirates",
400
+ "gb": "United Kingdom",
401
+ "us": "United States of America",
402
+ "uy": "Uruguay",
403
+ "uz": "Uzbekistan",
404
+ "vu": "Vanuatu",
405
+ "va": "Vatican City",
406
+ "ve": "Venezuela",
407
+ "vn": "Vietnam",
408
+ "ye": "Yemen",
409
+ "zm": "Zambia",
410
+ "zw": "Zimbabwe"
411
  }
server.py CHANGED
@@ -55,27 +55,27 @@ def create_app() -> Flask:
55
  traceback.print_exc()
56
  return jsonify({"error": str(e)}), 500
57
 
58
- @app.route('/visa-checker', methods=['POST'])
59
- async def visa_checker():
60
- raw = request.get_data(as_text=True)
61
- body = json.loads(raw)
62
- source = body.get('source')
63
- logging.info(f"Received visa check request: {body}")
64
- destination = body.get('destination')
65
- async with PassportIndexVisaScraper(debug=True) as scraper:
66
- if not await scraper.initialize_session():
67
- return jsonify({"error": "Failed to initialize session"}), 500
68
- result = await scraper.check_visa_requirement_browser(source, destination)
69
 
70
- if result:
71
- return jsonify(result), 200
72
- else:
73
- result = await scraper.check_visa_interactive(source, destination)
74
- if result:
75
- return jsonify(result), 200
76
- else:
77
- return jsonify({"error": "Failed to retrieve visa information"}), 404
78
- return jsonify({"error": "Unexpected error"}), 500
79
 
80
  @app.route('/', methods=['GET'])
81
  def hello_world():
 
55
  traceback.print_exc()
56
  return jsonify({"error": str(e)}), 500
57
 
58
+ # @app.route('/visa-checker', methods=['POST'])
59
+ # async def visa_checker():
60
+ # raw = request.get_data(as_text=True)
61
+ # body = json.loads(raw)
62
+ # source = body.get('source')
63
+ # logging.info(f"Received visa check request: {body}")
64
+ # destination = body.get('destination')
65
+ # async with PassportIndexVisaScraper(debug=True) as scraper:
66
+ # if not await scraper.initialize_session():
67
+ # return jsonify({"error": "Failed to initialize session"}), 500
68
+ # result = await scraper.check_visa_requirement_browser(source, destination)
69
 
70
+ # if result:
71
+ # return jsonify(result), 200
72
+ # else:
73
+ # result = await scraper.check_visa_interactive(source, destination)
74
+ # if result:
75
+ # return jsonify(result), 200
76
+ # else:
77
+ # return jsonify({"error": "Failed to retrieve visa information"}), 404
78
+ # return jsonify({"error": "Unexpected error"}), 500
79
 
80
  @app.route('/', methods=['GET'])
81
  def hello_world():
visa_avaibility_playwright_20251015.csv ADDED
@@ -0,0 +1,397 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ text,days,pass,dest,source
2
+ visa required,N/A,ID,Afghanistan,Indonesia
3
+ visa-free,N/A,ID,Albania,Indonesia
4
+ visa required,N/A,ID,Algeria,Indonesia
5
+ visa required,N/A,ID,Andorra,Indonesia
6
+ visa-free / 30 days,N/A,ID,Angola,Indonesia
7
+ eVisa,N/A,ID,Antigua and Barbuda,Indonesia
8
+ visa required,N/A,ID,Argentina,Indonesia
9
+ eVisa · visa on arrival / 120 days,N/A,ID,Armenia,Indonesia
10
+ eVisa,N/A,ID,Australia,Indonesia
11
+ visa required,N/A,ID,Austria,Indonesia
12
+ eVisa · visa on arrival / 30 days,N/A,ID,Azerbaijan,Indonesia
13
+ eVisa,N/A,ID,Bahamas,Indonesia
14
+ eVisa,N/A,ID,Bahrain,Indonesia
15
+ visa on arrival / 30 days,N/A,ID,Bangladesh,Indonesia
16
+ visa-free / 90 days,N/A,ID,Barbados,Indonesia
17
+ visa-free / 30 days,N/A,ID,Belarus,Indonesia
18
+ visa required,N/A,ID,Belgium,Indonesia
19
+ visa required,N/A,ID,Belize,Indonesia
20
+ eVisa,N/A,ID,Benin,Indonesia
21
+ eVisa,N/A,ID,Bhutan,Indonesia
22
+ eVisa,N/A,ID,Bolivia,Indonesia
23
+ visa required,N/A,ID,Bosnia and Herzegovina,Indonesia
24
+ eVisa,N/A,ID,Botswana,Indonesia
25
+ visa-free / 30 days,N/A,ID,Brazil,Indonesia
26
+ visa-free / 14 days,N/A,ID,Brunei,Indonesia
27
+ visa required,N/A,ID,Bulgaria,Indonesia
28
+ eVisa,N/A,ID,Burkina Faso,Indonesia
29
+ visa on arrival / 30 days,N/A,ID,Burundi,Indonesia
30
+ visa-free / 30 days,N/A,ID,Cambodia,Indonesia
31
+ eVisa,N/A,ID,Cameroon,Indonesia
32
+ visa required,N/A,ID,Canada,Indonesia
33
+ visa on arrival (EASE),N/A,ID,Cape Verde,Indonesia
34
+ visa required,N/A,ID,Central African Republic,Indonesia
35
+ eVisa,N/A,ID,Chad,Indonesia
36
+ visa-free / 90 days,N/A,ID,Chile,Indonesia
37
+ visa required,N/A,ID,China,Indonesia
38
+ visa-free / 90 days,N/A,ID,Colombia,Indonesia
39
+ visa on arrival / 45 days,N/A,ID,Comoros,Indonesia
40
+ visa required,N/A,ID,Congo,Indonesia
41
+ eVisa / 90 days,N/A,ID,Congo (Dem. Rep.),Indonesia
42
+ visa required,N/A,ID,Costa Rica,Indonesia
43
+ pre-enrollment / 90 days,N/A,ID,Cote d'Ivoire,Indonesia
44
+ visa required,N/A,ID,Croatia,Indonesia
45
+ eVisa / 90 days,N/A,ID,Cuba,Indonesia
46
+ visa required,N/A,ID,Cyprus,Indonesia
47
+ visa required,N/A,ID,Czech Republic,Indonesia
48
+ visa required,N/A,ID,Denmark,Indonesia
49
+ eVisa · visa on arrival / 90 days,N/A,ID,Djibouti,Indonesia
50
+ visa-free / 21 days,N/A,ID,Dominica,Indonesia
51
+ visa required,N/A,ID,Dominican Republic,Indonesia
52
+ visa-free / 90 days,N/A,ID,Ecuador,Indonesia
53
+ visa required,N/A,ID,Egypt,Indonesia
54
+ eVisa,N/A,ID,El Salvador,Indonesia
55
+ eVisa,N/A,ID,Equatorial Guinea,Indonesia
56
+ visa required,N/A,ID,Eritrea,Indonesia
57
+ visa required,N/A,ID,Estonia,Indonesia
58
+ visa required,N/A,ID,Swaziland,Indonesia
59
+ eVisa · visa on arrival / 90 days,N/A,ID,Ethiopia,Indonesia
60
+ visa-free / 120 days,N/A,ID,Fiji,Indonesia
61
+ visa required,N/A,ID,Finland,Indonesia
62
+ visa required,N/A,ID,France,Indonesia
63
+ eVisa / 90 days,N/A,ID,Gabon,Indonesia
64
+ visa-free / 90 days,N/A,ID,Gambia,Indonesia
65
+ eVisa,N/A,ID,Georgia,Indonesia
66
+ visa required,N/A,ID,Germany,Indonesia
67
+ visa required,N/A,ID,Ghana,Indonesia
68
+ visa required,N/A,ID,Greece,Indonesia
69
+ visa required,N/A,ID,Grenada,Indonesia
70
+ visa required,N/A,ID,Guatemala,Indonesia
71
+ eVisa / 90 days,N/A,ID,Guinea,Indonesia
72
+ visa on arrival / 90 days,N/A,ID,Guinea-Bissau,Indonesia
73
+ visa-free / 30 days,N/A,ID,Guyana,Indonesia
74
+ visa-free / 90 days,N/A,ID,Haiti,Indonesia
75
+ visa required,N/A,ID,Honduras,Indonesia
76
+ visa-free / 30 days,N/A,ID,Hong Kong,Indonesia
77
+ visa required,N/A,ID,Hungary,Indonesia
78
+ visa required,N/A,ID,Iceland,Indonesia
79
+ eVisa / 30 days,N/A,ID,India,Indonesia
80
+ visa-free / 15 days,N/A,ID,Iran,Indonesia
81
+ eVisa,N/A,ID,Iraq,Indonesia
82
+ visa required,N/A,ID,Ireland,Indonesia
83
+ eVisa,N/A,ID,Israel,Indonesia
84
+ visa required,N/A,ID,Italy,Indonesia
85
+ visa required,N/A,ID,Jamaica,Indonesia
86
+ visa waiver registration / 15 days,N/A,ID,Japan,Indonesia
87
+ eVisa · visa on arrival,N/A,ID,Jordan,Indonesia
88
+ visa-free / 30 days,N/A,ID,Kazakhstan,Indonesia
89
+ eTA / 90 days,N/A,ID,Kenya,Indonesia
90
+ visa-free / 90 days,N/A,ID,Kiribati,Indonesia
91
+ visa required,N/A,ID,Kosovo,Indonesia
92
+ visa required,N/A,ID,Kuwait,Indonesia
93
+ eVisa · visa on arrival / 30 days,N/A,ID,Kyrgyzstan,Indonesia
94
+ visa-free / 30 days,N/A,ID,Laos,Indonesia
95
+ visa required,N/A,ID,Latvia,Indonesia
96
+ visa required,N/A,ID,Lebanon,Indonesia
97
+ visa required,N/A,ID,Lesotho,Indonesia
98
+ eVisa,N/A,ID,Liberia,Indonesia
99
+ eVisa,N/A,ID,Libya,Indonesia
100
+ visa required,N/A,ID,Liechtenstein,Indonesia
101
+ visa required,N/A,ID,Lithuania,Indonesia
102
+ visa required,N/A,ID,Luxembourg,Indonesia
103
+ visa-free / 30 days,N/A,ID,Macao,Indonesia
104
+ visa required,N/A,ID,North Macedonia,Indonesia
105
+ eVisa · visa on arrival / 90 days,N/A,ID,Madagascar,Indonesia
106
+ eVisa · visa on arrival / 30 days,N/A,ID,Malawi,Indonesia
107
+ visa-free / 30 days,N/A,ID,Malaysia,Indonesia
108
+ visa on arrival / 30 days,N/A,ID,Maldives,Indonesia
109
+ visa-free / 30 days,N/A,ID,Mali,Indonesia
110
+ visa required,N/A,ID,Malta,Indonesia
111
+ visa on arrival / 90 days,N/A,ID,Marshall Islands,Indonesia
112
+ eVisa / 90 days,N/A,ID,Mauritania,Indonesia
113
+ visa on arrival / 60 days,N/A,ID,Mauritius,Indonesia
114
+ visa required,N/A,ID,Mexico,Indonesia
115
+ visa-free / 30 days,N/A,ID,Micronesia,Indonesia
116
+ eVisa,N/A,ID,Moldova,Indonesia
117
+ visa required,N/A,ID,Monaco,Indonesia
118
+ eVisa,N/A,ID,Mongolia,Indonesia
119
+ visa required,N/A,ID,Montenegro,Indonesia
120
+ visa-free / 90 days,N/A,ID,Morocco,Indonesia
121
+ eVisa · visa on arrival / 30 days,N/A,ID,Mozambique,Indonesia
122
+ visa-free / 14 days,N/A,ID,Myanmar,Indonesia
123
+ visa-free / 30 days,N/A,ID,Namibia,Indonesia
124
+ visa required,N/A,ID,Nauru,Indonesia
125
+ eVisa · visa on arrival / 150 days,N/A,ID,Nepal,Indonesia
126
+ visa required,N/A,ID,Netherlands,Indonesia
127
+ visa required,N/A,ID,New Zealand,Indonesia
128
+ visa on arrival / 30 days,N/A,ID,Nicaragua,Indonesia
129
+ visa required,N/A,ID,Niger,Indonesia
130
+ eVisa / 90 days,N/A,ID,Nigeria,Indonesia
131
+ visa required,N/A,ID,North Korea,Indonesia
132
+ visa required,N/A,ID,Norway,Indonesia
133
+ eVisa · visa on arrival / 30 days,N/A,ID,Oman,Indonesia
134
+ eVisa / 30 days,N/A,ID,Pakistan,Indonesia
135
+ visa on arrival / 30 days,N/A,ID,Palau,Indonesia
136
+ visa-free,N/A,ID,Palestinian Territories,Indonesia
137
+ visa required,N/A,ID,Panama,Indonesia
138
+ eVisitors / 60 days,N/A,ID,Papua New Guinea,Indonesia
139
+ visa required,N/A,ID,Paraguay,Indonesia
140
+ visa-free / 180 days,N/A,ID,Peru,Indonesia
141
+ visa-free / 30 days,N/A,ID,Philippines,Indonesia
142
+ visa required,N/A,ID,Poland,Indonesia
143
+ visa required,N/A,ID,Portugal,Indonesia
144
+ free visa on arrival / 30 days,N/A,ID,Qatar,Indonesia
145
+ visa required,N/A,ID,Romania,Indonesia
146
+ eVisa / 30 days,N/A,ID,Russian Federation,Indonesia
147
+ visa-free / 90 days,N/A,ID,Rwanda,Indonesia
148
+ eTA / 90 days,N/A,ID,Saint Kitts and Nevis,Indonesia
149
+ visa required,N/A,ID,Saint Lucia,Indonesia
150
+ visa-free / 90 days,N/A,ID,St. Vincent and the Grenadines,Indonesia
151
+ visa on arrival / 90 days,N/A,ID,Samoa,Indonesia
152
+ visa required,N/A,ID,San Marino,Indonesia
153
+ eVisa,N/A,ID,Sao Tome and Principe,Indonesia
154
+ visa required,N/A,ID,Saudi Arabia,Indonesia
155
+ visa required,N/A,ID,Senegal,Indonesia
156
+ visa-free / 30 days,N/A,ID,Serbia,Indonesia
157
+ tourist registration / 90 days,N/A,ID,Seychelles,Indonesia
158
+ eVisa · visa on arrival / 30 days,N/A,ID,Sierra Leone,Indonesia
159
+ visa-free / 30 days,N/A,ID,Singapore,Indonesia
160
+ visa required,N/A,ID,Slovakia,Indonesia
161
+ visa required,N/A,ID,Slovenia,Indonesia
162
+ visa required,N/A,ID,Solomon Islands,Indonesia
163
+ eVisa,N/A,ID,Somalia,Indonesia
164
+ eVisa,N/A,ID,South Africa,Indonesia
165
+ eVisa,N/A,ID,South Korea,Indonesia
166
+ eVisa / 90 days,N/A,ID,South Sudan,Indonesia
167
+ visa required,N/A,ID,Spain,Indonesia
168
+ eVisa · visa on arrival / 30 days,N/A,ID,Sri Lanka,Indonesia
169
+ visa required,N/A,ID,Sudan,Indonesia
170
+ tourist card / 90 days,N/A,ID,Suriname,Indonesia
171
+ visa required,N/A,ID,Sweden,Indonesia
172
+ visa required,N/A,ID,Switzerland,Indonesia
173
+ eVisa,N/A,ID,Syria,Indonesia
174
+ visa required,N/A,ID,Taiwan,Indonesia
175
+ visa-free / 30 days,N/A,ID,Tajikistan,Indonesia
176
+ eVisa · visa on arrival,N/A,ID,Tanzania,Indonesia
177
+ visa-free / 60 days,N/A,ID,Thailand,Indonesia
178
+ visa-free / 30 days,N/A,ID,Timor-Leste,Indonesia
179
+ eVisa / 15 days,N/A,ID,Togo,Indonesia
180
+ visa required,N/A,ID,Tonga,Indonesia
181
+ visa required,N/A,ID,Trinidad and Tobago,Indonesia
182
+ visa-free / 90 days,N/A,ID,Tunisia,Indonesia
183
+ visa-free / 30 days,N/A,ID,Türkiye,Indonesia
184
+ visa required,N/A,ID,Turkmenistan,Indonesia
185
+ visa on arrival / 30 days,N/A,ID,Tuvalu,Indonesia
186
+ eVisa,N/A,ID,Uganda,Indonesia
187
+ eVisa,N/A,ID,Ukraine,Indonesia
188
+ eVisa,N/A,ID,United Arab Emirates,Indonesia
189
+ visa required,N/A,ID,United Kingdom,Indonesia
190
+ visa required,N/A,ID,United States of America,Indonesia
191
+ visa required,N/A,ID,Uruguay,Indonesia
192
+ visa-free / 30 days,N/A,ID,Uzbekistan,Indonesia
193
+ eVisa,N/A,ID,Vanuatu,Indonesia
194
+ visa required,N/A,ID,Vatican City,Indonesia
195
+ visa-free / 90 days,N/A,ID,Venezuela,Indonesia
196
+ visa-free / 30 days,N/A,ID,Vietnam,Indonesia
197
+ visa required,N/A,ID,Yemen,Indonesia
198
+ eVisa,N/A,ID,Zambia,Indonesia
199
+ eVisa · visa on arrival / 90 days,N/A,ID,Zimbabwe,Indonesia
200
+ eVisa,N/A,AF,Indonesia,Afghanistan
201
+ eVisa · visa on arrival / 30 days,N/A,AL,Indonesia,Albania
202
+ eVisa,N/A,DZ,Indonesia,Algeria
203
+ eVisa · visa on arrival / 30 days,N/A,AD,Indonesia,Andorra
204
+ eVisa,N/A,AO,Indonesia,Angola
205
+ eVisa,N/A,AG,Indonesia,Antigua and Barbuda
206
+ eVisa · visa on arrival / 30 days,N/A,AR,Indonesia,Argentina
207
+ eVisa · visa on arrival / 30 days,N/A,AM,Indonesia,Armenia
208
+ eVisa · visa on arrival / 30 days,N/A,AU,Indonesia,Australia
209
+ eVisa · visa on arrival / 30 days,N/A,AT,Indonesia,Austria
210
+ eVisa · visa on arrival / 30 days,N/A,AZ,Indonesia,Azerbaijan
211
+ eVisa,N/A,BS,Indonesia,Bahamas
212
+ eVisa · visa on arrival / 30 days,N/A,BH,Indonesia,Bahrain
213
+ eVisa,N/A,BD,Indonesia,Bangladesh
214
+ eVisa,N/A,BB,Indonesia,Barbados
215
+ eVisa · visa on arrival / 30 days,N/A,BY,Indonesia,Belarus
216
+ eVisa · visa on arrival / 30 days,N/A,BE,Indonesia,Belgium
217
+ eVisa,N/A,BZ,Indonesia,Belize
218
+ eVisa,N/A,BJ,Indonesia,Benin
219
+ eVisa,N/A,BT,Indonesia,Bhutan
220
+ eVisa,N/A,BO,Indonesia,Bolivia
221
+ eVisa · visa on arrival / 30 days,N/A,BA,Indonesia,Bosnia and Herzegovina
222
+ eVisa,N/A,BW,Indonesia,Botswana
223
+ visa-free / 30 days,N/A,BR,Indonesia,Brazil
224
+ visa-free / 30 days,N/A,BN,Indonesia,Brunei
225
+ eVisa · visa on arrival / 30 days,N/A,BG,Indonesia,Bulgaria
226
+ eVisa,N/A,BF,Indonesia,Burkina Faso
227
+ eVisa,N/A,BI,Indonesia,Burundi
228
+ visa-free / 30 days,N/A,KH,Indonesia,Cambodia
229
+ eVisa,N/A,CM,Indonesia,Cameroon
230
+ eVisa · visa on arrival / 30 days,N/A,CA,Indonesia,Canada
231
+ eVisa,N/A,CV,Indonesia,Cape Verde
232
+ eVisa,N/A,CF,Indonesia,Central African Republic
233
+ eVisa,N/A,TD,Indonesia,Chad
234
+ eVisa · visa on arrival / 30 days,N/A,CL,Indonesia,Chile
235
+ eVisa · visa on arrival / 30 days,N/A,CN,Indonesia,China
236
+ visa-free / 30 days,N/A,CO,Indonesia,Colombia
237
+ eVisa,N/A,KM,Indonesia,Comoros
238
+ eVisa,N/A,CG,Indonesia,Congo
239
+ eVisa,N/A,CD,Indonesia,Congo (Dem. Rep.)
240
+ eVisa,N/A,CR,Indonesia,Costa Rica
241
+ eVisa,N/A,CI,Indonesia,Cote d'Ivoire
242
+ eVisa · visa on arrival / 30 days,N/A,HR,Indonesia,Croatia
243
+ eVisa,N/A,CU,Indonesia,Cuba
244
+ eVisa · visa on arrival / 30 days,N/A,CY,Indonesia,Cyprus
245
+ eVisa · visa on arrival / 30 days,N/A,CZ,Indonesia,Czech Republic
246
+ eVisa · visa on arrival / 30 days,N/A,DK,Indonesia,Denmark
247
+ eVisa,N/A,DJ,Indonesia,Djibouti
248
+ eVisa,N/A,DM,Indonesia,Dominica
249
+ eVisa,N/A,DO,Indonesia,Dominican Republic
250
+ eVisa · visa on arrival / 30 days,N/A,EC,Indonesia,Ecuador
251
+ eVisa · visa on arrival / 30 days,N/A,EG,Indonesia,Egypt
252
+ eVisa,N/A,SV,Indonesia,El Salvador
253
+ eVisa,N/A,GQ,Indonesia,Equatorial Guinea
254
+ eVisa,N/A,ER,Indonesia,Eritrea
255
+ eVisa · visa on arrival / 30 days,N/A,EE,Indonesia,Estonia
256
+ eVisa,N/A,SZ,Indonesia,Swaziland
257
+ eVisa,N/A,ET,Indonesia,Ethiopia
258
+ eVisa,N/A,FJ,Indonesia,Fiji
259
+ eVisa · visa on arrival / 30 days,N/A,FI,Indonesia,Finland
260
+ eVisa · visa on arrival / 30 days,N/A,FR,Indonesia,France
261
+ eVisa,N/A,GA,Indonesia,Gabon
262
+ eVisa,N/A,GM,Indonesia,Gambia
263
+ eVisa,N/A,GE,Indonesia,Georgia
264
+ eVisa · visa on arrival / 30 days,N/A,DE,Indonesia,Germany
265
+ eVisa,N/A,GH,Indonesia,Ghana
266
+ eVisa · visa on arrival / 30 days,N/A,GR,Indonesia,Greece
267
+ eVisa,N/A,GD,Indonesia,Grenada
268
+ eVisa · visa on arrival / 30 days,N/A,GT,Indonesia,Guatemala
269
+ eVisa,N/A,GN,Indonesia,Guinea
270
+ eVisa,N/A,GW,Indonesia,Guinea-Bissau
271
+ eVisa,N/A,GY,Indonesia,Guyana
272
+ eVisa,N/A,HT,Indonesia,Haiti
273
+ eVisa,N/A,HN,Indonesia,Honduras
274
+ visa-free / 30 days,N/A,HK,Indonesia,Hong Kong
275
+ eVisa · visa on arrival / 30 days,N/A,HU,Indonesia,Hungary
276
+ eVisa · visa on arrival / 30 days,N/A,IS,Indonesia,Iceland
277
+ eVisa · visa on arrival / 30 days,N/A,IN,Indonesia,India
278
+ eVisa,N/A,IR,Indonesia,Iran
279
+ eVisa,N/A,IQ,Indonesia,Iraq
280
+ eVisa · visa on arrival / 30 days,N/A,IE,Indonesia,Ireland
281
+ eVisa,N/A,IL,Indonesia,Israel
282
+ eVisa · visa on arrival / 30 days,N/A,IT,Indonesia,Italy
283
+ eVisa,N/A,JM,Indonesia,Jamaica
284
+ eVisa · visa on arrival / 30 days,N/A,JP,Indonesia,Japan
285
+ eVisa · visa on arrival / 30 days,N/A,JO,Indonesia,Jordan
286
+ eVisa · visa on arrival / 30 days,N/A,KZ,Indonesia,Kazakhstan
287
+ eVisa · visa on arrival / 30 days,N/A,KE,Indonesia,Kenya
288
+ eVisa,N/A,KI,Indonesia,Kiribati
289
+ eVisa,N/A,XK,Indonesia,Kosovo
290
+ eVisa · visa on arrival / 30 days,N/A,KW,Indonesia,Kuwait
291
+ eVisa,N/A,KG,Indonesia,Kyrgyzstan
292
+ visa-free / 30 days,N/A,LA,Indonesia,Laos
293
+ eVisa · visa on arrival / 30 days,N/A,LV,Indonesia,Latvia
294
+ eVisa,N/A,LB,Indonesia,Lebanon
295
+ eVisa,N/A,LS,Indonesia,Lesotho
296
+ eVisa,N/A,LR,Indonesia,Liberia
297
+ eVisa,N/A,LY,Indonesia,Libya
298
+ eVisa · visa on arrival / 30 days,N/A,LI,Indonesia,Liechtenstein
299
+ eVisa · visa on arrival / 30 days,N/A,LT,Indonesia,Lithuania
300
+ eVisa · visa on arrival / 30 days,N/A,LU,Indonesia,Luxembourg
301
+ eVisa,N/A,MO,Indonesia,Macao
302
+ eVisa,N/A,MK,Indonesia,North Macedonia
303
+ eVisa,N/A,MG,Indonesia,Madagascar
304
+ eVisa,N/A,MW,Indonesia,Malawi
305
+ visa-free / 30 days,N/A,MY,Indonesia,Malaysia
306
+ eVisa · visa on arrival / 30 days,N/A,MV,Indonesia,Maldives
307
+ eVisa,N/A,ML,Indonesia,Mali
308
+ eVisa · visa on arrival / 30 days,N/A,MT,Indonesia,Malta
309
+ eVisa,N/A,MH,Indonesia,Marshall Islands
310
+ eVisa,N/A,MR,Indonesia,Mauritania
311
+ eVisa,N/A,MU,Indonesia,Mauritius
312
+ eVisa · visa on arrival / 30 days,N/A,MX,Indonesia,Mexico
313
+ eVisa,N/A,FM,Indonesia,Micronesia
314
+ eVisa,N/A,MD,Indonesia,Moldova
315
+ eVisa · visa on arrival / 30 days,N/A,MC,Indonesia,Monaco
316
+ eVisa · visa on arrival / 30 days,N/A,MN,Indonesia,Mongolia
317
+ eVisa,N/A,ME,Indonesia,Montenegro
318
+ eVisa · visa on arrival / 30 days,N/A,MA,Indonesia,Morocco
319
+ eVisa · visa on arrival / 30 days,N/A,MZ,Indonesia,Mozambique
320
+ visa-free / 30 days,N/A,MM,Indonesia,Myanmar
321
+ eVisa,N/A,NA,Indonesia,Namibia
322
+ eVisa,N/A,NR,Indonesia,Nauru
323
+ eVisa,N/A,NP,Indonesia,Nepal
324
+ eVisa · visa on arrival / 30 days,N/A,NL,Indonesia,Netherlands
325
+ eVisa · visa on arrival / 30 days,N/A,NZ,Indonesia,New Zealand
326
+ eVisa,N/A,NI,Indonesia,Nicaragua
327
+ eVisa,N/A,NE,Indonesia,Niger
328
+ eVisa,N/A,NG,Indonesia,Nigeria
329
+ eVisa,N/A,KP,Indonesia,North Korea
330
+ eVisa · visa on arrival / 30 days,N/A,NO,Indonesia,Norway
331
+ eVisa · visa on arrival / 30 days,N/A,OM,Indonesia,Oman
332
+ eVisa,N/A,PK,Indonesia,Pakistan
333
+ eVisa,N/A,PW,Indonesia,Palau
334
+ eVisa · visa on arrival / 30 days,N/A,PS,Indonesia,Palestinian Territories
335
+ eVisa,N/A,PA,Indonesia,Panama
336
+ eVisa · visa on arrival / 30 days,N/A,PG,Indonesia,Papua New Guinea
337
+ eVisa,N/A,PY,Indonesia,Paraguay
338
+ visa-free / 30 days,N/A,PE,Indonesia,Peru
339
+ visa-free / 30 days,N/A,PH,Indonesia,Philippines
340
+ eVisa · visa on arrival / 30 days,N/A,PL,Indonesia,Poland
341
+ eVisa · visa on arrival / 30 days,N/A,PT,Indonesia,Portugal
342
+ eVisa · visa on arrival / 30 days,N/A,QA,Indonesia,Qatar
343
+ eVisa · visa on arrival / 30 days,N/A,RO,Indonesia,Romania
344
+ eVisa · visa on arrival / 30 days,N/A,RU,Indonesia,Russian Federation
345
+ eVisa · visa on arrival / 30 days,N/A,RW,Indonesia,Rwanda
346
+ eVisa,N/A,KN,Indonesia,Saint Kitts and Nevis
347
+ eVisa,N/A,LC,Indonesia,Saint Lucia
348
+ eVisa,N/A,VC,Indonesia,St. Vincent and the Grenadines
349
+ eVisa,N/A,WS,Indonesia,Samoa
350
+ eVisa · visa on arrival / 30 days,N/A,SM,Indonesia,San Marino
351
+ eVisa,N/A,ST,Indonesia,Sao Tome and Principe
352
+ eVisa · visa on arrival / 30 days,N/A,SA,Indonesia,Saudi Arabia
353
+ eVisa,N/A,SN,Indonesia,Senegal
354
+ eVisa · visa on arrival / 30 days,N/A,RS,Indonesia,Serbia
355
+ eVisa · visa on arrival / 30 days,N/A,SC,Indonesia,Seychelles
356
+ eVisa,N/A,SL,Indonesia,Sierra Leone
357
+ visa-free / 30 days,N/A,SG,Indonesia,Singapore
358
+ eVisa · visa on arrival / 30 days,N/A,SK,Indonesia,Slovakia
359
+ eVisa · visa on arrival / 30 days,N/A,SI,Indonesia,Slovenia
360
+ eVisa,N/A,SB,Indonesia,Solomon Islands
361
+ eVisa,N/A,SO,Indonesia,Somalia
362
+ eVisa · visa on arrival / 30 days,N/A,ZA,Indonesia,South Africa
363
+ eVisa · visa on arrival / 30 days,N/A,KR,Indonesia,South Korea
364
+ eVisa,N/A,SS,Indonesia,South Sudan
365
+ eVisa · visa on arrival / 30 days,N/A,ES,Indonesia,Spain
366
+ eVisa,N/A,LK,Indonesia,Sri Lanka
367
+ eVisa,N/A,SD,Indonesia,Sudan
368
+ visa-free / 30 days,N/A,SR,Indonesia,Suriname
369
+ eVisa · visa on arrival / 30 days,N/A,SE,Indonesia,Sweden
370
+ eVisa · visa on arrival / 30 days,N/A,CH,Indonesia,Switzerland
371
+ eVisa,N/A,SY,Indonesia,Syria
372
+ eVisa · visa on arrival / 30 days,N/A,TW,Indonesia,Taiwan
373
+ eVisa,N/A,TJ,Indonesia,Tajikistan
374
+ eVisa · visa on arrival / 30 days,N/A,TZ,Indonesia,Tanzania
375
+ visa-free / 30 days,N/A,TH,Indonesia,Thailand
376
+ visa-free / 30 days,N/A,TL,Indonesia,Timor-Leste
377
+ eVisa,N/A,TG,Indonesia,Togo
378
+ eVisa,N/A,TO,Indonesia,Tonga
379
+ eVisa,N/A,TT,Indonesia,Trinidad and Tobago
380
+ eVisa · visa on arrival / 30 days,N/A,TN,Indonesia,Tunisia
381
+ visa-free / 30 days,N/A,TR,Indonesia,Türkiye
382
+ eVisa,N/A,TM,Indonesia,Turkmenistan
383
+ eVisa,N/A,TV,Indonesia,Tuvalu
384
+ eVisa,N/A,UG,Indonesia,Uganda
385
+ eVisa · visa on arrival / 30 days,N/A,UA,Indonesia,Ukraine
386
+ eVisa · visa on arrival / 30 days,N/A,AE,Indonesia,United Arab Emirates
387
+ eVisa · visa on arrival / 30 days,N/A,GB,Indonesia,United Kingdom
388
+ eVisa · visa on arrival / 30 days,N/A,US,Indonesia,United States of America
389
+ eVisa,N/A,UY,Indonesia,Uruguay
390
+ eVisa · visa on arrival / 30 days,N/A,UZ,Indonesia,Uzbekistan
391
+ eVisa,N/A,VU,Indonesia,Vanuatu
392
+ eVisa · visa on arrival / 30 days,N/A,VA,Indonesia,Vatican City
393
+ eVisa · visa on arrival / 30 days,N/A,VE,Indonesia,Venezuela
394
+ visa-free / 30 days,N/A,VN,Indonesia,Vietnam
395
+ eVisa,N/A,YE,Indonesia,Yemen
396
+ eVisa,N/A,ZM,Indonesia,Zambia
397
+ eVisa,N/A,ZW,Indonesia,Zimbabwe