ឯកសារយោង API

Gateway នេះអាចប្រើប្រាស់បានទាំងទម្រង់ខ្សែរបស់ OpenAI និង Anthropic។ ធ្វើការផ្ទៀងផ្ទាត់ដោយប្រើ hashn0de API Key របស់អ្នក; Gateway នឹងរៀបចំការតភ្ជាប់ជូនដោយស្វ័យប្រវត្តិ។

Base URLs

សំណើ API ផ្ទាល់ / OpenAI SDK
https://api.hashn0de.com/v1

ប្រើ Base URL /v1 នេះសម្រាប់ Endpoint ផ្ទាល់ និង Client ដែលគាំទ្រ OpenAI។

Anthropic SDK / Claude Code
https://api.hashn0de.com

ប្រើ Gateway origin នេះ។ Client ទាំងនេះនឹងបន្ថែម /v1/messages និង Path ពាក់ព័ន្ធផ្សេងៗដោយខ្លួនឯង។

ម៉ូដែល

Gateway alias ដែលបង្ហាញនៅទីនេះគ្រាន់តែជាឧទាហរណ៍ប៉ុណ្ណោះ វាមិនមែនជាបញ្ជីម៉ូដែលផ្ទាល់ពេញលេញនោះទេ។ ប្រើ claude-opus-5 ជាម៉ូដែល Claude ដែលបានណែនាំ ហើយប្រើ grok-4.5 ជាម៉ូដែល Grok ដែលបានណែនាំ។ សូមផ្ញើ model ឱ្យច្បាស់ ដើម្បីឱ្យ routing មានលទ្ធផលថេរ; alias Claude ចាស់មានចំណុចដូចជា claude-opus-4.8 ក៏នៅតែអាចប្រើបាន និងត្រូវបាន Gateway បម្លែងជូន។

claude-opus-5ណែនាំ

Adaptive thinking (វែកញែកបត់បែន)

មានសមត្ថភាពខ្ពស់បំផុត — សម្រាប់ការវែកញែកស៊ីជម្រៅ និងកិច្ចការលំបាកៗដែលមានច្រើនជំហាន។

claude-opus-5-thinking

Extended thinking (វែកញែកពង្រីក)

មានសមត្ថភាពខ្ពស់បំផុត — សម្រាប់ការវែកញែកស៊ីជម្រៅ និងកិច្ចការលំបាកៗដែលមានច្រើនជំហាន។

claude-opus-4-8

Adaptive thinking (វែកញែកបត់បែន)

មានសមត្ថភាពខ្ពស់បំផុត — សម្រាប់ការវែកញែកស៊ីជម្រៅ និងកិច្ចការលំបាកៗដែលមានច្រើនជំហាន។

claude-opus-4-8-thinking

Extended thinking (វែកញែកពង្រីក)

មានសមត្ថភាពខ្ពស់បំផុត — សម្រាប់ការវែកញែកស៊ីជម្រៅ និងកិច្ចការលំបាកៗដែលមានច្រើនជំហាន។

claude-opus-4-7

Adaptive thinking (វែកញែកបត់បែន)

មានសមត្ថភាពខ្ពស់បំផុត — សម្រាប់ការវែកញែកស៊ីជម្រៅ និងកិច្ចការលំបាកៗដែលមានច្រើនជំហាន។

claude-opus-4-7-thinking

Extended thinking (វែកញែកពង្រីក)

មានសមត្ថភាពខ្ពស់បំផុត — សម្រាប់ការវែកញែកស៊ីជម្រៅ និងកិច្ចការលំបាកៗដែលមានច្រើនជំហាន។

claude-opus-4-6

Adaptive thinking (វែកញែកបត់បែន)

មានសមត្ថភាពខ្ពស់បំផុត — សម្រាប់ការវែកញែកស៊ីជម្រៅ និងកិច្ចការលំបាកៗដែលមានច្រើនជំហាន។

claude-opus-4-6-thinking

Extended thinking (វែកញែកពង្រីក)

មានសមត្ថភាពខ្ពស់បំផុត — សម្រាប់ការវែកញែកស៊ីជម្រៅ និងកិច្ចការលំបាកៗដែលមានច្រើនជំហាន។

claude-opus-4-5

Adaptive thinking (វែកញែកបត់បែន)

មានសមត្ថភាពខ្ពស់បំផុត — សម្រាប់ការវែកញែកស៊ីជម្រៅ និងកិច្ចការលំបាកៗដែលមានច្រើនជំហាន។

claude-opus-4-5-thinking

Extended thinking (វែកញែកពង្រីក)

មានសមត្ថភាពខ្ពស់បំផុត — សម្រាប់ការវែកញែកស៊ីជម្រៅ និងកិច្ចការលំបាកៗដែលមានច្រើនជំហាន។

សូមផ្ទៀងផ្ទាត់ និងហៅ GET /v1/models ដើម្បីមើល Live catalog ដែល Key របស់អ្នកអាចប្រើបាន។

Endpoints

GET

/v1

ការពិនិត្យស្ថានភាព និង Endpoint discovery។

POST

/v1/responses

Responses API ដែលគាំទ្រទម្រង់ OpenAI (ណែនាំសម្រាប់ Codex)។

POST

/v1/chat/completions

Chat completions ដែលគាំទ្រទម្រង់ OpenAI (សម្រាប់ Codex គាំទ្រទម្រង់ចាស់)។

POST

/v1/messages

Messages ដែលគាំទ្រទម្រង់ Anthropic។

POST

/v1/messages/count_tokens

ការប៉ាន់ស្មាន Input Tokens ដែលគាំទ្រទម្រង់ Anthropic។

GET

/v1/models

រាយបញ្ជីម៉ូដែលដែលអាចប្រើប្រាស់បាន។

GET

/v1/usage

ការប្រើប្រាស់សេវាកម្ម និង Quota របស់អ្នក។

សំណើ API ធម្មតាត្រូវការ API Key ប៉ុណ្ណោះ។ ការពិនិត្យ Usage ស្នើពាក្យសម្ងាត់ Dashboard តែនៅពេល Key ការពារ Quota data ពី Dashboard។ Checker អាចបង្ហាញ Credits, Tokens ប៉ាន់ស្មាន, ថ្ងៃផុតកំណត់/ស្ថានភាព និងតម្លៃ Dashboard ជា KHR ដោយប្រើ 1 USD = 4000 KHR។

ការផ្ទៀងផ្ទាត់

ប្រើ Header តែមួយសម្រាប់សំណើនីមួយៗ។ Gateway ទទួលយកទម្រង់ផ្ទៀងផ្ទាត់ណាមួយខាងក្រោម៖

http
Authorization: Bearer sk-xxxxxxxxxxxx
កុំផ្ញើ Header ទាំងពីរជាមួយគ្នា។ ប្រើទម្រង់ដែល SDK របស់អ្នកផ្ញើតាមលំនាំដើម។ សម្រាប់សំណើដែលបញ្ជូនទៅសេវាកម្ម Gateway នឹង Normalize វាទៅជា Bearer credential ដើម្បីឱ្យសេវាកម្មផ្ទៀងផ្ទាត់ Key និងអនុវត្ត Quota។ សំណើរាប់ Tokens ដែលប៉ាន់ស្មានក្នុងម៉ាស៊ីនត្រូវការតែ Key ដែលមិនទទេ; វាមិនផ្ទៀងផ្ទាត់ Key ឬប្រើ Quota ទេ។

មាន Key របស់អ្នករួចរាល់ហើយ?

ពិនិត្យ Key

Streaming

កំណត់ "stream": true នៅក្នុង Request body។ Gateway នឹង Stream ការឆ្លើយតបពីសេវាកម្មត្រឡប់មកវិញជាទម្រង់ text/event-stream ដោយមិនមានការ Buffer ឡើយ ដូច្នេះ Token នឹងមកដល់ជាបន្តបន្ទាប់ — ដូចគ្នាបេះបិទទៅនឹងអ្វីដែល API ដើមផ្តល់ឱ្យជាក់ស្តែង។

កំហុស (Errors)

កំហុសពី Gateway និងសេវាកម្មខាងក្រោយ ត្រូវបានបម្លែងទៅជាទម្រង់ JSON ដូចខាងក្រោម។ អត្ថបទកំហុសជាក់លាក់របស់ Provider — និងភាសាដើមរបស់វា — នឹងមិនត្រូវបានបញ្ជូនត្រឡប់មកវិញឡើយ។

json
{
  "error": {
    "message": "Missing API key. Add one header: Authorization: Bearer <your-key> or x-api-key: <your-key>.",
    "type": "authentication_error",
    "code": "missing_api_key"
  }
}
missing_api_key401

មិនបានផ្ញើ Authentication header ដែលគាំទ្រទេ។

invalid_api_key401

Key ដែលបានផ្ញើមិនត្រឹមត្រូវ ផុតកំណត់ ឬត្រូវបានដកហូត។

permission_denied403

Key ត្រឹមត្រូវ ប៉ុន្តែមិនត្រូវបានអនុញ្ញាតឱ្យប្រើម៉ូដែល ឬធនធាននេះទេ។

quota_exhausted402

Key នេះមិនមាន Credit នៅសល់ទេ។

rate_limit_exceeded429

សំណើច្រើនពេក — សូមបន្ថយល្បឿន ហើយព្យាយាមម្តងទៀត។

service_unavailable503

សេវាកម្មកំពុងមានបន្ទុកច្រើនបណ្ដោះអាសន្ន — សូមព្យាយាមម្តងទៀតក្នុងពេលឆាប់ៗ។

context_length_exceeded400

ទិន្នន័យបញ្ចូលវែងពេក — សូមកាត់បន្ថយ ហើយព្យាយាមម្តងទៀត។

content_policy_violation400

សំណើត្រូវបានទប់ស្កាត់ដោយគោលការណ៍ខ្លឹមសារ (content policy)។

invalid_model400 / 404

ម៉ូដែលដែលបានស្នើមិនអាចប្រើបានសម្រាប់ Key នេះទេ។

upstream_error4xx / 5xx

កំហុសផ្សេងៗទៀតពីសេវាកម្មខាងក្រោយ ដែលត្រឡប់មកវិញជាមួយសារទូទៅ។

កំហុសនៃការផ្ទៀងផ្ទាត់សំណើ (missing_api_key, payload_too_large, unsupported_media_type, invalid_json, gateway_timeout) ក៏ប្រើទម្រង់ envelope ដូចគ្នាដែរ ព្រមទាំង internal_error (500) ជាដំណោះស្រាយចុងក្រោយ។ ប្រភេទ Media មិនមែន JSON សម្រាប់ POST នឹងត្រូវបានបដិសេធ មុនពេលហៅទៅ Upstream។ ស្ថានភាព HTTP ខាងលើ អនុវត្តចំពោះកំហុសថ្នាក់សំណើ (request-level); ពេល Streaming កំហុសដែលកើតឡើងបន្ទាប់ពីការបង្កើតបានចាប់ផ្តើម នឹងមកដល់ជា event: error frame នៅក្នុង Stream 200 — ដោយផ្ទុក code ដូចគ្នា។