في هذه الصفحة

المطوّرون

واجهة ZeeDo البرمجية

آخر تحديث ⁦2026-11-07⁩.OpenAPI 3.1224 عمليةتنزيل مستند OpenAPI 3.1

كل ما يمكن لشخص فعله في ZeeDo، يمكن لبرنامج فعله عبر الواجهة البرمجية في باقة Pro وما فوقها؛ ومفاتيح Starter للقراءة فقط، ولا توجد مفاتيح في Free. ويبقى حذف مساحة العمل والإجراءات التي تطلب من الشخص تأكيد هويته في المتصفح.

أنشئ عميلًا برمجيًا من المستند: إنه المستند نفسه الذي يُبنى المنتج ويُختبر وفقًا له.

البدء السريع

المفاتيح والاصطلاحات والحدود

أنشئ مفتاحًا من الإعدادات ← API وWebhooks (يؤكد المالك هويته أولًا)، ثم استدعِ الواجهة البرمجية به كرمز Bearer. عنوان URL الأساسي هو https://api.zeedo.cloud/v1.

curl https://api.zeedo.cloud/v1/me \
  -H "Authorization: Bearer <مفتاح API الخاص بك>"
  • تتبع المفاتيح المؤسسة، ولكل منها نطاق: read أو write أو admin، ويمكن قصرها على مساحة عمل واحدة.
  • أجسام JSON، وحقول بصيغة snake_case، والأوقات بصيغة ISO 8601 بتوقيت UTC.
  • الأخطاء مستندات مشكلات وفق RFC 9457: type وtitle وstatus وdetail، وللحقل المرفوض errors[] مع مؤشر JSON.
  • تُقسَّم القوائم إلى صفحات باستخدام limit (200 كحد أقصى) وnext_cursor.
  • أرسل ترويسة Idempotency-Key مع كل طلب POST: فأي تكرار خلال 24 ساعة يتلقى الرد نفسه الذي تلقاه الطلب الأول.
  • 600 طلب في الدقيقة و10 تدفقات مفتوحة لكل مفتاح، مع ترويسات RateLimit-*.

Webhooks

تسليمات موقّعة للأحداث التي تختارها

تسجّل المؤسسة نقطة استقبال واحدة (الإعدادات ← API وWebhooks، أو POST /webhooks) وتختار أحداثها. كل حدث طلب POST بصيغة JSON يحمل المعرّفات والنوع والطوابع الزمنية، ولا يحمل أبدًا اسم شخص أو بريده الإلكتروني أو عنوان IP الخاص به، وهي بيانات تقرؤها عبر الواجهة البرمجية بمفتاح.

{
  "id": "evt_eu_01J9ZQ3M7X5V2K8R4T6Y1N0PBA",
  "type": "run.completed",
  "version": 1,
  "occurred_at": "2026-09-27T10:02:31.000Z",
  "org_id": "org_eu_01J9ZQ1C4H8D6F2W5S7K3M9QXE",
  "data": {
    "run_id": "run_eu_01J9ZQ2V8N4B6C1X3Z5Q7W9ERT",
    "bot_id": "bot_eu_01J9ZQ2A3S5D7F9G1H3J5K7L9M"
  }
}

كل تسليم موقّع: ZeeDo-Signature: t=<ثوانٍ بتوقيت Unix>,v1=<التوقيع>، حيث التوقيع هو HMAC-SHA256 بالترميز الست عشري لـ <t>.<الجسم الخام> باستخدام السر الخاص بنقطة الاستقبال. بعد تغيير السر، يوقّع السر السابق بجانبه لمدة 24 ساعة، كتوقيع v1 ثانٍ. ارفض أي توقيع يزيد عمره على 5 دقيقة.

import { createHmac, timingSafeEqual } from 'node:crypto';

// header: قيمة ZeeDo-Signature؛ body: جسم الطلب الخام، قبل أي تحليل لـ JSON
export function verified(header, body, secret) {
  const parts = header.split(',');
  const t = parts.find((p) => p.startsWith('t='))?.slice(2);
  if (!t || Math.abs(Date.now() / 1000 - Number(t)) > 300) return false;
  const expected = createHmac('sha256', secret).update(`${t}.${body}`).digest('hex');
  return parts.filter((p) => p.startsWith('v1=')).some((p) =>
    p.length === expected.length + 3 && timingSafeEqual(Buffer.from(p.slice(3)), Buffer.from(expected)));
}
  • أجب بأي رمز 2xx خلال 10 ثوانٍ. أي رد آخر، سواء كان خطأ أو إعادة توجيه أو عدم رد، تُعاد محاولته بفترات انتظار متزايدة لمدة 24 ساعة؛ ثم يصبح التسليم رسالة غير مُسلَّمة، يُحتفظ بها 7 أيام ويمكن إعادة إرسالها من الإعدادات.
  • تُسلَّم الأحداث مرة واحدة على الأقل ودون ترتيب محدد: تجاهل أي id عالجته من قبل.
  • تحمل الطلبات أيضًا ZeeDo-Event-Id وZeeDo-Event-Type وZeeDo-Delivery-Id. نقاط الاستقبال تعمل عبر https على المنفذ 443 باسم مضيف عام.
  • الأحداث: alert.fired وapproval.decided وapproval.requested وbilling.service_state_changed وbot.state_changed وbudget.threshold وconnection.created وconnection.error وconsent.recorded وmemory.note_created وpolicy.updated وrun.cancelled وrun.completed وrun.failed وrun.parked وtask.completed وtask.created.
  • للتحقق من نقطة الاستقبال، اضغط «إرسال اختبار» في الإعدادات ← API وWebhooks: يُرسَل تسليم واحد من النوع webhook.test بحقل data فارغ، موقَّع مثل أي تسليم آخر، أيًّا كانت الأحداث التي اخترتها. مرة واحدة في الدقيقة على الأكثر.

العمليات

224 عملية. يوضح مستند OpenAPI معاملات كل عملية وأجسامها ونطاقاتها وأخطاءها.

الاتصالات

  • GET/connectionsList connections
  • POST/connectionsCreate a connection
  • GET/connections/{id}Get a connection
  • PATCH/connections/{id}Change who may use a connection
  • DELETE/connections/{id}Remove a connection
  • PUT/connections/{id}/keyReplace a connection's key

الأجهزة

  • GET/machinesThe workspace's machine and the machine pill's figures

الأدوات

  • GET/toolsList tools
  • PATCH/tools/{id}Adjust an imported tool's classification

الاستحقاقات

  • GET/entitlementsGet the entitlements of the organisation

الأعضاء

  • GET/membersList members
  • POST/membersAdd a member
  • GET/members/{id}Get a member
  • PATCH/members/{id}Update a member - their role and their grants
  • DELETE/members/{id}Remove a member
  • POST/members/{id}/transfer-ownershipTransfer ownership of the organisation

الأعمال الروتينية

  • GET/automationsList a bot's automations
  • POST/automationsSchedule an automation
  • GET/automations/{id}Get an automation
  • PATCH/automations/{id}Pause, resume, cancel or change an automation
  • DELETE/automations/{id}Cancel an automation
  • POST/automations/{id}/adoptKeep a bot's tainted automation as the caller's own

البث المباشر

  • GET/streamServer-sent event stream

البوتات

  • GET/botsList bots
  • POST/botsCreate a bot
  • GET/bots/exportExport a workspace's bots and their budgets
  • GET/bots/{id}Get a bot, with its schedule and budget
  • PATCH/bots/{id}Change a bot - who it is, its model, schedule, budget and manager
  • DELETE/bots/{id}Delete a bot
  • POST/bots/{id}/pausePause a bot
  • PUT/bots/{id}/pinPin a bot for the caller
  • DELETE/bots/{id}/pinUnpin a bot for the caller
  • PUT/bots/{id}/look-outTurn a bot's look-out on or off
  • POST/bots/{id}/packages/emptyEmpty a bot's installed packages
  • PUT/bots/{id}/rules/{rule}/shapeSet what a person's rule checks
  • POST/bots/{id}/rules/{rule}/keysAdd an exact address to a person's rule
  • POST/bots/{id}/rule-questions/{q}/answerAnswer a question about a person's rule
  • POST/bots/{id}/rules/{rule}/undoUndo a rule kept from a person's message
  • POST/bots/{id}/rules/{rule}/put-backPut back a rule just undone
  • POST/bots/{id}/rules/{rule}/restoreBring back a stopped rule
  • POST/bots/{id}/rule-exceptions/{e}/voidTake back a step allowed once
  • POST/bots/{id}/messages/{m}/keep-as-ruleKeep a person's message as a rule
  • POST/bots/{id}/rules/{rule}/retireStop using a person's rule
  • POST/bots/{id}/rulesAdd a person's rule for a bot
  • PATCH/bots/{id}/rules/{rule}Change the words of a person's rule
  • POST/bots/{id}/kept-lines/{line}/keep-as-ruleKeep a line kept from the chat as a rule
  • POST/bots/{id}/resumeResume a paused bot
  • POST/bots/{id}/stopStop a bot (its open run ends, cancelled on blocker stopped; the bot returns to its schedule)
  • POST/bots/{id}/archiveArchive (fire) a bot
  • GET/bots/{id}/filesList a bot's files as its Files tab shows them
  • GET/bots/{id}/conversationRead a bot's chat record
  • GET/bots/{id}/conversation/searchSearch a bot's chat record
  • GET/bots/{id}/messagesRead a bot's conversation
  • POST/bots/{id}/messagesSend a message to a bot
  • POST/bots/{id}/runStart a run now
  • GET/bots/{id}/instructionsRead the instruction stack a bot runs on
  • POST/bots/{id}/brief-proposalsPropose a change of a bot's brief
  • PATCH/bots/{id}/approvals/{class}Change whether a bot needs approval for an action class

التكاليف

  • GET/costsCost breakdown, grouped by bot, model, tool, member or day

التنبيهات

  • GET/alertsList fired alerts

الجلسات

  • GET/sessionsList sessions
  • DELETE/sessions/{id}Revoke a session

الخزنة

  • GET/vault/entriesList the credential vault's entries
  • GET/vault/entries/{id}Get a vault entry
  • POST/vault/entries/{id}/revealReveal a credential to the person asking

الخصوصية

  • GET/privacy/erasureList erasure requests
  • POST/privacy/erasureRequest erasure of personal data
  • GET/privacy/erasure/{id}Get an erasure request
  • POST/privacy/exportRequest an export of the organisation
  • GET/privacy/exportsList exports
  • GET/privacy/exports/{id}Get an export
  • GET/privacy/exports/{id}/downloadDownload an export

الدعوات

  • GET/invitesList invitations
  • POST/invitesInvite a member
  • DELETE/invites/{id}Revoke an invitation
  • POST/invites/{id}/resendSend an invitation again

الذاكرة

  • GET/memory/searchSearch memory
  • GET/memory/factsList facts
  • POST/memory/notesCreate a note
  • DELETE/memory/notes/{id}Delete a note
  • GET/memory/procedures/{path}Get a procedure
  • PUT/memory/procedures/{path}Create or replace a procedure
  • GET/memory/episodes/{id}Get an episode
  • POST/memory/{kind}/{id}/pinPin a memory item
  • POST/memory/{kind}/{id}/retractRetract a memory item
  • POST/memory/erasuresErase memory
  • GET/memory/erasures/{id}Get a memory erasure
  • POST/memory/{kind}/{id}/confirmConfirm a note or a relation
  • GET/memory/capturesList the steps people showed or took over, waiting to be saved as flows
  • POST/memory/captures/{id}/saveSave captured steps as a flow
  • DELETE/memory/captures/{id}Discard captured steps

الفوترة

  • GET/billingThe organisation's billing overview
  • GET/billing/invoicesList the organisation's invoices
  • PUT/billing/detailsSave the organisation's billing details
  • POST/billing/checkout-sessionsOpen a Stripe Checkout for the first purchase or a reactivation
  • POST/billing/previewsPreview what a billing change costs now and at renewal
  • POST/billing/changesChange a plan, an add-on, managed keys or the interval
  • GET/billing/changes/{id}Get a billing change
  • DELETE/billing/changes/{id}Undo a scheduled change, or void a pending payment
  • PATCH/billing/workspaces/{workspace_id}Set a workspace's managed-key opt-in or recording days
  • POST/billing/cancellationCancel the subscription at the end of the paid period
  • DELETE/billing/cancellationRevoke a scheduled cancellation
  • POST/billing/portal-sessionsOpen Stripe's Customer Portal
  • POST/billing/payment-retryRetry the owed invoices now

القرارات

  • GET/decisionsList decisions

القواعد الدائمة

  • GET/standing-approvalsList standing approvals
  • POST/standing-approvalsCreate a standing approval
  • DELETE/standing-approvals/{id}Revoke a standing approval

المؤسسة

  • GET/orgGet the organisation
  • PATCH/orgUpdate the organisation
  • GET/org/eu-checksWhere the organisation's model checks are made
  • PUT/org/eu-checksKeep every model check in the EU, or stop keeping them there

المراقبات

  • GET/watchesList standing watches
  • GET/watches/{id}Get a standing watch
  • PATCH/watches/{id}Pause, resume or cancel a standing watch

المزوّدون

  • GET/providersList providers
  • POST/providersRegister a provider
  • GET/providers/{id}Get a provider
  • PATCH/providers/{id}Rename, disable or re-enable a provider, or price a custom endpoint's models
  • DELETE/providers/{id}Remove a provider
  • POST/providers/{id}/keysAdd or rotate a provider key
  • DELETE/providers/{id}/keys/{key_id}Revoke a provider key
  • POST/providers/{id}/probeValidate a provider's key, and probe a custom endpoint
  • GET/providers/key-recipientGet the public key a provider key is sealed to
  • GET/providers/defaultsGet the workspace's default models
  • PUT/providers/defaultsSet the workspace's default model for a purpose
  • DELETE/providers/defaults/{purpose}Clear a purpose's own model
  • GET/providers/chainsGet the fallback chains
  • PUT/providers/chainsReplace the fallback chains

المستدعي

  • GET/meDescribe the calling principal

الملخص اليومي

  • GET/alert-digestGet a workspace's scheduled digest
  • PUT/alert-digestSet or turn off a workspace's scheduled digest

الملفات

  • GET/artifactsList artifacts
  • DELETE/artifacts/{id}Delete an artefact
  • GET/artifacts/{id}/contentDownload an artefact's file
  • GET/artifacts/{id}/previewPreview the first lines, rows or blocks of an artefact's file

المهام

  • GET/tasksList tasks
  • POST/tasksGive a bot a task
  • PATCH/tasks/{id}Move or change a task

الموافقات

  • GET/approvalsList approvals
  • POST/approvals/{id}/decideDecide an approval (approved or denied, optionally granting a standing approval)

الموصّلات

  • GET/connectorsList connectors

النماذج

  • GET/modelsList the model catalog

الواجهات

  • GET/surfaces/{id}/hold/stepsThe steps so far of your own recording on a bot's screen
  • POST/surfaces/{id}/hold/capturePause or resume your own recording on a bot's screen
  • POST/surfaces/{id}/streamWatch a bot's live screen, or take it over

بطاقات التفاعل

  • GET/cardsList interaction cards
  • GET/cards/{id}Get an interaction card
  • POST/cards/{id}/answerAnswer an interaction card (answer, approve, deny or skip)

تسجيل الدخول الموحّد

  • GET/sso/connectionsList SSO connections
  • POST/sso/connections/syncRefresh the SSO connection mirror from WorkOS
  • POST/sso/portal-linkCreate a WorkOS admin portal link
  • PATCH/ssoChange the organisation's SSO settings

جلسات المتصفح

  • GET/browser-sessionsList browser sessions
  • GET/browser-sessions/{id}Get a browser session

حالات الإيقاف

  • POST/suspensions/{id}/appealAppeal a suspension

خوادم MCP

  • GET/mcp-serversList MCP servers
  • POST/mcp-serversRegister an MCP server
  • POST/mcp-servers/previewCheck an MCP server before registering it
  • DELETE/mcp-servers/{id}Remove an MCP server that has no tools
  • GET/mcp-servers/{id}/accessRead each bot's access to an MCP server
  • PUT/mcp-servers/{id}/accessSet bots' access to an MCP server
  • POST/mcp-servers/{id}/reopenOpen a rejected MCP server for another review
  • POST/mcp-servers/{id}/pausePause an MCP server
  • POST/mcp-servers/{id}/resumeResume a paused MCP server
  • POST/mcp-servers/{id}/turn-onTurn a rejected MCP server back on
  • POST/mcp-servers/{id}/approveApprove an MCP server
  • POST/mcp-servers/{id}/rejectReject an MCP server
  • POST/mcp-servers/{id}/discoverImport an MCP server's tools

سجل التدقيق

  • GET/auditList audit events
  • GET/audit/exportExport audit events

عمليات التشغيل

  • GET/runsList runs
  • GET/runs/{id}Get a run
  • GET/runs/{id}/stepsList the steps of a run
  • POST/runs/{id}/forkFork a run from a step, with a changed instruction
  • POST/runs/{id}/cancelCancel a run (stops its bot, or that job alone when it stands aside; it ends cancelled on blocker stopped)
  • POST/runs/{id}/recheckAsk a run parked because the AI service did not answer to check again now
  • GET/runs/{id}/artifacts/archiveDownload a run's files as one archive

قواعد التنبيه

  • GET/alert-rulesList alert rules
  • POST/alert-rulesCreate an alert rule
  • GET/alert-rules/{id}Get an alert rule
  • PATCH/alert-rules/{id}Change an alert rule's channels or settings
  • DELETE/alert-rules/{id}Remove an alert rule

لوحات المتابعة

  • GET/dashboards/spendThe organisation's spend, by workspace, team, model or member
  • GET/dashboards/runsHow the organisation's jobs went, per bot and per trigger, with approval waits
  • GET/dashboards/toolsTool calls, errors and latency per connector and tool, and per hour

ما لاحظته البوتات

  • POST/findings/{id}/helpAsk the bot to help with a finding
  • POST/findings/{id}/dismissDismiss a finding
  • POST/findings/{id}/muteStop the bot telling this kind of finding

مساحات العمل

  • GET/workspacesList workspaces
  • POST/workspacesCreate a workspace
  • GET/workspaces/{id}Get a workspace
  • PATCH/workspaces/{id}Update a workspace
  • POST/workspaces/{id}/uploadsStore a file to hand to a bot
  • DELETE/workspaces/{id}/uploads/{upload_id}Remove a file before it is sent
  • GET/workspaces/{id}/budgetGet the workspace budget a person set
  • PUT/workspaces/{id}/budgetSet, change or remove the workspace budget
  • GET/workspaces/{id}/report-recipientsGet who gets a copy of the workspace's monthly report
  • PUT/workspaces/{id}/report-recipientsSet who gets a copy of the workspace's monthly report
  • GET/workspaces/{id}/usageGet the share of the AI usage the plan includes and its dates
  • GET/workspaces/{id}/activityRead the workspace's activity feed
  • GET/workspaces/{id}/egressThe workspace's egress allowlist and host deny list
  • PUT/workspaces/{id}/egressReplace the workspace's egress allowlist and host deny list
  • GET/workspaces/{id}/policyGet the workspace policy
  • PATCH/workspaces/{id}/policyChange the workspace policy
  • GET/workspaces/{id}/policy-documentGet the workspace policy document
  • PUT/workspaces/{id}/policy-documentReplace the workspace policy document
  • GET/workspaces/{id}/standingThe workspace's standing - its suspension in force and its fair-use flag

مفاتيح API

  • GET/api-keysList API keys
  • POST/api-keysCreate an API key
  • DELETE/api-keys/{id}Revoke an API key
  • POST/api-keys/{id}/rotateRotate an API key

مقترحات وصف المهمة

  • GET/brief-proposalsList the proposed changes of bots' briefs
  • GET/brief-proposals/{id}Get a proposed change of a bot's brief
  • POST/brief-proposals/{id}/answerAnswer a proposed change of a brief, or a rule card

Webhooks

  • GET/webhooksList the organisation's webhook endpoint
  • POST/webhooksRegister the organisation's webhook endpoint
  • GET/webhooks/{id}Read the webhook endpoint
  • PATCH/webhooks/{id}Change the webhook endpoint
  • DELETE/webhooks/{id}Remove the webhook endpoint
  • POST/webhooks/{id}/rotate-secretRotate the webhook signing secret
  • GET/webhooks/{id}/deliveriesList the webhook deliveries and dead letters
  • POST/webhooks/{id}/deliveries/{delivery_id}/replaySend a dead letter again
  • POST/webhooks/{id}/testSend a test delivery

المسارات والملخصات وأمثلة الشيفرة هي كلمات مستند OpenAPI نفسه وتبقى بالإنجليزية، كي يقول العميل البرمجي المُنشأ منه الشيء نفسه.