Skip to content
زبان: اردو

ڈیولپرز کے لیے API

API خرابی کا فارمیٹ اور خرابی کوڈز

اپ ڈیٹ: 1 نومبر، 2026 پڑھنے کا وقت: 6 منٹ

LinkHarbor API کے خرابی والے جوابات کی ساخت کیسی ہوتی ہے، اہم ترین خرابی کوڈز کا کیا مطلب ہے اور آپ کے کوڈ کو ان پر کیا ردعمل دینا چاہیے۔

API کے ہر خرابی والے جواب کا فارمیٹ ایک جیسا ہوتا ہے۔ آپ کے کوڈ کو error فیلڈ میں موجود خرابی کوڈ پر انحصار کرنا چاہیے، message کے متن پر نہیں – کوڈ مستحکم رہتا ہے، جبکہ متن بدل سکتا ہے اور اکاؤنٹ کی زبان میں ترجمہ ہوتا ہے۔

خرابی والے جواب کی ساخت

مثال: 422 validation_failed
{
  "error": "validation_failed",
  "message": "Some of the information provided is invalid. Please check and try again.",
  "details": [
    { "field": "title", "reason": "minLength", "message": "…" }
  ],
  "request_id": "6b1f0c2e-…"
}
error
مشین کے پڑھنے کے قابل کوڈ، مثلاً not_found۔ زیادہ تر خرابیوں میں یہ X-Error-Code ہیڈر میں بھی ہوتا ہے – لیکن باڈی کی فیلڈ پر انحصار کریں۔
message
اکاؤنٹ کی زبان میں انسان کے پڑھنے کے قابل تفصیل: API کلید کے ساتھ ورک اسپیس کے مالک کی زبان، منسلک ایپ کے ساتھ اس شخص کی زبان جس نے اسے جوڑا۔ درست ٹوکن کے بغیر – مثلاً ٹوکن چیک سے 401 – زبان Accept-Language کے مطابق ہوتی ہے، ورنہ انگریزی۔ Content-Language ہیڈر زبان بتاتا ہے۔
details
صرف تب موجود ہوتا ہے جب مزید کچھ بتانا ہو۔ ان پٹ کی جانچ سے 422 کی صورت میں ہر مسئلے کے لیے field، reason اور message والی فہرست؛ بزنس لاجک سے 422 اور باقی تمام خرابیوں میں ایک آبجیکٹ، مثلاً reason، retry_after_sec یا issues کی فہرست کے ساتھ۔ سائز کی حد سے تجاوز پر اس میں field، reason اور limit ہوتے ہیں، اور 413 request_too_large میں max_bytes اور max_kb۔ اس لیے جانچیں کہ details فہرست ہے یا نہیں۔
request_id
ریکویسٹ کی ID۔ یہ X-Request-Id ہیڈر میں بھی ہوتی ہے۔ سپورٹ سے رابطہ کرتے وقت اسے شامل کریں۔

استثنا: 429 rate_limited جواب میں details کے بجائے retry_after_sec فیلڈ ہوتی ہے؛ 429 اور 403 insufficient_scope میں باڈی میں request_id نہیں ہوتی۔ ٹوکن چیک سے 401 اور اسکیما چیک سے 422 میں X-Error-Code ہیڈر نہیں ہوتا، اور اسکیما چیک میں صرف اوپر والے درجے کا message ترجمہ ہوتا ہے؛ details کے اندر کے متن انگریزی میں رہتے ہیں۔ X-Request-Id ہیڈر ہمیشہ موجود ہوتا ہے۔

اہم ترین کوڈز

HTTPerrorمطلبکیا کریں
400invalid_jsonباڈی درست JSON نہیں ہےJSON چیک کریں
400bad_requestغلط Content-Type یا خراب ریکویسٹContent-Type: application/json لگائیں
401missing_bearer_tokenAuthorization ہیڈر میں کوئی ٹوکن نہیںہیڈر Authorization: Bearer … لگائیں
401invalid_tokenٹوکن کی مدت ختم یا غلط، یا کلید حذف شدہنیا ٹوکن لیں؛ اگر اس سے فائدہ نہ ہو تو کلید چیک کریں
401invalid_api_keyٹوکن کے تبادلے میں غلط کلید ID یا سیکرٹلاگ اِن کی معلومات چیک کریں
402plan_limit_reachedپلان کی حد پوری ہو گئی، مثلاً مختصر لنکس کیاپ گریڈ کریں یا اندراجات حذف کریں
403insufficient_scopeاسکوپ موجود نہیں یا اینڈپوائنٹ API کلیدوں کے لیے فعال نہیںدرست اسکوپ کے ساتھ کلید بنائیں
403forbiddenاس عمل کی اجازت نہیںیہ ڈیش بورڈ میں کریں
403feature_not_availableفیچر پلان میں شامل نہیںپلان چیک کریں
403block_type_requires_planبلاک کی قسم صرف اونچے پلان میں دستیاب ہےکوئی اور بلاک قسم چنیں یا اپ گریڈ کریں
403template_lockedپریمیم ٹیمپلیٹ موجودہ پلان میں دستیاب نہیںGET /v1/templates/available سے کوئی ٹیمپلیٹ چنیں
403workspace_suspended, workspace_read_only, workspace_grace_expiredبقایا ادائیگی کی وجہ سے ورک اسپیس لاک ہے یا صرف پڑھنے کے لیے ہےڈیش بورڈ میں ادائیگی کا معاملہ حل کریں
404not_foundوسیلہ موجود نہیں یا آپ کی ورک اسپیس کا نہیںID چیک کریں
409conflictموجودہ حالت سے عمومی ٹکراؤحالت دوبارہ لوڈ کریں، ان پٹ بدلیں
409workspace_template_in_useورک اسپیس ٹیمپلیٹ ابھی صفحات میں استعمال ہو رہا ہے؛ تعداد details.count میں ہےصفحات کو کسی دوسرے ٹیمپلیٹ پر منتقل کریں، پھر اسے حذف کریں
409handle_taken, slug_takenہینڈل یا مختصر لنک کا سلگ پہلے سے لیا جا چکا ہےکوئی اور قدر چنیں
409form_in_use, page_not_private, page_not_published, never_publishedحالت سے ٹکراؤ: فارم ابھی کسی صفحے پر ہے، صفحہ نجی نہیں یا شائع شدہ نہیں، کبھی شائع نہیں ہواحالت بدلیں، پھر دوبارہ کوشش کریں
409page_limit_reached, link_limit_reached, block_limit_reached, form_limit_reached, asset_limit_reached, asset_storage_limit_reached, workspace_template_limit_reachedپلان کی تعداد یا اسٹوریج کی حد پوری ہو گئیاندراجات ہٹائیں یا اپ گریڈ کریں
409draft_not_publishableڈرافٹ میں مسائل ہیں؛ فہرست details.issues میں ہےمسائل ٹھیک کریں، پھر دوبارہ شائع کریں
413request_too_largeباڈی اس اینڈپوائنٹ کی اجازت سے بڑی ہے (64 KB، 1 MB یا 2 MB)؛ حد details.max_kb میں ہےہر ریکویسٹ میں کم ڈیٹا بھیجیں، دیکھیں ریٹ لمٹس
413payload_too_largeاپ لوڈ کی گئی فائل 10 MB سے بڑی ہےفائل چھوٹی کریں
422validation_failedغلط ان پٹ یا نامعلوم فیلڈ؛ تفصیل details میںdetails کے مطابق فیلڈز درست کریں
422handle_reserved, target_url_invalid, target_url_scheme, target_url_hostہینڈل محفوظ ہے، یا ہدف URL غلط ہے یا اس کی اجازت نہیںکوئی اور قدر چنیں
422workspace_template_disabledمنتخب ورک اسپیس ٹیمپلیٹ بند ہے“ڈومینز اور ٹیمپلیٹس” میں ٹیمپلیٹ فعال کریں یا کوئی دوسرا چنیں
422template_css_external, template_section_invalidورک اسپیس ٹیمپلیٹ: CSS بیرونی سرورز سے لوڈ ہوتی ہے، یا کوئی {{#if}}/{{#unless}}/{{#each}} سیکشن غلط جگہ پر ہےبیرونی پتے ہٹائیں، یا سیکشن کو اسی ٹیگ یا متن کے اندر بند کریں
422custom_css_externalکسٹم CSS بیرونی سرورز سے کچھ لوڈ کرتی ہےCSS سے بیرونی پتے ہٹائیں
429rate_limited, api_key_lockedبہت زیادہ ریکویسٹس، یا ناکام کوششوں کے بعد کلید لاکاتنی دیر انتظار کریں جتنا Retry-After یا details.retry_after_sec بتائے
500internal_errorغیر متوقع خرابیبعد میں دوبارہ کوشش کریں، request_id نوٹ کریں
503service_unavailableسروس عارضی طور پر دستیاب نہیںوقفے کے بعد دوبارہ کوشش کریں

ان پٹ کی خرابیاں پڑھنا

422 validation_failed میں details ہر مسئلے کو الگ سے بتاتا ہے: field فیلڈ کا پاتھ ہے (اندرونی آبجیکٹس کے لیے سلیش کے ساتھ، مثلاً theme_config/button_style)، reason وہ قاعدہ ہے جو ٹوٹا، جیسے required، minLength، maxLength، enum یا additionalProperties۔ additionalProperties کی صورت میں message بتاتا ہے کہ کون سی فیلڈز نامعلوم ہیں – اکثر فیلڈ کے نام میں ٹائپنگ کی غلطی۔

آپ کے کوڈ میں تجویز کردہ طریقہ

  • 400، 413 اور 422: دوبارہ کوشش نہ کریں، بلکہ ریکویسٹ ٹھیک کریں
  • 401 invalid_token: ایک بار نیا ٹوکن لیں اور دوبارہ کوشش کریں
  • 403: دوبارہ کوشش نہ کریں؛ اسکوپ، پلان یا یہ چیک کریں کہ یہ کام کرنے کی اجازت کسے ہے
  • 404: ID چیک کریں؛ کچھ حذف کرنے کے بعد یہ معمول کی بات ہے
  • 409: حالت دوبارہ لوڈ کریں اور فیصلہ کریں کہ عمل کی ابھی بھی ضرورت ہے یا نہیں
  • 429: اتنی دیر انتظار کریں جتنا Retry-After بتائے، پھر دوبارہ کوشش کریں – دیکھیں ریٹ لمٹس
  • 500 اور 503: بڑھتے وقفوں کے ساتھ چند بار دوبارہ کوشش کریں

کچھ نہیں ملا؟

ہمیں بتائیں کہ آپ کو کیا چاہیے، ہماری سپورٹ ٹیم ذاتی طور پر آپ کی مدد کرے گی۔

سپورٹ سے رابطہ کریں