Skip to main content
POST
BaseURL: 기본 BaseURL은 https://direct.evolink.ai이며, 텍스트 모델과 장시간 연결을 더 잘 지원합니다. https://api.evolink.ai는 멀티모달 서비스의 기본 엔드포인트이자 텍스트 모델의 대체 주소 역할을 합니다.
Responses 형식으로 GLM의 텍스트 대화, 스트리밍, 함수 호출을 이용합니다. 이미지 이해와 웹 검색은 모델별로 제공됩니다. 아래에서 매개변수와 모델별 차이를 확인하세요.

모델과 매개변수 차이

GLM 모델을 선택합니다. 네 모델 모두 이 엔드포인트의 텍스트 입력을 지원하며 선택 기능은 모델마다 다릅니다. Responses는 최상위 reasoning_effortthinking 대신 중첩된 reasoning.effort를 사용합니다. 사고 사용량은 output_tokens에 포함됩니다. 간단한 작업에서 reasoning_tokens=0이 반환되어도 사고를 끌 수 있다는 뜻은 아닙니다. 추론 강도이며 low를 권장합니다. glm-5.3 / glm-5.3-flash / glm-5.3-flashx 호환 규칙 minimalnone은 5.3 시리즈의 사고를 끄지 않습니다. 사고 토큰은 출력으로 과금됩니다. 알 수 없는 값은 호환 변환 없이 원래 값을 유지하므로 표에 나온 값을 사용하세요. 이 규칙은 glm-5.2에는 적용되지 않습니다. 이 엔드포인트에서 glm-5.2none을 보내도 사고 토큰이 생성될 수 있으므로 사고 끄기를 보장하지 않습니다.

시스템 프롬프트와 여러 턴의 대화

instructions: 시스템 지시문입니다. glm-5.3-flash는 input이 문자열일 때 이 필드를 지원합니다. 메시지 배열이면 첫 번째 role=system 메시지에 시스템 프롬프트를 넣으세요.
응답을 저장하여 나중에 참조합니다. glm-5.3-flashglm-5.3-flashxstore=trueprevious_response_id로 대화를 이어갈 수 있습니다. glm-5.2는 응답 ID 기반 이어가기를 지원하지 않으며 store=true로도 활성화되지 않습니다. 대신 input에 전체 기록을 포함하세요. 이전 응답의 최상위 id입니다. glm-5.3-flashglm-5.3-flashxstore=true 및 동일 모델에서 지원합니다. output 항목의 id가 아닌 응답 id를 그대로 전달하세요. glm-5.2는 이 필드에 400을 반환합니다. 모델을 바꾸는 대화에서는 이 필드를 생략하고 input에 전체 기록을 포함하세요.

스트리밍 응답

SSE 스트리밍을 켭니다. 본문은 response.output_text.delta의 delta에서 읽습니다. 성공 종료 이벤트는 response.completed입니다. response.incomplete, response.failed 또는 error에서도 해당 턴을 종료하고 처리하세요. [DONE]이나 연결 종료만 기다리지 마세요. 종료 이벤트를 받으면 읽기를 끝내세요. HTTP 200은 스트림이 열렸다는 뜻이므로 이벤트의 최종 상태를 확인해야 합니다. 도구 호출 턴이 response.completed로 끝나더라도 애플리케이션이 함수를 실행하고 다음 요청을 보내야 할 수 있습니다.

함수 호출

요청 메뉴에서 함수 호출 예시를 선택하세요. Responses 함수 정의는 중첩하지 않는 구조입니다.
  1. response.output을 순회하여 type=function_call인 모든 항목을 찾습니다.
  2. arguments JSON 문자열을 파싱·검증한 뒤 애플리케이션에서 각 함수를 실행합니다.
  3. 이전 output 전체를 기록에 추가합니다. 호출마다 function_call_output을 넣고 원래 call_id와 문자열 output을 사용합니다.
  4. 갱신한 기록을 다음 요청의 input으로 보냅니다. 함수 결과 반환 예시에서 이 구조를 확인할 수 있습니다.
parallel_tool_calls: 한 턴에서 여러 도구 호출을 허용할지 정합니다. false로 설정해도 함수 호출이 하나만 반환된다는 보장은 없습니다. 클라이언트는 모든 function_call을 순회하고 처리해야 합니다.

이미지, 검색 및 JSON 출력

glm-5.3-flashglm-5.3-flashx에서는 사용자 메시지의 content 배열에 input_textinput_image를 섞을 수 있습니다. image_url에 공개 이미지 URL 또는 Base64 Data URL을 전달하세요. glm-5.3glm-5.2에는 텍스트만 사용합니다. tools: [{"type":"web_search"}]를 선언합니다. 검색은 서버에서 실행되며 web_search_call과 본문으로 결과를 반환합니다. 실제 검색 여부는 출력 항목에서 확인하세요. 검색에는 토큰 요금 외에 건당 요금이 발생할 수 있으므로 모델 가격을 참고하세요. 검색 후 대화를 이어가려면 web_search_callmessage를 포함한 이전 output 전체를 input에 추가한 다음 새 질문을 추가하세요. 원본 id, status, action 등의 필드를 그대로 유지하세요. 검색은 서버에서 이미 실행되었으므로 web_search_call에 대한 function_call_output은 만들 필요가 없습니다. web_search_history 요청 예시를 참고하세요. text.format.type: 출력 형식입니다. text는 일반 텍스트, json_object는 JSON 객체입니다. json_object를 사용할 때는 프롬프트에서 유효한 JSON을 명시적으로 요청하고 클라이언트에서 파싱·검증하세요. 엄격한 JSON Schema 제약은 제공하지 않으므로 json_schemastrict=true로 지정 구조를 보장할 수 없습니다.

응답과 사용량

순서가 있는 출력 항목입니다. type=message의 content에서 type=output_text인 항목의 text가 본문입니다. reasoning이 본문보다 먼저 올 수 있고 function_call 턴에는 본문이 없을 수도 있습니다. 항상 output[0]만 읽지 마세요. output_text: 선택적인 본문 집계 필드로, 없을 수 있습니다. 범용 클라이언트는 output을 순회해야 합니다. message에는 output_text, reasoning에는 reasoning_text가 올 수 있습니다. 사고 내용은 summary_text로도 반환될 수 있습니다. 모든 reasoning 항목에 content가 있다고 가정하지 마세요.
  • usage.input_tokens: 캐시 적중분을 포함한 전체 입력 토큰입니다. usage.input_tokens_details.cached_tokens: 입력 중 캐시에 적중한 토큰 수입니다. input_tokens에 다시 더하지 마세요. 접두사 캐시는 자동이며 명시적인 cache_control이 필요하지 않습니다. 적중량은 반환된 값을 기준으로 확인하세요.
  • usage.output_tokens: 사고 토큰을 포함한 전체 출력 토큰입니다. usage.output_tokens_details.reasoning_tokens: 출력 중 사고에 사용된 토큰 수입니다. output_tokens에 중복 계산하지 마세요. 이 상세 값은 없거나 0일 수 있습니다.
status=incomplete이고 incomplete_details.reason=max_output_tokens이면 예산이 소진된 것입니다. 사고만 있고 본문이 없을 수 있으므로 출력 상한을 늘리세요.

인증

Authorization
string
header
필수

Authorization 헤더에 Bearer YOUR_API_KEY를 전달하세요.

본문

application/json
model
enum<string>
기본값:glm-5.3-flash
필수

GLM 모델을 선택합니다. 네 모델 모두 이 엔드포인트의 텍스트 입력을 지원하며 선택 기능은 모델마다 다릅니다.

사용 가능한 옵션:
glm-5.3,
glm-5.3-flash,
glm-5.3-flashx,
glm-5.2
예시:

"glm-5.3-flash"

input
필수

필수입니다. 텍스트 문자열 또는 Responses 입력 항목 배열입니다. 배열에는 메시지, 모델 출력의 재전송 항목, function_call_output을 포함할 수 있습니다. 여러 턴의 대화에서는 매번 전체 기록을 보낼 수 있습니다. 시스템 프롬프트는 첫 번째 role=system 메시지에 두는 것이 좋습니다. 이미지는 input_image를 사용하며 glm-5.3-flash와 glm-5.3-flashx만 지원합니다. Chat Completions의 messages / image_url 블록 형식을 사용하지 마세요.

예시:

"한 문장으로 자신을 소개해 주세요."

max_output_tokens
integer

이번 생성의 출력 토큰 상한으로, 사고 토큰도 포함합니다. 1024부터 작업에 맞게 조정하세요. 너무 작으면 사고 중에 한도를 소진하여 본문 없이 reasoning 항목만 반환될 수 있습니다. status와 incomplete_details를 확인하세요. 매개변수 이름은 max_tokens가 아닌 max_output_tokens입니다.

필수 범위: x >= 1
예시:

1024

stream
boolean
기본값:false

SSE 스트리밍을 켭니다. 본문은 response.output_text.delta의 delta에서 읽습니다. 성공 종료 이벤트는 response.completed입니다. response.incomplete, response.failed 또는 error에서도 해당 턴을 종료하고 처리하세요. [DONE]이나 연결 종료만 기다리지 마세요.

reasoning
object

Responses는 최상위 reasoning_effort나 thinking 대신 중첩된 reasoning.effort를 사용합니다. 사고 사용량은 output_tokens에 포함됩니다. 간단한 작업에서 reasoning_tokens=0이 반환되어도 사고를 끌 수 있다는 뜻은 아닙니다.

instructions
string

시스템 지시문입니다. glm-5.3-flash는 input이 문자열일 때 이 필드를 지원합니다. 메시지 배열이면 첫 번째 role=system 메시지에 시스템 프롬프트를 넣으세요.

tools
object[]

클라이언트 측 function 도구와 서버 측 web_search를 지원합니다. 함수는 name / description / parameters를 같은 계층에 선언하며 Chat Completions의 function 객체처럼 중첩하지 않습니다. 애플리케이션이 function_call을 실행하고 결과를 반환합니다. web_search는 서버에서 실행되며 실제 검색에는 토큰 요금 외에 호출당 요금이 발생할 수 있습니다. 모델 가격을 참고하세요.

tool_choice

auto는 모델이 선택하고, none은 도구를 사용하지 않으며, required는 도구 호출을 요구합니다. 특정 함수는 {"type":"function","name":"get_temperature"}로 지정합니다. 강제 선택 동작이 모든 모델과 도구 조합에서 동일하게 지원되는 것은 아닙니다.

사용 가능한 옵션:
auto,
none,
required
예시:

"auto"

parallel_tool_calls
boolean

한 턴에서 여러 도구 호출을 허용할지 정합니다. false로 설정해도 함수 호출이 하나만 반환된다는 보장은 없습니다. 클라이언트는 모든 function_call을 순회하고 처리해야 합니다.

text
object

출력 형식입니다. 예시는 json_object를 사용합니다. HTTP 200이 JSON Schema 준수를 보장하지는 않습니다.

store
boolean

응답을 저장하여 나중에 참조합니다. glm-5.3-flash와 glm-5.3-flashx는 store=true 및 previous_response_id로 대화를 이어갈 수 있습니다. glm-5.2는 응답 ID 기반 이어가기를 지원하지 않으며 store=true로도 활성화되지 않습니다. 대신 input에 전체 기록을 포함하세요.

previous_response_id
string

이전 응답의 최상위 id입니다. glm-5.3-flash와 glm-5.3-flashx는 store=true 및 동일 모델에서 지원합니다. output 항목의 id가 아닌 응답 id를 그대로 전달하세요. glm-5.2는 이 필드에 400을 반환합니다. 모델을 바꾸는 대화에서는 이 필드를 생략하고 input에 전체 기록을 포함하세요.

예시:

"이전 턴에서 반환된 응답 ID"

metadata
object

사용자 지정 문자열 키-값 메타데이터로, 응답의 metadata에서 읽을 수 있습니다. 키나 민감한 정보를 넣지 마세요.

예시:
temperature
number

샘플링 매개변수입니다. 유효 범위와 동작은 모델에 따라 다릅니다. 결정적인 출력을 보장하지 않으며 추론 작업에서는 생략할 수 있습니다.

top_p
number

샘플링 매개변수입니다. 유효 범위와 동작은 모델에 따라 다르며 보통 생략할 수 있습니다.

응답

생성이 완료되었거나 불완전한 결과가 반환되었습니다. status를 확인하세요. 스트리밍은 text/event-stream을 반환합니다.

id
string

이번 응답의 ID입니다. previous_response_id에 그대로 전달하세요.

예시:

"response_demo"

object
string
Allowed value: "response"
created_at
integer

생성 시간이며 Unix 초 단위입니다.

model
string
예시:

"glm-5.3-flash"

status
enum<string>

completed는 이번 턴의 생성 종료를 의미하며 도구 호출만 있을 수도 있습니다. incomplete는 출력이 불완전함을 뜻합니다. output과 error를 함께 확인하세요.

사용 가능한 옵션:
completed,
incomplete,
failed,
in_progress,
queued
output
object[]

순서가 있는 출력 항목입니다. type=message의 content에서 type=output_text인 항목의 text가 본문입니다. reasoning이 본문보다 먼저 올 수 있고 function_call 턴에는 본문이 없을 수도 있습니다. 항상 output[0]만 읽지 마세요.

output_text
string

선택적인 본문 집계 필드로, 없을 수 있습니다. 범용 클라이언트는 output을 순회해야 합니다.

usage
object
error
object | null

응답 오류이며 성공 시 보통 null입니다.

incomplete_details
object
metadata
object | null