Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Semua API v3 mengembalikan respons kesalahan standar untuk membantu Anda mendiagnosis dan mengatasi masalah dengan cepat. Bagian ini mencakup kode status HTTP, struktur respons kesalahan, dan skenario pemecahan masalah umum.
Note
Semua nilai enum string tidak peka huruf besar/kecil.
Kode Status HTTP
| Kode Status | Berlaku Pada | Kategori Kesalahan | Description | Penyebab Umum |
|---|---|---|---|---|
| 200 | Semua API | Keberhasilan | Permintaan itu berhasil. | - |
| 202 | Telusuri saja | Diterima | Permintaan diterima untuk diproses (perayapan langsung). | Perayapan sesuai permintaan sedang berlangsung |
| 400 | Semua API | Permintaan Tidak Valid | Parameter permintaan tidak valid. | Bidang yang diperlukan hilang, nilai parameter tidak valid, JSON cacat |
| 401 | Semua API | Unauthorized | Autentikasi gagal atau hilang. | Kunci API tidak valid, header x-apikey hilang |
| 403 | Semua API | Forbidden | Kredensial yang valid tetapi izinnya tidak mencukup. | Kunci API tidak memiliki izin yang diperlukan |
| 403 | Telusuri saja | Forbidden | Konten difilter atau URL dikecualikan. | URL diblokir oleh kebijakan atau konten yang difilter |
| 404 | Telusuri saja | Tidak Ditemukan | Dokumen tidak ditemukan. | URL tidak valid atau tidak dapat diakses |
| 410 | Semua API | Hilang | HTTPS diperlukan. | Permintaan yang dibuat melalui HTTP alih-alih HTTPS |
| 415 | Semua API | Tipe Media yang Tidak Didukung | Tipe isi tidak didukung. | Header hilang atau salah content-type |
| 429 | Semua API | Terlalu Banyak Permintaan | Batas kecepatan terlampaui. | Terlalu banyak permintaan dalam jendela waktu |
| 430 | Telusuri saja | Kesalahan Server | Terlalu banyak perayapan sesuai permintaan. | Permintaan perayapan langsung yang berlebihan |
| 500 | Semua API | Kesalahan Server Internal | Kesalahan server tak terduga. | Masalah server sementara |
Struktur Respons Kesalahan
Semua respons kesalahan mengikuti skema ini:
| Field | Type | Description |
|---|---|---|
errorCode |
string | Kategori kesalahan yang lebih rinci yang membantu mengidentifikasi jenis kesalahan. |
errorCategory |
string | Kategori tingkat tinggi: UserError (sisi klien / tidak dapat diulang) atau SystemError (sisi server / dapat diulang). |
userMessage |
string | Deskripsi kesalahan yang dapat dibaca oleh manusia. |
technicalDetails |
string (opsional) | Informasi teknis tambahan atau detail validasi parameter untuk penelusuran kesalahan. |
retryAfter |
string (opsional) | Waktu untuk menunggu sebelum mencoba kembali. |
requestId |
string (opsional) | Pengidentifikasi unik untuk permintaan tersebut. |
traceId |
string | ID pelacakan terdistribusi untuk penelusuran kesalahan dan dukungan Microsoft. |
Note
202 Accepted respons (misalnya, Menelusuri polling perayapan langsung) bukan respons kesalahan dan tidak menggunakan skema kesalahan di atas. Mereka mungkin masih menyertakan retryAfter nilai untuk menunjukkan kapan harus mencoba kembali permintaan.
Contoh Respons Kesalahan:
{
"errorCode": "HandlerInvalidInput",
"errorCategory": "UserError",
"userMessage": "Invalid input provided. Please check your request parameters.",
"technicalDetails": "Parameter validation failed: maxResults=100 exceeds maximum=50",
"requestId": "req_abc123",
"traceId": "trace_xyz789"
}
Referensi Kode Kesalahan
Kesalahan Validasi Permintaan
| Kode Kesalahan | HTTP Status | Category | Description |
|---|---|---|---|
RequestInvalidFormat |
400 | UserError |
Isi JSON salah bentuk atau struktur payload permintaan yang tidak valid. |
RequestInvalidMethod |
400 | UserError |
Metode atau nama alat yang ditentukan dalam permintaan tidak valid. |
HandlerInvalidInput |
400 | UserError |
Nilai parameter input tidak valid (misalnya, kueri kosong, maxResults di luar rentang [1, 50], nilai enum tidak valid). |
RequestBlockedHeader |
400 | UserError |
Permintaan berisi header debug/varian yang diblokir (misalnya, X-Augmentations, , X-DebugOptionsX-XapHostOverride). Gunakan parameter URL terdokumen (?p1=, ?debugoptions=, ?atlahostname=) sebagai gantinya. |
RequestUnsupportedMediaType |
415 | UserError |
Header content-type hilang atau tidak application/json. |
MethodNotAllowed |
405 | UserError |
Metode HTTP tidak diizinkan pada rute (misalnya, GET pada titik akhir khusus POST). |
Kesalahan Autentikasi & Otorisasi
| Kode Kesalahan | HTTP Status | Category | Description |
|---|---|---|---|
AuthNoToken |
401 | UserError |
Autentikasi diperlukan. Tidak ada token pembawa atau kunci API yang disediakan. |
AuthTokenParse |
401 | UserError |
Format token autentikasi atau penguraian token tidak valid gagal. |
AuthInvalidApiKey |
401 | UserError |
Kunci API yang disediakan tidak valid atau tidak dikenali. |
AuthenticationFailed |
401 | UserError |
Kegagalan autentikasi umum. |
AuthExpiredTrial |
401 | UserError |
Periode percobaan telah kedaluwarsa. Silakan tingkatkan kunci Anda. |
AuthMissingEntryId |
400 | UserError |
Identitas aplikasi/ ID entri yang hilang dalam konteks permintaan. |
AuthAppIdSelectionRequired |
400 | UserError |
Identitas Anda dipetakan ke beberapa aplikasi. Tentukan aplikasi target menggunakan APPID parameter kueri. Lihat Memanggil lebih dari satu AppID. |
AuthUnauthorizedEntryId |
401 | UserError |
ID entri tidak sah. Identitas aplikasi tidak dapat diselesaikan, atau APPID parameter kueri dikirim dengan autentikasi kunci API. |
AuthUnauthorizedAppId |
403 | UserError |
Yang ditentukan APPID tidak terkait dengan identitas Anda. |
AuthUnauthorizedService |
403 | UserError |
Penelepon diautentikasi tetapi tidak sah untuk mengakses layanan/vertikal yang diminta. |
AuthBatchEndpointRequired |
403 | UserError |
Aplikasi diperlukan untuk menggunakan titik akhir batch (X-FD-Batch: 1) untuk pencarian web. |
AuthMcpWebForbidden |
403 | UserError |
Aplikasi tidak diizinkan untuk menggunakan alat MCP web . |
AuthContentFormatForbidden |
403 | UserError |
Aplikasi ini hanya memiliki akses ke bagian. Gunakan contentFormatpassage. Lihat Bagian dan format konten. |
Kesalahan Pembatasan Laju
| Kode Kesalahan | HTTP Status | Category | Description |
|---|---|---|---|
AuthUserThrottled |
429 | UserError |
Frekuensi permintaan melebihi batas tarif sumber daya Anda. Periksa retryAfter. |
AuthUserDailyUsageExceeded |
429 | UserError |
Kuota permintaan harian telah tercapai (reset pada pukul 00.00 UTC). Periksa retryAfter. |
Telusuri Kesalahan Spesifik API
| Kode Kesalahan | HTTP Status | Category | Description |
|---|---|---|---|
BrowseApiDocNotFound |
404 | UserError |
Dokumen tidak ditemukan. Tidak ada konten yang tersedia untuk URL yang ditentukan. |
BrowseApiIsFilteredOut |
403 | UserError |
Hasilnya dihilangkan karena kebijakan atau pemfilteran konten. |
BrowseApiIsUrlExcluded |
403 | UserError |
URL target dikecualikan atau tidak diizinkan oleh kebijakan. |
BrowseApiTooManyOnDemandCrawls |
430 | UserError |
Terlalu banyak permintaan perayapan langsung sesuai permintaan yang sedang berlangsung. |
Kesalahan Layanan & Infrastruktur
| Kode Kesalahan | HTTP Status | Category | Dapat Dicoba Lagi | Description |
|---|---|---|---|---|
InternalServerError |
500 | SystemError |
Ya (30s) | Kesalahan Server Internal |
Skenario Kesalahan Umum
Kesalahan autentikasi (401, 403)
Gejala: Autentikasi gagal atau akses terlarang
Solusi:
- Verifikasi bahwa kunci API Anda sudah benar dan disertakan
x-apikeydalam header - Periksa apakah kunci API Anda belum kedaluwarsa
- Pastikan Anda memiliki izin yang diperlukan untuk titik akhir
- Hubungi perwakilan Microsoft Anda jika masalah berlanjut
Example:
# Correct authentication
curl -X POST "https://api.microsoft.ai/v3/search/web" \
-H "x-apikey: your-valid-key-here" \
-H "content-type: application/json" \
-d '{"query": "test"}'
Pembatasan tarif (429)
Gejala: Batas tarif terlampaui atau kuota harian habis (AuthUserThrottled atau AuthUserDailyUsageExceeded)
Permintaan di atas batas tarif sumber daya Anda mengembalikan HTTP 429. Batas tarif Anda ditampilkan di portal Web IQ.
Solusi:
- Terapkan logika percobaan ulang backoff eksponensial
- Tunggu
retryAfterinterval dalam respons kesalahan (misalnya,"60s") sebelum mencoba kembali - Mengurangi frekuensi permintaan
- Perhatikan bahwa batas kuota harian (
AuthUserDailyUsageExceeded) diatur ulang setiap hari pada pukul 00.00 UTC - Untuk meminta batas yang lebih tinggi, hubungi Dukungan IQ Web
Contoh Respons:
{
"errorCode": "AuthUserThrottled",
"errorCategory": "UserError",
"userMessage": "Rate limit exceeded. Please reduce your request frequency.",
"retryAfter": "60s",
"requestId": "req_123",
"traceId": "trace_456"
}
Parameter tidak valid (400)
Gejala: Permintaan buruk karena parameter yang tidak valid
Masalah umum:
- Bidang yang diperlukan hilang (misalnya,
queryparameter) - Nilai parameter di luar rentang (misalnya,
maxResults> 50) - Jenis parameter tidak valid (misalnya, string alih-alih bilangan bulat)
- Nilai parameter yang tidak didukung (misalnya, tidak valid
contentFormat)
Solusi:
- Memvalidasi semua parameter yang diperlukan ada
- Periksa nilai parameter terhadap batasan yang didokumenkan
- Memastikan pemformatan JSON yang tepat
Kesalahan server dan infrastruktur (500)
Gejala: Server internal yang tidak terduga atau kesalahan layanan hulu (InternalServerError)
Solusi:
-
retryAfterPeriksa bidang (default ke"30s") dan coba lagi permintaan setelah menunggu - Terapkan percobaan ulang dengan backoff eksponensial dan jitter
- Jika masalah berlanjut, hubungi dukungan Microsoft dengan yang
traceIddisediakan dalam respons
Contoh Respons:
{
"errorCode": "InternalServerError",
"errorCategory": "SystemError",
"userMessage": "The service is temporarily unavailable. Please try again later.",
"technicalDetails": "An internal service error occurred. Please contact support if the issue persists.",
"retryAfter": "30s",
"traceId": "trace_456"
}
Telusuri respons yang diterima API (202)
Gejala: Respons yang diterima dengan retryAfter bidang
Penjelasan: Ketika liveCrawl diatur ke "fallback" dan URL perlu dirayapi, API mengembalikan 202 Diterima dengan nilai yang retryAfter menunjukkan kapan harus mencoba kembali permintaan.
Penanganan:
# Initial request
curl -X POST "https://api.microsoft.ai/v3/browse" \
-H "x-apikey: your-key" \
-H "content-type: application/json" \
-d '{"url": "https://example.com", "liveCrawl": "fallback"}'
# Response: 202 Accepted with retryAfter
# Wait for the specified time, then retry the same request
Praktik terbaik
- Selalu periksa kode status - Jangan asumsikan berhasil
- Gunakan traceId untuk dukungan - Sertakan traceId saat menghubungi dukungan
- Menerapkan logika coba lagi - Gunakan backoff eksponensial untuk kesalahan sementara
- Menangani respons 202 - Untuk Menelusuri API dengan perayapan langsung, tunggu, dan coba lagi
- Validasi sebelum mengirim - Periksa parameter secara lokal untuk menghindari kesalahan 400
- Gunakan https saja - Permintaan HTTP akan mengembalikan kesalahan 410