langchain-orizn
LangChain tools for the Orizn Visa API — visa requirements for 199 passports x 202 destinations, in 15 languages, from official government sources.
Run it in under 5 minutes
1. Get a free API key (10 seconds, no credit card): → https://visa.orizn.app/visa-api
Free tier: 100 requests/month, all 15 languages included. (5 requests until you confirm your email — click the link in the confirmation mail.)
2. Install
pip install langchain-orizn
export ORIZN_API_KEY=orizn_visa_...
3. Run
# quickstart.py
from langchain_orizn import OriznQuickVisaCheckTool, OriznVisaCheckTool
quick = OriznQuickVisaCheckTool() # reads ORIZN_API_KEY
print(quick.invoke({"passport": "FRA", "destination": "JPN"}))
full = OriznVisaCheckTool()
print(full.invoke({"passport": "FRA", "destination": "JPN", "lang": "fr"}))
Expected output — the first call prints a compact JSON object:
{"passport": "FRA", "destination": "JPN", "requirement": "visa_free",
"visa_free_days": 90, "visa_required": false, "last_verified": "2026-05-10", "...": "..."}
and the second prints the full record (data.description, data.documents_required,
data.process, data.cost, data.processing_time, …) in French.
Both tools require the API key. Without it they raise an error naming
https://visa.orizn.app/visa-api, so an agent can report what is missing.
Use with a LangChain agent
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
from langchain_orizn import OriznQuickVisaCheckTool, OriznVisaCheckTool
tools = [OriznQuickVisaCheckTool(), OriznVisaCheckTool()]
agent = create_react_agent(ChatOpenAI(model="gpt-4o-mini"), tools)
result = agent.invoke(
{"messages": [("user", "Do I need a visa to go from Brazil to Japan?")]}
)
print(result["messages"][-1].content)
Available tools
| Tool | Use it when | Endpoint |
|---|---|---|
OriznQuickVisaCheckTool |
"Do I need a visa, and for how long?" | /api/v1/visa/check |
OriznVisaCheckTool |
documents, fees, processing time, process steps, tips | /api/v1/visa |
Both read ORIZN_API_KEY, or take the key explicitly:
OriznVisaCheckTool(api_key="orizn_visa_...").
Languages
en, fr, es, pt, de, it, ja, ko, zh, ru, ar, hi, th, vi, tl — available on every plan,
including free, via the lang argument of OriznVisaCheckTool.
Plans
| Plan | Price | Requests/month |
|---|---|---|
| Free | 0 | 100 |
| Starter | $49 | 30,000 |
| Pro | $199 | 250,000 |
| Business | $699 | 1,000,000 |
Changelog
0.2.0 — breaking. OriznQuickVisaCheckTool now requires an API key. The /api/v1/visa/check
endpoint stopped serving keyless requests, so the old "no API key needed" path returned 401 on
every call. Pass api_key= or set ORIZN_API_KEY. Errors now carry the URL where a key is
obtained, and _run returns real JSON instead of a Python repr.
0.1.1 — initial release.
Links
Feedback
Building a travel agent or visa tool? → api@orizn.app
License
MIT
Metadata
Release files for langchain-orizn 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| langchain_orizn-0.2.1.tar.gz | 6.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| langchain_orizn-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.3 kB
Release files / langchain_orizn-0.2.1.tar.gz
| Download URL | langchain_orizn-0.2.1.tar.gz |
|---|---|
| Size | 6.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c9adb2034187b393ea72e960c204512ee0ca2da2097fcdfbc61f98afc95119d7
|
|
BLAKE2b-256 checksum How to use checksums |
2a28c3e9f5c19aef8a6ade4ae21effbeede8ed923e8e72d5b1ef378b7a1567dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.13
|
Release files / langchain_orizn-0.2.1-py3-none-any.whl
| Download URL | langchain_orizn-0.2.1-py3-none-any.whl |
|---|---|
| Size | 6.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ade286348827676a11128ec8f371d144e20a1d7953320facbf4641a54ce42c25
|
|
BLAKE2b-256 checksum How to use checksums |
b7058de80932f65ef7287fba838bb0fc764fdcbf216a80ecf41715120e2fd705
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.13
|