Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
712ac58
Japan updates
clemra Apr 14, 2026
8c6be42
add to /cloud region picker
jannikmaierhoefer Apr 24, 2026
c8baca7
add jp to "to app" button
jannikmaierhoefer Apr 24, 2026
eb36db7
change code examples and docs mentions
jannikmaierhoefer Apr 24, 2026
b62476a
Merge remote-tracking branch 'origin/main' into pr/japan-updates
jannikmaierhoefer Apr 24, 2026
807f335
fix
jannikmaierhoefer Apr 24, 2026
9d3a795
add translated version of migration notebook
jannikmaierhoefer Apr 24, 2026
1aa4229
add two blog posts
jannikmaierhoefer Apr 24, 2026
3c20bfb
change to /japan and add redirects
jannikmaierhoefer Apr 26, 2026
db40be4
add changelog
jannikmaierhoefer Apr 26, 2026
79a45db
Merge branch 'main' into pr/japan-updates
jannikmaierhoefer Apr 26, 2026
b1cbddb
add banner
jannikmaierhoefer Apr 26, 2026
58df659
changes to changelog
jannikmaierhoefer Apr 26, 2026
adeaaf7
fx typo
jannikmaierhoefer Apr 26, 2026
5db918b
edit banner
jannikmaierhoefer Apr 26, 2026
8a31e92
add fancy /japan layout
jannikmaierhoefer Apr 26, 2026
09b1522
add ingestion charge note to data migration cookbook
clemra Apr 26, 2026
99eef28
update /japan
jannikmaierhoefer Apr 26, 2026
e820dab
update Japan cloud changelog messaging
clemra Apr 26, 2026
094931d
fix fast grant amount on research page
clemra Apr 26, 2026
7625f59
japan update
jannikmaierhoefer Apr 26, 2026
8135ff6
update
jannikmaierhoefer Apr 26, 2026
17c65d0
update
jannikmaierhoefer Apr 26, 2026
0fbe8b5
fixes
jannikmaierhoefer Apr 26, 2026
5142064
push
jannikmaierhoefer Apr 26, 2026
733dbe7
fix
jannikmaierhoefer Apr 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .agents/cursor/rules/integration-page.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ Each integration page should follow this specific structure:
os.environ["LANGFUSE_SECRET_KEY"] = "sk-lf-..."
os.environ["LANGFUSE_BASE_URL"] = "https://cloud.langfuse.com" # 馃嚜馃嚭 EU region

# os.environ["LANGFUSE_BASE_URL"] = "https://us.cloud.langfuse.com" # 馃嚭馃嚫 US region
# Other Langfuse data regions include 馃嚭馃嚫 US: https://us.cloud.langfuse.com, 馃嚡馃嚨 Japan: https://jp.cloud.langfuse.com and 鈿曪笍 HIPAA: https://hipaa.cloud.langfuse.com

# Get your Together.ai API key from the project settings page

Expand Down
7 changes: 7 additions & 0 deletions app/cloud/[[...path]]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,13 @@ const regionCards: Record<
icon: Globe,
flag: "馃嚜馃嚭",
},
jp: {
title: "Japan",
awsRegion: "ap-northeast-1",
awsLocation: "Tokyo",
icon: Globe,
flag: "馃嚡馃嚨",
},
Comment thread
claude[bot] marked this conversation as resolved.
};

const CLOUD_ROUTE_PREFIX = "/cloud";
Expand Down
2 changes: 1 addition & 1 deletion components-mdx/env-js.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
LANGFUSE_SECRET_KEY = "sk-lf-..."
LANGFUSE_PUBLIC_KEY = "pk-lf-..."
LANGFUSE_BASE_URL = "https://cloud.langfuse.com" # 馃嚜馃嚭 EU region
# LANGFUSE_BASE_URL = "https://us.cloud.langfuse.com" # 馃嚭馃嚫 US region
# Other Langfuse data regions include 馃嚭馃嚫 US: https://us.cloud.langfuse.com, 馃嚡馃嚨 Japan: https://jp.cloud.langfuse.com and 鈿曪笍 HIPAA: https://hipaa.cloud.langfuse.com
```
2 changes: 1 addition & 1 deletion components-mdx/env-python-os.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ import os
os.environ["LANGFUSE_PUBLIC_KEY"] = "pk-lf-..."
os.environ["LANGFUSE_SECRET_KEY"] = "sk-lf-..."
os.environ["LANGFUSE_BASE_URL"] = "https://cloud.langfuse.com" # 馃嚜馃嚭 EU region
# os.environ["LANGFUSE_BASE_URL"] = "https://us.cloud.langfuse.com" # 馃嚭馃嚫 US region
# Other Langfuse data regions include 馃嚭馃嚫 US: https://us.cloud.langfuse.com, 馃嚡馃嚨 Japan: https://jp.cloud.langfuse.com and 鈿曪笍 HIPAA: https://hipaa.cloud.langfuse.com
```
2 changes: 1 addition & 1 deletion components-mdx/env-python.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
LANGFUSE_SECRET_KEY = "sk-lf-..."
LANGFUSE_PUBLIC_KEY = "pk-lf-..."
LANGFUSE_BASE_URL = "https://cloud.langfuse.com" # 馃嚜馃嚭 EU region
# LANGFUSE_BASE_URL = "https://us.cloud.langfuse.com" # 馃嚭馃嚫 US region
# Other Langfuse data regions include 馃嚭馃嚫 US: https://us.cloud.langfuse.com, 馃嚡馃嚨 Japan: https://jp.cloud.langfuse.com and 鈿曪笍 HIPAA: https://hipaa.cloud.langfuse.com
```
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ langfuse_handler = CallbackHandler(
secret_key="sk-lf-...",
public_key="pk-lf-...",
base_url="https://cloud.langfuse.com", # 馃嚜馃嚭 EU region
# base_url="https://us.cloud.langfuse.com", # 馃嚭馃嚫 US region
# Other Langfuse data regions include 馃嚭馃嚫 US: https://us.cloud.langfuse.com, 馃嚡馃嚨 Japan: https://jp.cloud.langfuse.com and 鈿曪笍 HIPAA: https://hipaa.cloud.langfuse.com
)

# Your Langchain code
Expand Down
2 changes: 1 addition & 1 deletion components-mdx/prompt-linking.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ const langfuseHandler = new CallbackHandler({
secretKey: "sk-lf-...",
publicKey: "pk-lf-...",
baseUrl: "https://cloud.langfuse.com", // 馃嚜馃嚭 EU region
// baseUrl: "https://us.cloud.langfuse.com", // 馃嚭馃嚫 US region
// Other Langfuse data regions include 馃嚭馃嚫 US: https://us.cloud.langfuse.com, 馃嚡馃嚨 Japan: https://jp.cloud.langfuse.com and 鈿曪笍 HIPAA: https://hipaa.cloud.langfuse.com
});

const langfuse = new Langfuse();
Expand Down
110 changes: 59 additions & 51 deletions components/ToAppButton.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,14 @@ import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "./ui/dropdown-menu";
import { cn } from "@/lib/utils";
import {
cloudRegions,
cloudRegionSelectorOrder,
continentHostMapping,
type CloudRegionKey,
} from "@/lib/cloud-regions";
Expand Down Expand Up @@ -55,7 +58,6 @@ export const ToAppButton = ({
}
})
.catch((error) => {
// Only update state if the error is not from aborting
if (error.name !== "AbortError") {
setContinentCode(null);
}
Expand All @@ -69,7 +71,14 @@ export const ToAppButton = ({

const signedInCount = Object.values(signedInRegions).filter(Boolean).length;

if (signedInCount > 1) {
if (signedInCount >= 1) {
const signedInRegionKeys = cloudRegionSelectorOrder.filter(
(key) => signedInRegions[key]
);
const otherRegionKeys = cloudRegionSelectorOrder.filter(
(key) => !signedInRegions[key]
);

return (
<DropdownMenu>
<DropdownMenuTrigger asChild>
Expand All @@ -84,59 +93,58 @@ export const ToAppButton = ({
<span className="hidden sm:inline">{signedInText}</span>
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent>
{Object.entries(cloudRegions).map(
([key, region]) =>
signedInRegions[key as CloudRegionKey] && (
<DropdownMenuItem asChild key={key}>
<Link href={region.url}>{region.label}</Link>
</DropdownMenuItem>
)
<DropdownMenuContent align="end">
{signedInRegionKeys.length > 0 && (
<DropdownMenuLabel className="text-xs font-medium text-muted-foreground">
Signed in
</DropdownMenuLabel>
)}
{signedInRegionKeys.map((key) => (
<DropdownMenuItem asChild key={key}>
<Link href={cloudRegions[key].url}>
{cloudRegions[key].label}
</Link>
</DropdownMenuItem>
))}
{signedInRegionKeys.length > 0 && otherRegionKeys.length > 0 && (
<DropdownMenuSeparator />
)}
{otherRegionKeys.length > 0 && (
<DropdownMenuLabel className="text-xs font-medium text-muted-foreground">
Other regions
</DropdownMenuLabel>
)}
{otherRegionKeys.map((key) => (
<DropdownMenuItem asChild key={key}>
<Link href={cloudRegions[key].url}>
{cloudRegions[key].label}
</Link>
</DropdownMenuItem>
))}
</DropdownMenuContent>
</DropdownMenu>
);
} else if (signedInCount === 1) {
const signedInRegion = Object.entries(cloudRegions).find(
([key]) => signedInRegions[key as CloudRegionKey]
);
}

return (
<Button
size="xs"
asChild
className={cn(
"whitespace-nowrap",
isUsingDefaultText && "w-[45px] sm:w-[70px]"
)}
>
<Link href={signedInRegion![1].url}>
<span className="sm:hidden">{dropdownText}</span>
<span className="hidden sm:inline">{signedInText}</span>
</Link>
</Button>
);
} else {
return (
<Button
size="xs"
asChild
className={cn(
"whitespace-nowrap",
isUsingDefaultText && "w-[45px] sm:w-[70px]"
)}
return (
<Button
size="xs"
asChild
className={cn(
"whitespace-nowrap",
isUsingDefaultText && "w-[45px] sm:w-[70px]"
)}
>
<Link
href={
continentCode
? continentHostMapping[continentCode]
: cloudRegions.eu.url
}
>
<Link
href={
continentCode
? continentHostMapping[continentCode]
: cloudRegions.eu.url
}
>
<span className="sm:hidden">{dropdownText}</span>
<span className="hidden sm:inline">{signUpText}</span>
</Link>
</Button>
);
}
<span className="sm:hidden">{dropdownText}</span>
<span className="hidden sm:inline">{signUpText}</span>
</Link>
</Button>
);
};
2 changes: 1 addition & 1 deletion content/blog/2024-05-haystack-integration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ import os
os.environ["LANGFUSE_PUBLIC_KEY"] = "pk-lf-..."
os.environ["LANGFUSE_SECRET_KEY"] = "sk-lf-..."
os.environ["LANGFUSE_BASE_URL"] = "https://cloud.langfuse.com" # 馃嚜馃嚭 EU region
# os.environ["LANGFUSE_BASE_URL"] = "https://us.cloud.langfuse.com" # 馃嚭馃嚫 US region
# Other Langfuse data regions include 馃嚭馃嚫 US: https://us.cloud.langfuse.com, 馃嚡馃嚨 Japan: https://jp.cloud.langfuse.com and 鈿曪笍 HIPAA: https://hipaa.cloud.langfuse.com
os.environ["HAYSTACK_CONTENT_TRACING_ENABLED"] = "True"

# Your openai key
Expand Down
5 changes: 4 additions & 1 deletion content/changelog/2025-03-03-langfuse-java-client.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,10 @@ import com.langfuse.client.resources.prompts.types.PromptMetaListResponse;

LangfuseClient client = LangfuseClient.builder()
.url("https://cloud.langfuse.com") // 馃嚜馃嚭 EU data region
// .url("https://us.cloud.langfuse.com") // 馃嚭馃嚫 US data region
// Other Langfuse data regions:
// .url("https://us.cloud.langfuse.com") // 馃嚭馃嚫 US
// .url("https://jp.cloud.langfuse.com") // 馃嚡馃嚨 Japan
// .url("https://hipaa.cloud.langfuse.com") // 鈿曪笍 HIPAA
// .url("http://localhost:3000") // 馃彔 Local deployment
.credentials("pk-lf-...", "sk-lf-...")
.build();
Expand Down
2 changes: 1 addition & 1 deletion content/docs/administration/authentication-and-sso.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ Details:

Share the following with Langfuse via [support](/support):

- **Instance URL** (e.g., `https://cloud.langfuse.com` or `https://us.cloud.langfuse.com`)
- **Instance URL** (e.g., `https://cloud.langfuse.com`, `https://us.cloud.langfuse.com`, `https://jp.cloud.langfuse.com`, or `https://hipaa.cloud.langfuse.com`)
- **Issuer URL** (e.g., `https://example.okta.com`)
- **Client ID**
- **Client Secret**
Expand Down
35 changes: 33 additions & 2 deletions content/docs/api-and-data-platform/features/mcp-server.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Alternatively you can also work with the [Langfuse Agent Skill](/docs/api-and-da

The Langfuse MCP server uses a stateless architecture where each API key is scoped to a specific project. Use the following configuration to connect to the MCP server:

<Tabs items={["Cloud EU", "Cloud US", "HIPAA US", "Self-Hosted"]}>
<Tabs items={["Cloud EU", "Cloud US", "Cloud Japan", "HIPAA US", "Self-Hosted"]}>

<Tab>

Expand All @@ -48,6 +48,14 @@ The Langfuse MCP server uses a stateless architecture where each API key is scop

<Tab>

- Endpoint: `https://jp.cloud.langfuse.com/api/public/mcp`
- Transport: `streamableHttp`
- Authentication: Basic Auth via authorization header

</Tab>

<Tab>

- Endpoint: `https://hipaa.cloud.langfuse.com/api/public/mcp`
- Transport: `streamableHttp`
- Authentication: Basic Auth via authorization header
Expand Down Expand Up @@ -138,6 +146,10 @@ The MCP server provides five tools for comprehensive prompt management.
claude mcp add --transport http langfuse https://us.cloud.langfuse.com/api/public/mcp \
--header "Authorization: Basic {your-base64-token}"

# Langfuse Cloud (Japan)
claude mcp add --transport http langfuse https://jp.cloud.langfuse.com/api/public/mcp \
--header "Authorization: Basic {your-base64-token}"

# Langfuse Cloud (HIPAA)
claude mcp add --transport http langfuse https://hipaa.cloud.langfuse.com/api/public/mcp \
--header "Authorization: Basic {your-base64-token}"
Expand All @@ -162,7 +174,7 @@ The MCP server provides five tools for comprehensive prompt management.
3. Click **"Add Custom MCP"**
4. Add your Langfuse MCP server configuration, replace `{your-base64-token}` with your encoded credentials:

<Tabs items={["Cloud EU", "Cloud US", "HIPAA US", "Self-Hosted"]}>
<Tabs items={["Cloud EU", "Cloud US", "Cloud Japan", "HIPAA US", "Self-Hosted"]}>

<Tab>

Expand Down Expand Up @@ -202,6 +214,24 @@ The MCP server provides five tools for comprehensive prompt management.
</Tab>
<Tab>

```json filename="mcp.json" /{your-base64-token}/
{
"mcp": {
"servers": {
"langfuse": {
"url": "https://jp.cloud.langfuse.com/api/public/mcp",
"headers": {
"Authorization": "Basic {your-base64-token}"
}
}
}
}
}
```

</Tab>
<Tab>

```json filename="mcp.json" /{your-base64-token}/
{
"mcp": {
Expand Down Expand Up @@ -248,6 +278,7 @@ The MCP server provides five tools for comprehensive prompt management.
- Endpoint: `/api/public/mcp`
- EU: `https://cloud.langfuse.com/api/public/mcp`
- US: `https://us.cloud.langfuse.com/api/public/mcp`
- Japan: `https://jp.cloud.langfuse.com/api/public/mcp`
- HIPAA: `https://hipaa.cloud.langfuse.com/api/public/mcp`
- Self-Hosted: `https://your-domain.com/api/public/mcp`
- Transport: `streamableHttp`
Expand Down
14 changes: 12 additions & 2 deletions content/docs/api-and-data-platform/features/public-api.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ description: All Langfuse data and features are available via the API. Follow th

Langfuse is open and meant to be extended via custom workflows and integrations. All Langfuse data and features are available via the API.

<Tabs items={["Path", "Cloud US", "Cloud EU", "HIPAA US"]}>
<Tabs items={["Path", "Cloud US", "Cloud EU", "Cloud Japan", "HIPAA US"]}>

<Tab>

Expand All @@ -33,6 +33,13 @@ https://cloud.langfuse.com/api/public
</Tab>
<Tab>

```
https://jp.cloud.langfuse.com/api/public
```

</Tab>
<Tab>

```
https://hipaa.cloud.langfuse.com/api/public
```
Expand Down Expand Up @@ -160,7 +167,10 @@ import com.langfuse.client.core.LangfuseClientApiException;

LangfuseClient client = LangfuseClient.builder()
.url("https://cloud.langfuse.com") // 馃嚜馃嚭 EU data region
// .url("https://us.cloud.langfuse.com") // 馃嚭馃嚫 US data region
// Other Langfuse data regions:
// .url("https://us.cloud.langfuse.com") // 馃嚭馃嚫 US
// .url("https://jp.cloud.langfuse.com") // 馃嚡馃嚨 Japan
// .url("https://hipaa.cloud.langfuse.com") // 鈿曪笍 HIPAA
// .url("http://localhost:3000") // 馃彔 Local deployment
.credentials("pk-lf-...", "sk-lf-...")
.build();
Expand Down
2 changes: 1 addition & 1 deletion content/docs/observability/sdk/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ langfuse = Langfuse(
public_key="your-public-key",
secret_key="your-secret-key",
base_url="https://cloud.langfuse.com", # 馃嚜馃嚭 EU region
# base_url="https://us.cloud.langfuse.com", # 馃嚭馃嚫 US region
# Other Langfuse data regions include 馃嚭馃嚫 US: https://us.cloud.langfuse.com, 馃嚡馃嚨 Japan: https://jp.cloud.langfuse.com and 鈿曪笍 HIPAA: https://hipaa.cloud.langfuse.com
)
```

Expand Down
3 changes: 1 addition & 2 deletions content/faq/all/chatbot-analytics.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -150,8 +150,7 @@ LANGFUSE_SECRET_KEY="sk-lf-..."
LANGFUSE_PUBLIC_KEY="pk-lf-..."
# 馃嚜馃嚭 EU region
LANGFUSE_BASE_URL="https://cloud.langfuse.com"
# 馃嚭馃嚫 US region
# LANGFUSE_BASE_URL="https://us.cloud.langfuse.com"
# Other Langfuse data regions include 馃嚭馃嚫 US: https://us.cloud.langfuse.com, 馃嚡馃嚨 Japan: https://jp.cloud.langfuse.com and 鈿曪笍 HIPAA: https://hipaa.cloud.langfuse.com
```

```python
Expand Down
2 changes: 1 addition & 1 deletion content/faq/all/existing-otel-setup.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -664,7 +664,7 @@ OTEL_EXPORTER_OTLP_ENDPOINT="https://cloud.langfuse.com/api/public/otel"
OTEL_EXPORTER_OTLP_HEADERS="Authorization=Basic $(echo -n 'pk-xxx:sk-xxx' | base64),x-langfuse-ingestion-version=4"
```

For US region, use `https://us.cloud.langfuse.com/api/public/otel` as the endpoint.
For other regions, replace the endpoint host accordingly: `https://us.cloud.langfuse.com/api/public/otel` (US), `https://jp.cloud.langfuse.com/api/public/otel` (Japan), or `https://hipaa.cloud.langfuse.com/api/public/otel` (HIPAA).

This applies regardless of which framework (LangChain, LlamaIndex, Strands, etc.) you use on AgentCore.

Expand Down
2 changes: 1 addition & 1 deletion content/faq/all/fifteen-questions-langfuse-answered.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ The answer is yes, Langfuse is an open source alternative to Promptlayer. You ca

## 14. How can I use the LLM Playground?

**You can use the LLM Playground on [Langfuse Cloud](https://us.cloud.langfuse.com).** You will need to add LLM API keys to your project's settings before you are able to start using the [Prompt Playground](/docs/playground).
**You can use the LLM Playground on [Langfuse Cloud](https://langfuse.com/cloud).** You will need to add LLM API keys to your project's settings before you are able to start using the [Prompt Playground](/docs/playground).

## 15. How can I use RAGAS evaluations?

Expand Down
Loading
Loading