ডেভেলপার
ZeeDo API
সর্বশেষ আপডেট 2026-11-07।OpenAPI 3.1224টি অপারেশনOpenAPI 3.1 নথি ডাউনলোড করুন
ZeeDo-তে একজন মানুষ যা কিছু করতে পারেন, Pro ও তার ওপরের প্ল্যানে একটি প্রোগ্রাম API দিয়ে তা করতে পারে; Starter-এর কী শুধু পড়তে পারে, আর Free-তে কোনো কী নেই। ওয়ার্কস্পেস মুছে ফেলা এবং যেসব কাজে একজন মানুষকে নিশ্চিত করতে হয় যে তিনিই করছেন, সেগুলো ব্রাউজারেই থাকে।
নথিটি থেকে একটি ক্লায়েন্ট তৈরি করুন: পণ্যটি এই নথি অনুযায়ীই তৈরি ও পরীক্ষা করা হয়।
দ্রুত শুরু
কী, নিয়মকানুন ও সীমা
সেটিংস → API ও ওয়েবহুক-এ একটি কী তৈরি করুন (একজন মালিক আগে নিশ্চিত করেন যে তিনিই করছেন), তারপর সেটিকে bearer token হিসেবে দিয়ে API কল করুন। মূল 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 problem document:
type,title,status,detailএবং প্রত্যাখ্যাত ফিল্ডের জন্য JSON pointer-সহerrors[]। - তালিকা পাতায় ভাগ হয়
limit(সর্বোচ্চ 200) ওnext_cursorদিয়ে। - প্রতিটি POST-এর সঙ্গে একটি
Idempotency-Keyহেডার পাঠান: 24 ঘণ্টার মধ্যে একই অনুরোধ এলে প্রথমটির উত্তরই ফেরত আসে। - প্রতি কী-তে মিনিটে 600টি অনুরোধ ও 10টি খোলা স্ট্রিম,
RateLimit-*হেডারসহ।
ওয়েবহুক
আপনার বেছে নেওয়া ইভেন্টের স্বাক্ষরিত ডেলিভারি
একটি প্রতিষ্ঠান একটি এন্ডপয়েন্ট নিবন্ধন করে (সেটিংস → API ও ওয়েবহুক, অথবা POST /webhooks) এবং তার ইভেন্টগুলো বেছে নেয়। প্রতিটি ইভেন্ট JSON-এর একটি POST, যাতে id, ধরন ও সময় থাকে — কখনো কোনো মানুষের নাম, ইমেইল বা IP ঠিকানা নয়, যা আপনি একটি কী দিয়ে API থেকে পড়ে নেন।
{
"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=<স্বাক্ষর>, যেখানে স্বাক্ষর হলো আপনার এন্ডপয়েন্টের সিক্রেট দিয়ে <t>.<মূল বডি>-এর hex HMAC-SHA256। সিক্রেট বদলানোর পর আগেরটিও 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)));
}- 10 সেকেন্ডের মধ্যে যেকোনো 2xx দিয়ে উত্তর দিন। অন্য যেকোনো কিছু — ত্রুটি, রিডাইরেক্ট, কোনো উত্তর না পাওয়া — হলে 24 ঘণ্টা ধরে ক্রমবর্ধমান বিরতিতে আবার চেষ্টা করা হয়; তারপর ডেলিভারিটি ডেড লেটার হয়, 7 দিন রাখা হয় এবং সেটিংস থেকে আবার পাঠানো যায়।
- ডেলিভারি অন্তত একবার এবং নির্দিষ্ট কোনো ক্রম ছাড়া হয়: যে
idআগেই সামলেছেন তা বাদ দিন। - অনুরোধে
ZeeDo-Event-Id,ZeeDo-Event-TypeওZeeDo-Delivery-Id-ও থাকে। এন্ডপয়েন্ট হতে হবে পাবলিক হোস্ট নামে পোর্ট 443-এ https। - ইভেন্ট:
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 ও ওয়েবহুক-এ “একটি পরীক্ষা পাঠান” চাপুন:
webhook.testধরনের একটি ডেলিভারি, খালিdataসহ, অন্য সবগুলোর মতোই স্বাক্ষরিত, এবং আপনি যে ইভেন্টই বেছে নিন না কেন পাঠানো হয়। মিনিটে সর্বোচ্চ একবার।
অপারেশন
224টি অপারেশন. OpenAPI নথিতে প্রতিটির প্যারামিটার, বডি, পরিসর ও ত্রুটি দেওয়া আছে।
অডিট লগ
- GET
/auditList audit events - GET
/audit/exportExport audit events
অনুমোদন
- GET
/approvalsList approvals - POST
/approvals/{id}/decideDecide an approval (approved or denied, optionally granting a standing approval)
অ্যাপ
- GET
/connectorsList connectors
আমন্ত্রণ
- GET
/invitesList invitations - POST
/invitesInvite a member - DELETE
/invites/{id}Revoke an invitation - POST
/invites/{id}/resendSend an invitation again
এআই সরবরাহকারী
- 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
/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
ওয়েবহুক
- 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
কলকারী
- GET
/meDescribe the calling principal
কাজ
- GET
/tasksList tasks - POST
/tasksGive a bot a task - PATCH
/tasks/{id}Move or change a task
কাজের বিবরণের প্রস্তাব
- 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
কার্ড
- GET
/cardsList interaction cards - GET
/cards/{id}Get an interaction card - POST
/cards/{id}/answerAnswer an interaction card (answer, approve, deny or skip)
খরচের হিসাব
- GET
/costsCost breakdown, grouped by bot, model, tool, member or day
গোপনীয়তা
- 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
/toolsList tools - PATCH
/tools/{id}Adjust an imported tool's classification
ড্যাশবোর্ড
- 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
দফা
- 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-digestGet a workspace's scheduled digest - PUT
/alert-digestSet or turn off a workspace's scheduled digest
নিয়মিত কাজ
- 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
/watchesList standing watches - GET
/watches/{id}Get a standing watch - PATCH
/watches/{id}Pause, resume or cancel a standing watch
প্রতিষ্ঠান
- 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
/entitlementsGet the entitlements of the organisation
ফাইল
- 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
/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
বটের লক্ষ করা বিষয়
- 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
/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
/browser-sessionsList browser sessions - GET
/browser-sessions/{id}Get a browser session
মডেল
- GET
/modelsList the model catalog
মেশিন
- GET
/machinesThe workspace's machine and the machine pill's figures
লগইন তথ্যের সিন্দুক
- 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
/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
/alertsList fired alerts
সতর্কবার্তার নিয়ম
- 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
/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
/streamServer-sent event stream
সারফেস
- 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
/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
/decisionsList decisions
সেশন
- GET
/sessionsList sessions - DELETE
/sessions/{id}Revoke a session
স্থগিতাদেশ
- POST
/suspensions/{id}/appealAppeal a suspension
স্থায়ী নিয়ম
- GET
/standing-approvalsList standing approvals - POST
/standing-approvalsCreate a standing approval - DELETE
/standing-approvals/{id}Revoke a standing approval
স্মৃতি
- 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
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
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
পাথ, সারাংশ ও কোডের উদাহরণ OpenAPI নথির নিজের কথা এবং ইংরেজিতেই থাকে, যাতে এ থেকে তৈরি ক্লায়েন্টও একই কথা বলে।