Loading…
Loading…
Developers · AI assistants
Charta Visa exposes its visa-routing engine, pricing and application flow as an MCP server (Model Context Protocol, streamable HTTP) and a REST API. Any MCP client — Claude, ChatGPT, Cursor, Windsurf, Claude Code — can check whether a traveler needs an ESTA, a UK ETA, a Canada eTA or the DS-160 US visitor visa, quote the fees, and start an application. No API key is needed for that flow.
Charta Visa is a private visa-preparation service, not a government website. Government fees are always shown separately; for the DS-160 the $185 MRV fee is paid by the traveler directly to the U.S. government. Read our independence statement.
Server URL (streamable HTTP, no auth):
https://chartavisa.com/api/v1/agent/mcpSettings → Connectors → Add custom connector → paste the URL. No authentication.
Settings → Apps & Connectors → Developer mode → Create → MCP server URL above, auth "None".
claude mcp add --transport http charta-visa https://chartavisa.com/api/v1/agent/mcp{
"mcpServers": {
"charta-visa": { "url": "https://chartavisa.com/api/v1/agent/mcp" }
}
}Once connected, ask your assistant things like:
plan_my_trip prompt)prepare_us_interview prompt + our guides as MCP resources)Tool results lead with a plain-language answer and include ready-to-share links to the requirements page and the guided application — with promo code AGENT10 (10% off the Charta Visa service fee, never the government fee) prefilled.
check_eligibility — Check visa eligibilitylist_visa_products — List visa products and field schemasquote_pricing — Quote pricingget_payment_status — Get payment statusvalidate_application — Validate application data (dry run)get_application_status — Get application statusocr_passport — Read a passport photo (OCR)list_profiles — List traveler profilesget_capabilities — Get API capabilitiesget_self — Get current agent identitycreate_checkout_session — Create a Stripe checkout sessionsubmit_application — Submit a visa applicationpatch_application — Update a draft applicationcancel_application — Cancel an application(always confirms)refund_application — Request a refund(always confirms)upload_document — Upload a documentcreate_profile — Create a traveler profileregister_webhook — Register a webhookGuest mode covers eligibility → quote → checkout → submit with the traveler's email. Account tools (status, profiles, webhooks, refunds) need an API key: self-issue a sandbox key with POST https://chartavisa.com/api/v1/agent/keys; live keys appear in the dashboard after the first paid checkout.
Six read-only endpoints are open to anyone — no API key, no sign-up, CORS enabled, so they work from a browser, a directory listing or an LLM tool definition: POST /eligibility, POST /quote, GET /schemas, GET /capabilities, GET /health and GET /discovery (all under /api/v1/agent). 30 requests/minute per IP. Payment, filing and account endpoints keep requiring an API key or agent headers.
curl -s https://chartavisa.com/api/v1/agent/eligibility \
-H 'Content-Type: application/json' \
-d '{"nationality":"IN","destination":"US"}'
# {"success":true,"data":{"required":true,"visa_type":"DS160",
# "pricing":{"official_fee":{"amount":185,"currency":"USD"},"official_fee_collected":false,
# "service_fee":{"amount":149,"currency":"USD"}},
# "links":{"apply_url":"...","requirements_url":"..."}}}npm install @chartavisa/agent-sdk
import { ChartaVisaAgent } from "@chartavisa/agent-sdk";
const cv = new ChartaVisaAgent();
const r = await cv.checkEligibility("IN", "US");pip install chartavisa
import chartavisa
r = chartavisa.check_eligibility("IN", "US")
q = chartavisa.quote_pricing("ESTA", num_travelers=2)Both SDKs are dependency-free and MIT-licensed. Telegram users can ask the same question with /check IN USin our bot. Every response says which fee is the government's and which is ours.
Rate limits: 30 requests/minute for guests, 60/minute per API key. Questions or higher limits: contact us.