Anthropic opened its Seoul office on June 17, 2026, making it the company’s third office in Asia-Pacific after Tokyo and Bengaluru. The announcement came with something more consequential than a new address: a broad group of Korean enterprises, startups, researchers, and nonprofits adopting Claude.
NAVER has deployed Claude Code across its engineering organization. Samsung SDS is bringing Claude Cowork and Claude Code to Samsung Electronics employees. LG CNS is rolling Claude out to thousands of employees and plans to expand the deployment across LG Group. Nexon engineers are using Claude Code to develop live-service games, while Good Neighbors Korea is applying Claude to child-welfare work.
These deployments sit against a strong regional growth story. In its October 2025 announcement of plans for the Seoul office, Anthropic said its APAC run-rate revenue had grown more than 10x year over year. It also reported an 8x increase in regional business accounts generating more than $100,000 in annualized revenue, while weekly active Claude Code users in Korea had grown 6x in four months.
For developers, the useful takeaway is not simply that Claude is expanding in Korea. It is that large organizations are treating AI models as engineering infrastructure: tools should fit existing workflows, support enterprise controls, and remain replaceable when availability or policy changes.

What Anthropic announced in Seoul
A third APAC office and an experienced local lead
Anthropic’s Seoul office is led by KiYoung Choi, Representative Director of Korea. Choi has spent decades leading technology businesses in the country, including senior roles at Snowflake, Google Cloud, Adobe, Autodesk, and Microsoft Korea.
That choice suggests a clear enterprise focus. Anthropic is not approaching Korea only as a market for consumer AI products; it is building relationships with large companies, public-sector organizations, research institutions, and developers.
An AI safety agreement with the Korean government
Anthropic also signed a memorandum of understanding with Korea’s Ministry of Science and ICT. The agreement covers:
- Evaluating model safety in Korean with the Korea AI Safety Institute
- Sharing information about AI-enabled cyber threats
- Supporting safe and responsible AI adoption across the public sector
This gives Anthropic a formal role in Korea’s broader work on AI safety and government adoption, not just private-sector deployment.
Enterprise, research, and nonprofit deployments
The partnerships announced around the opening span several parts of the Korean economy:
| Organization | Deployment |
|---|---|
| NAVER | Claude Code across the engineering organization, with thousands of engineers using it as part of a broader coding toolset |
| Samsung SDS | Claude Cowork and Claude Code for Samsung Electronics employees working on knowledge tasks, agentic workflows, and software development |
| LG CNS | Claude for thousands of employees, with a planned rollout across LG Group |
| Hanwha Solutions | Claude through AWS Bedrock to meet in-region data-residency and security requirements |
| Nexon | Claude Code for writing, reviewing, and shipping code for live-service games |
| Channel Corp | Claude inside Channel Talk, a customer AI platform used by more than 230,000 companies |
| NAIRL consortium | Claude access for up to 60 researchers from KAIST, Korea University, Yonsei University, and POSTECH |
| Good Neighbors Korea | Assistance with program analysis, welfare-law navigation, and administrative work |
The pattern is more interesting than any individual logo. Claude is being used across software engineering, internal knowledge work, research, regulated infrastructure, and nonprofit operations.
Why engineering teams are choosing Claude Code
For NAVER and Nexon, the adoption story centers on Claude Code rather than a generic chat interface. That distinction matters. A coding agent can work with repositories, use development tools, and carry a task across multiple steps instead of answering one isolated prompt at a time.
The practical advantages include:
- Repository-aware work: Claude Code can inspect and modify code across a project instead of relying on snippets pasted into a chat window.
- Tool use: It can work with the shell, files, Git, tests, and other development tools within the permissions a team grants it.
- Multi-step execution: It can follow a longer task from investigation through implementation and verification.
- Enterprise deployment options: Organizations can use supported cloud platforms and controls that fit their security and data-governance requirements.
- Toolchain diversity: Teams can introduce Claude Code alongside existing tools instead of replacing their entire development environment.
That last point is easy to overlook. A mature AI strategy does not need to declare one permanent winner. Giving engineers multiple approved tools reduces lock-in and lets teams compare quality, cost, latency, and availability against real workloads.
What the APAC growth numbers actually show
Anthropic’s regional metrics provide useful context, but their timing should be stated precisely. The company published the following figures in October 2025 when it announced plans to open the Seoul office:
| Metric | Reported growth | Period |
|---|---|---|
| APAC run-rate revenue | More than 10x | Year over year |
| Weekly active Claude Code users in Korea | 6x | Four months |
| APAC business accounts above $100,000 in run-rate revenue | 8x | Year over year |
These numbers do not prove that every organization should standardize on Claude. They do show that APAC adoption was already moving from experimentation toward recurring enterprise use before the office officially opened.
For engineering teams in the region, that usually leads to better local support, more implementation experience, and a larger ecosystem of integrations. It also makes architecture choices more important: production systems should account for model routing, cost visibility, rate limits, and service availability from the beginning.
A practical integration path for developer teams
ClaudeAPI provides an Anthropic-compatible endpoint, so an existing Anthropic SDK integration can be pointed at its gateway by changing the base URL. The examples below use model IDs currently listed by ClaudeAPI; verify availability and pricing in the console before deploying them.
Python
import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ["ANTHROPIC_API_KEY"],
base_url="https://gw.claudeapi.com",
)
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{
"role": "user",
"content": "Summarize the significance of Anthropic's Seoul office.",
}
],
)
print(response.content[0].text)
import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ["ANTHROPIC_API_KEY"],
base_url="https://gw.claudeapi.com",
)
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{
"role": "user",
"content": "Summarize the significance of Anthropic's Seoul office.",
}
],
)
print(response.content[0].text)
Node.js and TypeScript
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
baseURL: "https://gw.claudeapi.com",
});
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [
{
role: "user",
content: "Summarize the significance of Anthropic's Seoul office.",
},
],
});
const firstBlock = message.content[0];
console.log(firstBlock.type === "text" ? firstBlock.text : "");
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
baseURL: "https://gw.claudeapi.com",
});
const message = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [
{
role: "user",
content: "Summarize the significance of Anthropic's Seoul office.",
},
],
});
const firstBlock = message.content[0];
console.log(firstBlock.type === "text" ? firstBlock.text : "");
cURL
curl https://gw.claudeapi.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 512,
"messages": [
{"role": "user", "content": "ping"}
]
}'
curl https://gw.claudeapi.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 512,
"messages": [
{"role": "user", "content": "ping"}
]
}'
Keep API keys in environment variables or a secrets manager. Do not hard-code production credentials in source files.
Add fallback before you need it
Model availability can change because of outages, capacity constraints, provider decisions, or policy requirements. Anthropic’s June 2026 suspension of access to Fable 5 and Mythos 5 under a US government directive is an unusually visible example, but the architectural lesson is ordinary: do not make a critical path depend on one model with no recovery plan.
A simple fallback layer is a reasonable starting point:
PRIMARY_MODEL = "claude-opus-4-7"
FALLBACK_MODEL = "claude-sonnet-4-6"
LIGHT_MODEL = "claude-haiku-4-5-20251001"
def call_with_fallback(prompt: str, high_quality: bool = True):
models = (
[PRIMARY_MODEL, FALLBACK_MODEL]
if high_quality
else [LIGHT_MODEL]
)
last_error = None
for model in models:
try:
return client.messages.create(
model=model,
max_tokens=1024,
messages=[{"role": "user", "content": prompt}],
)
except Exception as error:
last_error = error
print(f"[warning] {model} failed: {error}")
raise RuntimeError("No configured model is available") from last_error
PRIMARY_MODEL = "claude-opus-4-7"
FALLBACK_MODEL = "claude-sonnet-4-6"
LIGHT_MODEL = "claude-haiku-4-5-20251001"
def call_with_fallback(prompt: str, high_quality: bool = True):
models = (
[PRIMARY_MODEL, FALLBACK_MODEL]
if high_quality
else [LIGHT_MODEL]
)
last_error = None
for model in models:
try:
return client.messages.create(
model=model,
max_tokens=1024,
messages=[{"role": "user", "content": prompt}],
)
except Exception as error:
last_error = error
print(f"[warning] {model} failed: {error}")
raise RuntimeError("No configured model is available") from last_error
Production fallback needs more than a broad except. Classify errors, retry only transient failures, use exponential backoff, set timeouts, and record which model served each request. Different models can also produce different output quality, so test the degraded path rather than assuming compatibility.
Use prompt caching for repeated context
Long system instructions, reference material, and few-shot examples can be expensive when sent with every request. Prompt caching lets you mark stable content for reuse:
LONG_SYSTEM_PROMPT = """You analyze financial reports.
Follow the organization's reporting and citation rules...
"""
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system=[
{
"type": "text",
"text": LONG_SYSTEM_PROMPT,
"cache_control": {"type": "ephemeral"},
}
],
messages=[{"role": "user", "content": user_query}],
)
LONG_SYSTEM_PROMPT = """You analyze financial reports.
Follow the organization's reporting and citation rules...
"""
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system=[
{
"type": "text",
"text": LONG_SYSTEM_PROMPT,
"cache_control": {"type": "ephemeral"},
}
],
messages=[{"role": "user", "content": user_query}],
)
Caching is most useful when a large, stable prefix is reused frequently enough to produce cache hits. Measure actual cache creation and read usage rather than estimating savings from token counts alone. Pricing, minimum cacheable lengths, and time-to-live rules can change, so check the current provider documentation before building a cost model.
A sensible rollout plan
Teams evaluating Claude do not need to begin with an organization-wide deployment. A controlled rollout gives better evidence:
- Start with one measurable workflow. Pick a task such as test generation, issue triage, code review assistance, or structured extraction.
- Establish a baseline. Record current completion time, error rate, cost, and review effort before introducing an AI tool.
- Route by task, not by brand. Use a capable default model, reserve the most expensive model for tasks that benefit from it, and send simple high-volume work to a lighter model.
- Add observability. Track latency, token use, failures, fallback frequency, and human corrections.
- Test failure modes. Simulate rate limits and model unavailability before the integration becomes critical.
- Expand only when the data supports it. A successful pilot should produce evidence that matters to both engineers and the people responsible for security and cost.
The larger signal from Seoul
Anthropic’s Korean partnerships show that enterprise AI adoption is moving beyond choosing a single “best” model. The harder and more durable work is operational: fitting AI into existing tools, governing access, measuring outcomes, and keeping the system resilient when a model becomes unavailable.
NAVER, Samsung, LG, Nexon, and the other organizations announced in Seoul are applying Claude in different environments, but their deployments share a theme. AI is becoming part of the toolchain rather than a separate demo.
For developer teams, the next useful step is modest: choose one real workflow, run it end to end, measure the result, and make sure the architecture leaves room to change models later.



