Prosody
관리 · 단어장

단어장 API

조직별 치환 규칙을 만들고 DIVE 또는 FRTTS 합성 요청에 적용합니다.

1

단어장 생성

빈 entries를 가진 단어장을 생성합니다.

URL

POSThttps://agitvxptajouhvoatxio.supabase.co/functions/v1/dictionaries-v1

인증 및 헤더

API Key는 서버 환경변수에 보관하고 요청 헤더로만 전달하세요.

X-API-Key: {YOUR_API_KEY}
Content-Type: application/json

요청 필드

단어장 생성 요청 필드
필드타입필수 여부설명
namestring필수

단어장 이름입니다.

1–100자

descriptionstring선택

설명입니다.

최대 500자

caseSensitiveboolean선택

영문 대소문자를 구분할지 결정합니다.

기본값 true

요청 예시

{
  "name": "제품명 발음",
  "description": "브랜드와 제품명 치환 규칙",
  "caseSensitive": true
}

응답

201

생성 결과

단어장 생성 생성 결과 응답 필드
필드타입필수 여부설명
idUUID필수

생성된 단어장 ID입니다.

생성 결과
{
  "id": "550e8400-e29b-41d4-a716-446655440000"
}
400

E4201 · 잘못된 JSON 또는 필드 타입

body가 JSON object가 아니거나 name, description, caseSensitive 타입이 계약과 다릅니다.

503

E5002 · 단어장 DB/RPC 일시 불가

요금제 확인, 개수 조회 또는 단어장 저장 DB/RPC를 일시적으로 사용할 수 없습니다.

2

단어장 목록

조직의 활성 단어장을 생성 순서로 조회합니다.

URL

GEThttps://agitvxptajouhvoatxio.supabase.co/functions/v1/dictionaries-v1

인증 및 헤더

API Key는 서버 환경변수에 보관하고 요청 헤더로만 전달하세요.

X-API-Key: {YOUR_API_KEY}

응답

200

목록 응답

단어장 목록 목록 응답 응답 필드
필드타입필수 여부설명
dictionariesobject[]필수

id, name, description, caseSensitive 목록입니다.

목록 응답
{
  "dictionaries": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "제품명 발음",
      "description": "브랜드와 제품명 치환 규칙",
      "caseSensitive": true
    }
  ]
}
503

E5002 · 단어장 DB 일시 불가

단어장 목록 DB를 일시적으로 사용할 수 없습니다.

3

단어장 상세

entries를 포함한 단어장 하나를 조회합니다.

URL

GEThttps://agitvxptajouhvoatxio.supabase.co/functions/v1/dictionaries-v1/{id}

인증 및 헤더

API Key는 서버 환경변수에 보관하고 요청 헤더로만 전달하세요.

X-API-Key: {YOUR_API_KEY}

경로 파라미터

단어장 상세 경로 파라미터
필드타입필수 여부설명
idUUID필수

조회할 단어장 ID입니다.

응답

200

상세 응답

단어장 상세 상세 응답 응답 필드
필드타입필수 여부설명
idUUID필수

단어장 ID입니다.

namestring필수

단어장 이름입니다.

descriptionstring | null선택

설명입니다.

entriesRecord<string, string>필수

원문과 치환문 쌍입니다.

caseSensitiveboolean필수

대소문자 구분 여부입니다.

createdAtISO 8601필수

생성 시각입니다.

updatedAtISO 8601필수

마지막 수정 시각입니다.

상세 응답
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "name": "제품명 발음",
  "description": null,
  "entries": { "API": "에이피아이" },
  "caseSensitive": true,
  "createdAt": "2026-07-28T00:00:00.000Z",
  "updatedAt": "2026-07-28T00:00:00.000Z"
}
404

E4301 · 단어장 없음 또는 접근 불가

조직에서 해당 단어장을 찾을 수 없거나 다른 조직의 단어장입니다.

503

E5002 · 단어장 DB/RPC 일시 불가

단어장 조회 DB/RPC를 일시적으로 사용할 수 없습니다.

4

단어장 수정

전달한 필드만 변경하며 적어도 하나의 필드가 필요합니다.

URL

PATCHhttps://agitvxptajouhvoatxio.supabase.co/functions/v1/dictionaries-v1/{id}

인증 및 헤더

API Key는 서버 환경변수에 보관하고 요청 헤더로만 전달하세요.

X-API-Key: {YOUR_API_KEY}
Content-Type: application/json

경로 파라미터

단어장 수정 경로 파라미터
필드타입필수 여부설명
idUUID필수

수정할 단어장 ID입니다.

요청 필드

단어장 수정 요청 필드
필드타입필수 여부설명
namestring선택

변경할 이름입니다.

1–100자

descriptionstring선택

변경할 설명입니다.

최대 500자

caseSensitiveboolean선택

변경할 대소문자 구분 여부입니다.

entriesRecord<string, string>선택

전체 치환 규칙 객체입니다.

각 key와 value는 최대 100자; 요금제별 개수 제한

요청 예시

{
  "entries": {
    "API": "에이피아이",
    "Humelo": "휴멜로"
  }
}

응답

200

수정 완료

응답 body는 비어 있습니다.

400

E4201 · 잘못된 JSON 또는 필드 타입

body가 JSON object가 아니거나 name, description, caseSensitive, entries 타입이 계약과 다릅니다. 공백뿐인 name 또는 entries key/value도 거절하며 문자열 "false"는 boolean false로 변환하지 않습니다. 거절 시 DB 행은 변경되지 않습니다.

404

E4301 · 단어장 없음 또는 접근 불가

조직에서 해당 단어장을 찾을 수 없거나 다른 조직의 단어장입니다.

503

E5002 · 단어장 DB/RPC 일시 불가

소유권 확인, 요금제 제한 확인 또는 단어장 저장 DB/RPC를 일시적으로 사용할 수 없습니다.

5

단어장 삭제

조직이 소유한 단어장을 삭제합니다.

URL

DELETEhttps://agitvxptajouhvoatxio.supabase.co/functions/v1/dictionaries-v1/{id}

인증 및 헤더

API Key는 서버 환경변수에 보관하고 요청 헤더로만 전달하세요.

X-API-Key: {YOUR_API_KEY}

경로 파라미터

단어장 삭제 경로 파라미터
필드타입필수 여부설명
idUUID필수

삭제할 단어장 ID입니다.

응답

200

삭제 완료

응답 body는 비어 있습니다.

404

E4301 · 단어장 없음 또는 접근 불가

조직에서 해당 단어장을 찾을 수 없거나 다른 조직의 단어장입니다.

503

E5002 · 단어장 DB 일시 불가

소유권 확인 또는 단어장 삭제 DB를 일시적으로 사용할 수 없습니다.