> ## Documentation Index
> Fetch the complete documentation index at: https://docs.laozhang.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# invalid_api_key·404 오류 해결: base URL 설정

> LaoZhang API 키로 invalid_api_key, 401, 404 오류가 날 때 OpenAI, Anthropic, Gemini SDK별로 알맞은 base URL을 설정하는 방법입니다.

`invalid_api_key`나 404 오류는 대개 요청이 LaoZhang API에 도달하지 못했거나 base URL 경로가 틀렸다는 뜻이며, 키 자체가 문제인 경우는 드뭅니다. LaoZhang API 키는 LaoZhang API 호스트에서만 동작하며, 아래처럼 설정해야 합니다.

| 항목 | 내용 |
| - | - |
| OpenAI SDK base URL | `https://api.laozhang.ai/v1` |
| Anthropic SDK base URL | `https://api.laozhang.ai`(SDK가 `/v1/messages`를 붙임) |
| Google Gen AI SDK | `base_url`은 `https://api.laozhang.ai`, `api_version`은 `v1beta` |
| 인증 | `Authorization: Bearer YOUR_LAOZHANG_API_KEY` |
| 빠른 확인 | `GET https://api.laozhang.ai/v1/models` |

## 증상별 원인 찾기

| 보이는 증상 | 가능성이 높은 원인 | 해결 |
| - | - | - |
| `Incorrect API key provided: sk-...` | LaoZhang API 키를 `api.openai.com`으로 보냄 | base URL을 `https://api.laozhang.ai/v1`로 변경 |
| LaoZhang 호스트를 쓰는데도 401 | 키를 일부만 복사했거나 공백이 섞였거나, 토큰이 비활성화 또는 만료됨 | 키를 다시 복사하고 [토큰 관리](https://api.laozhang.ai/token)에서 토큰 상태 확인 |
| 404 Not Found | OpenAI SDK에서 `/v1`이 빠졌거나, Anthropic SDK에서 `/v1`을 붙임 | 위 표와 경로를 비교 |
| 요청 경로에 `//` | base URL 끝의 `/`, 또는 경로가 두 번 합쳐짐 | 끝의 슬래시를 지우고 SDK가 경로를 만들도록 둠 |
| SSL 또는 연결 오류 | `https://`가 빠졌거나 네트워크에서 기본 호스트에 접속할 수 없음 | `https://`를 추가하거나 아래 대체 호스트를 사용 |

## SDK별 설정

SDK마다 요청 경로를 만드는 방식이 다릅니다. OpenAI SDK는 리소스 이름만 덧붙이므로 base URL에 `/v1`이 들어가야 합니다. Anthropic SDK는 `/v1/messages`를 스스로 붙이므로 `/v1`을 넣으면 `/v1/v1/messages`가 되어 404가 납니다.

> [tab] OpenAI SDK
>
> ```python theme={null}
> import os
> from openai import OpenAI
>
> client = OpenAI(
>     api_key=os.environ["LAOZHANG_API_KEY"],
>     base_url="https://api.laozhang.ai/v1",
> )
>
> response = client.chat.completions.create(
>     model="gpt-5.4-mini",
>     messages=[{"role": "user", "content": "안녕하세요"}],
> )
> print(response.choices[0].message.content)
> ```

> [tab] Anthropic SDK
>
> ```python theme={null}
> import os
> import anthropic
>
> client = anthropic.Anthropic(
>     api_key=os.environ["LAOZHANG_API_KEY"],
>     base_url="https://api.laozhang.ai",  # /v1 없음
> )
>
> message = client.messages.create(
>     model="glm-5.2",
>     max_tokens=1024,
>     messages=[{"role": "user", "content": "안녕하세요"}],
> )
> print(message.content[0].text)
> ```

> [tab] Google Gen AI SDK
>
> ```python theme={null}
> import os
> from google import genai
>
> client = genai.Client(
>     api_key=os.environ["LAOZHANG_API_KEY"],
>     http_options={"base_url": "https://api.laozhang.ai", "api_version": "v1beta"},
> )
>
> response = client.models.generate_content(model="gemini-3.8-flash", contents="안녕하세요")
> print(response.text)
> ```

실행하기 전에 `LAOZHANG_API_KEY` 환경 변수를 설정하세요. Anthropic 형식을 받는 모델은 [Claude 프로토콜](https://docs.laozhang.ai/ko/api-reference/claude.md)의 모델 목록에서 확인할 수 있습니다.

## 환경 변수로 설정하기

많은 도구가 OpenAI 표준 환경 변수를 읽으므로 코드에 base URL을 넣지 않아도 됩니다.

```bash theme={null}
export OPENAI_API_KEY="YOUR_LAOZHANG_API_KEY"
export OPENAI_BASE_URL="https://api.laozhang.ai/v1"
```

URL을 바꿨는데도 오류가 계속되면 설정이 서로 덮어쓰고 있는지 확인하세요.

* 코드, `.env` 파일, 셸에서 각각 다른 URL을 설정함
* 서드파티 클라이언트에 예전 제공사가 그대로 저장되어 있음
* 프로세스를 재시작하지 않아 이전 환경 변수를 계속 읽음

서드파티 클라이언트에서는 "Custom API" 또는 "OpenAI-compatible" 제공사를 찾으세요. API URL에 `https://api.laozhang.ai/v1`, 키에 LaoZhang API 키, 모델에 [모델 및 가격](https://docs.laozhang.ai/ko/models.md)의 전체 모델 ID를 입력합니다.

## 요청 한 번으로 설정 확인

```bash theme={null}
curl https://api.laozhang.ai/v1/models \
  -H "Authorization: Bearer $LAOZHANG_API_KEY"
```

`data` 배열이 오면 키와 호스트가 모두 맞는 것이며, 이 배열은 해당 토큰이 호출할 수 있는 모델 목록입니다. 그래도 401이 나면 [토큰 관리](https://api.laozhang.ai/token)에서 토큰이 활성화되어 있고 만료되지 않았으며 quota가 남아 있는지 확인하거나, 새 토큰을 만들어 다시 시도하세요.

## 대체 호스트

세 호스트는 같은 API 키, 경로, 파라미터를 받으며 호스트 이름만 다릅니다.

* 기본: `api.laozhang.ai`
* 유럽·북미에서 직접 연결: `api-vip.laozhang.ai`
* `api.laozhang.ai`에 접속할 수 없을 때: `api2.laozhang.ai`

전체 설정은 [API 연동 가이드](https://docs.laozhang.ai/ko/api-manual.md)를 참고하세요.

## 해결되지 않을 때

[hi@laozhang.ai](mailto:hi@laozhang.ai)로 다음 내용을 보내 주세요.

* 요청 시각과 시간대
* 키를 제외한 전체 요청 URL과 사용 중인 SDK
* HTTP 상태와 전체 오류 본문
* 키의 앞 6자와 뒤 4자

API 키 전체는 절대 보내지 마세요. 키가 채팅, 스크린샷, 저장소에 노출되었다면 [API 키 생성, 보관, 교체, 폐기](https://docs.laozhang.ai/en/faq/token-management.md)에 따라 먼저 폐기하고 새로 발급하세요.

## 관련 문서

* [API 연동 가이드](https://docs.laozhang.ai/ko/api-manual.md)
* [API 키 생성, 보관, 교체, 폐기](https://docs.laozhang.ai/en/faq/token-management.md)
* [모델 이용 가능 여부 확인](https://docs.laozhang.ai/en/faq/model-availability.md)
* [Models API: 사용 가능한 모델 ID 조회](https://docs.laozhang.ai/en/api-reference/models.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.