# IMP Docs > Documentation for IMP — the Intelligence Management Platform. ## Docs - [Analytics](https://docs.intelligence-management-platform.com/administration/analytics.md): Organization-wide usage dashboard: KPI strip, trend chart, breakdowns by agent/user/team/role/project/routine, CSV export, and LiteLLM admin link. - [API keys and personal token](https://docs.intelligence-management-platform.com/administration/api-keys.md): Org-level API keys at /keys and your personal bearer token at /token — two separate credentials for different use cases. - [Budgets](https://docs.intelligence-management-platform.com/administration/budgets.md): Set and manage spending limits per user, role, team, project, or agent — enforced by LiteLLM. - [Models](https://docs.intelligence-management-platform.com/administration/models.md): Browse the read-only LiteLLM model catalog and open the LiteLLM admin UI for model management. - [Theme](https://docs.intelligence-management-platform.com/administration/theme.md): White-label IMP for your organization: edit CSS variables, preview changes live, then publish to all users. - [Users & access overview](https://docs.intelligence-management-platform.com/administration/users-access/overview.md): Manage who can sign in and what they can do: the Users · Roles · Teams surface at /users. - [Roles](https://docs.intelligence-management-platform.com/administration/users-access/roles.md): Create and configure roles with the permission matrix: seven right areas, each with None / Read / Write. - [Teams](https://docs.intelligence-management-platform.com/administration/users-access/teams.md): Create and manage teams for grouping users, attributing costs, and organizing shared content. - [Variables](https://docs.intelligence-management-platform.com/administration/variables.md): Store secrets and configuration values server-side; agents, models, and integrations reference them by name. - [Compact a session](https://docs.intelligence-management-platform.com/api-reference/agents/compact-a-session.md): Summarises older messages in the session into a compact checkpoint message, reducing the context window footprint. Returns a 409 if a response is currently streaming for the session. Returns a 422 if the session history is too short to benefit from compaction. The `x-exulu-model-override` header is… - [Generate follow-up suggestions](https://docs.intelligence-management-platform.com/api-reference/agents/generate-follow-up-suggestions.md): Generates up to three short follow-up prompts based on the most recent conversation exchange. Requires `suggestions_enabled` to be set on the agent; returns 400 otherwise. This call is stateless — it does not read from or write to a session. The agent's `rights_mode` controls whether authentication… - [Run an agent](https://docs.intelligence-management-platform.com/api-reference/agents/run-an-agent.md): Sends a message to an agent instance and returns the response. When the `stream` header is `true`, the response is an AI SDK UIMessage stream over SSE (text/event-stream); otherwise a sync JSON response is returned. The agent's `rights_mode` controls whether an API key or session JWT is required — p… - [Create a share link](https://docs.intelligence-management-platform.com/api-reference/artifacts/create-a-share-link.md): Creates a named share link for an S3 object. `auth_mode` controls access: `public` (share name is the capability, no further auth), `password` (caller supplies a password hashed with bcrypt), `regular` (standard IMP RBAC applies). For `regular` shares, pass `rbac` to configure visibility. Returns 40… - [Delete a share link](https://docs.intelligence-management-platform.com/api-reference/artifacts/delete-a-share-link.md): Removes the share link and any associated RBAC entries. Only the creator may delete their own share links. - [Get share link content](https://docs.intelligence-management-platform.com/api-reference/artifacts/get-share-link-content.md): Serves the raw file bytes from S3. Authentication depends on `auth_mode`: `public` — no auth; `password` — pass the password in `x-share-password`; `regular` — standard IMP API key or bearer JWT, RBAC-checked. Returns 410 when the link has expired. - [Get share link metadata](https://docs.intelligence-management-platform.com/api-reference/artifacts/get-share-link-metadata.md): Returns low-sensitivity metadata for a share link — `auth_mode`, `expires_at`, `filename`, `content_type`, and `is_html` — without revealing the password hash or file bytes. Public (no authentication required); the share name is the capability. - [List share links for a file](https://docs.intelligence-management-platform.com/api-reference/artifacts/list-share-links-for-a-file.md): Returns all share links created by the calling user for a given S3 key. The `s3key` is normalised (bucket stripped if present) before querying. - [Bulk-upsert entity budgets](https://docs.intelligence-management-platform.com/api-reference/budgets/bulk-upsert-entity-budgets.md): Creates or updates LiteLLM tag budgets for multiple entities of the same type in a single call. Each entity ID is mapped to a tag (`{entityType}_id_{entityId}`) and upserted via the LiteLLM admin API. Results include per-entity success/error status. Requires `super_admin` or `budget_management` writ… - [Delete an entity budget](https://docs.intelligence-management-platform.com/api-reference/budgets/delete-an-entity-budget.md): Removes the LiteLLM tag budget for a single entity and invalidates the local cache. Returns 204 on success. Requires `super_admin` or `budget_management` write. - [Get budget settings](https://docs.intelligence-management-platform.com/api-reference/budgets/get-budget-settings.md): Returns the global budget settings stored in Postgres, including the default per-user budget configuration and the UI display preferences. Requires `super_admin` or a role with `budget_management` read or write access. - [Get LiteLLM tag-activity analytics](https://docs.intelligence-management-platform.com/api-reference/budgets/get-litellm-tag-activity-analytics.md): Queries LiteLLM's `/tag/daily/activity` endpoint, projects the response into a stable shape, and returns daily spend/token breakdowns with per-tag and per-model aggregates. The `tag_prefix` parameter is an IMP convenience: it resolves all tags matching the prefix via `/tag/list` before forwarding to… - [Get my budget](https://docs.intelligence-management-platform.com/api-reference/budgets/get-my-budget.md): Returns the calling user's current budget view — spent amount, limit, and reset date — for the in-chat budget indicator. Returns `null` when `show_user_budget_in_chat` is disabled or the user has no active budget. Any authenticated user may call this endpoint. - [Update budget settings](https://docs.intelligence-management-platform.com/api-reference/budgets/update-budget-settings.md): Persists global budget settings. Enables or disables the default per-user budget, sets the global limit and reset period, and controls whether the budget indicator is shown in the chat UI. Requires `super_admin` or `budget_management` write. - [Upsert an entity budget](https://docs.intelligence-management-platform.com/api-reference/budgets/upsert-an-entity-budget.md): Creates or updates the LiteLLM tag budget for a single entity. The tag is `{entityType}_id_{entityId}`. On success, returns the live budget info fetched from LiteLLM. Requires `super_admin` or `budget_management` write. - [Delete a user (GDPR Art. 17)](https://docs.intelligence-management-platform.com/api-reference/compliance/delete-a-user-gdpr-art-17.md): Hard-deletes the target user and all personally identifiable data in a single database transaction: messages, sessions, feedback, prompt_favorites, tracking, RBAC entries, and the users row. After the transaction commits, S3 objects under `user_{id}/` are deleted best-effort (failure is logged but d… - [Export user data (GDPR Art. 15)](https://docs.intelligence-management-platform.com/api-reference/compliance/export-user-data-gdpr-art-15.md): Returns a ZIP archive containing every personal-data record held for the target user: `user_data.json` (account row with password/API-key hashes stripped), `sessions.json` (chat sessions with messages inlined), `feedback.json`, `prompt_favorites.json`, and `tracking.json`. Callers must be `super_adm… - [Conventions](https://docs.intelligence-management-platform.com/api-reference/graphql/conventions.md): The generated CRUD operation set, filter operators, sorting, pagination, and RBAC behavior shared by every type in the IMP GraphQL schema. - [Agent messages](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/agent-messages.md): The agent_message type stores individual messages within a conversation session. - [Agent sessions](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/agent-sessions.md): The agent_session type represents a conversation thread between a user and an agent. - [Agents](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/agents.md): The agent type represents an AI agent configuration — its model, instructions, tools, skills, and access rules. - [Context presets](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/context-presets.md): The context_preset type stores a named, reusable selection of knowledge contexts that users can pin to a session. - [Entity type settings](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/entity-type-settings.md): The entity_type_setting type controls per-context-type behaviours such as which entity categories are active for a knowledge context. - [Eval runs](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/eval-runs.md): The eval_run type represents a configured evaluation run — binding an agent, eval set, scoring criteria, and test case list. - [Eval sets](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/eval-sets.md): The eval_set type is a named collection of test cases used to organise evaluation work. - [Feedback](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/feedback.md): The feedback type records user ratings and status on individual agent responses. - [Job results](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/job-results.md): The job_result type stores the persisted outcome of a background queue job such as an eval run or workflow execution. - [Models](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/models.md): The model type represents a configured LLM endpoint with its provider binding, rate limits, and budget controls. - [Platform configurations](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/platform-configurations.md): The platform_configuration type stores named platform-wide settings as key-value pairs. - [Projects](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/projects.md): The project type represents a shared workspace that groups agents, knowledge, and sessions for a team. - [Prompt favorites](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/prompt-favorites.md): The prompt_favorite type records a user's bookmark on a prompt library item. - [Prompt library](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/prompt-library.md): The prompt_library_item type stores a reusable prompt template that can be shared across agents and users. - [Roles](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/roles.md): The role type defines a named permission set controlling what a user can read or write across the platform. - [Skills](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/skills.md): The skill type represents a versioned tool bundle — a package of code and configuration that agents can call as a tool. - [Teams](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/teams.md): The team type represents a named group of users used for resource access control and budget scoping. - [Test cases](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/test-cases.md): The test_case type stores a single evaluation scenario — input messages, expected output, and expected tool usage. - [Tracking](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/tracking.md): The tracking type stores aggregated usage statistics for platform operations such as agent runs, tool calls, and knowledge retrievals. - [Transcription jobs](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/transcription-jobs.md): The transcription_job type tracks an audio or meeting recording through the transcription pipeline. - [Users](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/users.md): The user type represents a platform account — human user or API service account. - [Variables](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/variables.md): The variable type stores named configuration values and secrets used by agents, models, and integrations. - [Workflow templates](https://docs.intelligence-management-platform.com/api-reference/graphql/core-types/workflow-templates.md): The workflow_template type defines a multi-step automated routine that an agent executes sequentially. - [Dynamic types](https://docs.intelligence-management-platform.com/api-reference/graphql/dynamic-types.md): How each ExuluContext becomes a generated items type with CRUD, vector search, chunk management, and entity operations in your deployment's schema. - [GraphQL API](https://docs.intelligence-management-platform.com/api-reference/graphql/introduction.md): One GraphQL endpoint over every IMP resource — agents, sessions, knowledge, prompts, evals, routines — with a schema generated from your deployment. - [Vector search](https://docs.intelligence-management-platform.com/api-reference/graphql/vector-search.md): The generated VectorSearch query in depth — cosine, hybrid, and full-text retrieval with cutoffs, context expansion, and entity filters. - [Edit images](https://docs.intelligence-management-platform.com/api-reference/media/edit-images.md): Edits one or more reference images using a text prompt and uploads the results to S3. Reference image keys must belong to the calling user's S3 folder or the session's images prefix — the backend enforces this with a prefix check. An optional mask image key may be provided for inpainting. The chosen… - [Generate images](https://docs.intelligence-management-platform.com/api-reference/media/generate-images.md): Generates one or more images from a text prompt using an image-generation model from `config.litellm.yaml`. Generated images are uploaded to S3 under the session's prefix and a presigned URL is returned for each. Requires write access to the session. Returns 503 when LiteLLM, S3, or image-generation… - [Get image generation history](https://docs.intelligence-management-platform.com/api-reference/media/get-image-generation-history.md): Returns all image generation records for a given session and tool call, ordered oldest first. Includes presigned URLs for all generated images and reference images. Requires read access to the session. - [Select generated images](https://docs.intelligence-management-platform.com/api-reference/media/select-generated-images.md): Marks one or more generated images as selected and appends a system message to the session so the agent sees the selection on its next turn. Each selection identifies a `generationId` and an `imageKey` from within that generation. The image key must be part of the referenced generation row. Requires… - [Synthesize speech](https://docs.intelligence-management-platform.com/api-reference/media/synthesize-speech.md): Converts text to speech using the model configured via `TTS_MODEL` and the voice from `TTS_VOICE`. Returns MP3 audio bytes (`audio/mpeg`). Input is capped at 4,000 characters. Returns 503 when `EXULU_USE_LITELLM`, `TTS_MODEL`, or `TTS_VOICE` are not set. - [Transcribe audio](https://docs.intelligence-management-platform.com/api-reference/media/transcribe-audio.md): Transcribes an audio file using the Whisper model configured via `TRANSCRIPTION_MODEL`. Accepts multipart/form-data with a single `file` field; the MIME type must start with `audio/`. Maximum file size is 25 MB. Returns 503 when `EXULU_USE_LITELLM` or `TRANSCRIPTION_MODEL` are not set. - [LiteLLM gateway](https://docs.intelligence-management-platform.com/api-reference/rest/gateways-litellm.md): OpenAI-compatible pass-through at /litellm/{project} — call any model in your LiteLLM config from any OpenAI-compatible SDK. - [GDPR / DSGVO operator endpoints](https://docs.intelligence-management-platform.com/api-reference/rest/gdpr.md): Data-subject access and erasure endpoints for platform operators. Both require super_admin. - [REST API](https://docs.intelligence-management-platform.com/api-reference/rest/introduction.md): REST endpoints for agent runs, media processing, session files, and system utilities. GraphQL covers entity CRUD; REST covers everything that streams, uploads, or generates. - [MCP endpoint](https://docs.intelligence-management-platform.com/api-reference/rest/mcp.md): Streamable HTTP MCP endpoint for exposing IMP agents to Claude Desktop, Cursor, Continue.dev, and any MCP-compatible client. - [Delete a session file](https://docs.intelligence-management-platform.com/api-reference/sessions/delete-a-session-file.md): Deletes a single file from the session's S3 prefix. The `key` query parameter must belong to the session prefix — the backend enforces a prefix check and returns 403 if it does not. Requires write access to the session. - [Get a presigned upload URL](https://docs.intelligence-management-platform.com/api-reference/sessions/get-a-presigned-upload-url.md): Returns a presigned S3 PUT URL and the full S3 key for uploading a single file into the session's prefix. The caller should PUT the file bytes directly to `uploadUrl`, then call `/sessions/{sessionId}/files/sync-to-sandbox` with the returned `key`. Requires write access to the session. - [List session files](https://docs.intelligence-management-platform.com/api-reference/sessions/list-session-files.md): Lists all files stored in the session's S3 prefix, sorted most-recent first. Returns presigned download URLs for each file. Requires read access to the session and S3 file-upload configuration on the deployment. - [Preview a file as PDF](https://docs.intelligence-management-platform.com/api-reference/sessions/preview-a-file-as-pdf.md): Converts an Office binary file (.docx, .xlsx, .pptx, etc.) in the session's S3 prefix to PDF via LibreOffice and returns the PDF bytes. Results are cached by S3 ETag — subsequent requests for the same file version are served from disk. The JWT may be passed as an `?auth=` query parameter (instead of… - [Sync an uploaded file into the sandbox](https://docs.intelligence-management-platform.com/api-reference/sessions/sync-an-uploaded-file-into-the-sandbox.md): After a successful Uppy upload, call this endpoint with the S3 key to materialise the file in the agent's sandbox filesystem so the agent can read it on its next tool call. No-op if the sandbox is not currently active. Requires write access to the session and the key must belong to the session prefi… - [Delete a skill file or folder](https://docs.intelligence-management-platform.com/api-reference/skills/delete-a-skill-file-or-folder.md): Deletes a single file (pass `?key=`) or all files under a prefix (pass `?prefix=`). Both must start with `skills/{skillId}/`; otherwise a 403 is returned. - [Diff two skill versions](https://docs.intelligence-management-platform.com/api-reference/skills/diff-two-skill-versions.md): Compares two versions of a skill and returns per-file status (`added`, `removed`, `modified`). Unchanged files are filtered out of the response. For modified text files (≤ 500 KB total) also returns a unified diff string. Files with non-text extensions are listed as `modified` without a diff. - [Download a skill by name](https://docs.intelligence-management-platform.com/api-reference/skills/download-a-skill-by-name.md): Streams all files for the requested version as a `.skill` zip with a single wrapper folder (`{name}/`) so the archive round-trips cleanly through the uploader. Defaults to `current_version` when `version` is omitted or `latest`. Requires read access to the skill. - [Download a skill version as a zip](https://docs.intelligence-management-platform.com/api-reference/skills/download-a-skill-version-as-a-zip.md): Bundles every file in the requested skill version into a zip. Pass `?format=skill` to produce a `.skill` archive with a wrapper folder (`{name}/`) for round-tripping through the uploader. Defaults to the current version. - [Download the bootstrap skill](https://docs.intelligence-management-platform.com/api-reference/skills/download-the-bootstrap-skill.md): Returns a zip containing the `imp-skills` bootstrap skill — `SKILL.md`, `references/clients.json`, and `scripts/imp` (executable). This endpoint is public (no authentication required) so any agent client can self-install it without a logged-in session. - [Extract a staged skill bundle](https://docs.intelligence-management-platform.com/api-reference/skills/extract-a-staged-skill-bundle.md): Fetches a staged bundle from S3, validates it (SKILL.md presence, path safety, size and count caps), and extracts it to `skills/{skillId}/v1/`. Updates the skill row's `s3folder`, `current_version`, and `history`. The `stagingKey` must belong to the authenticated user's staging prefix; the call fail… - [Get a presigned URL for a skill file](https://docs.intelligence-management-platform.com/api-reference/skills/get-a-presigned-url-for-a-skill-file.md): Returns a presigned PUT URL for uploading a single file at an exact path within the skill's current version. The `filePath` is sanitised (leading slashes stripped, path traversal blocked) before the S3 key is constructed. - [Get a presigned URL for staging a skill bundle](https://docs.intelligence-management-platform.com/api-reference/skills/get-a-presigned-url-for-staging-a-skill-bundle.md): Returns a presigned PUT URL targeting a per-user staging area in S3. After the upload completes, call `/skills/{skillId}/init-from-upload` to extract the bundle. Accepts `.zip`, `.md`, or `.skill` extensions. - [Get a skill file](https://docs.intelligence-management-platform.com/api-reference/skills/get-a-skill-file.md): Returns a presigned download URL for the specified S3 key. For small text files (≤ 200 KB, recognised extensions like `.md`, `.py`, `.json`) also returns the raw content inline to avoid a second round trip. The key must start with `skills/{skillId}/`. - [Get skill metadata by name](https://docs.intelligence-management-platform.com/api-reference/skills/get-skill-metadata-by-name.md): Returns metadata for a single skill (name, description, tags, current_version, history). Requires read access to the skill. - [Initialise a skill](https://docs.intelligence-management-platform.com/api-reference/skills/initialise-a-skill.md): Called immediately after a skill row is created via GraphQL. Writes a starter `SKILL.md` to S3 and sets `s3folder`, `current_version`, and `history` on the skill row. Returns the S3 key of the created file. - [List skill files](https://docs.intelligence-management-platform.com/api-reference/skills/list-skill-files.md): Lists all files in a skill version and returns a virtual folder tree reconstructed from the flat S3 listing. Defaults to `current_version` when `version` is not supplied. - [List skills](https://docs.intelligence-management-platform.com/api-reference/skills/list-skills.md): Returns all skills the caller can read, filtered by RBAC. Optionally filter by tag. The response is the agent-facing catalog shape (name, description, tags, current_version, updated_at). - [Publish a skill (agent-facing)](https://docs.intelligence-management-platform.com/api-reference/skills/publish-a-skill-agent-facing.md): Publishes a skill bundle from an agent. If the name does not exist, creates a new skill at v1 and requires `?visibility=public|private`. If the name exists and the caller has write access, appends a new version. Returns 403 when the name exists but the caller lacks write access; returns 409 when the… - [Rename (move) a skill file](https://docs.intelligence-management-platform.com/api-reference/skills/rename-move-a-skill-file.md): Copies `sourceKey` to a new path within the current version and deletes the original — effectively a rename or move. `destPath` is sanitised before use. `sourceKey` must start with `skills/{skillId}/`. - [Snapshot the current skill version](https://docs.intelligence-management-platform.com/api-reference/skills/snapshot-the-current-skill-version.md): Copies all files in `current_version` into a new version slot, then advances `current_version`. Editing then happens in the new slot while prior versions remain immutable. Fails with 400 if the current version has no files. - [Check authentication](https://docs.intelligence-management-platform.com/api-reference/system/check-authentication.md): Returns whether the request is authenticated. Does not require authentication to call — unauthenticated callers receive `{ authenticated: false }` rather than a 401. Useful for verifying credentials before a chat session. - [Retrieve platform configuration](https://docs.intelligence-management-platform.com/api-reference/system/retrieve-platform-configuration.md): Returns selected `ExuluApp` configuration options needed by the frontend: auth mode, feature entitlements, MCP status, telemetry, file-upload endpoint, worker health, LiteLLM status, and Recall integration. No authentication is required. - [Retrieve theme configuration](https://docs.intelligence-management-platform.com/api-reference/system/retrieve-theme-configuration.md): Returns the platform's active theme (light and dark colour maps) as stored in `platform_configurations`. Returns empty `light`/`dark` objects when the deployment is not licensed for custom branding or when no theme has been configured. No authentication is required. - [Abort a multipart upload](https://docs.intelligence-management-platform.com/api-reference/uploads/abort-a-multipart-upload.md): Aborts the multipart upload and removes any already-uploaded parts from S3. - [Complete a multipart upload](https://docs.intelligence-management-platform.com/api-reference/uploads/complete-a-multipart-upload.md): Sends the CompleteMultipartUpload command to S3 with the list of part ETags. The `parts` array must contain `{ PartNumber, ETag }` objects for every uploaded part. - [Delete an S3 object](https://docs.intelligence-management-platform.com/api-reference/uploads/delete-an-s3-object.md): Deletes a single object from S3. The `key` must include the bucket as the first segment. Access is restricted to the owner's prefix, super admins, and API-type users. Also accepts the `internal-key` header (set to `INTERNAL_SECRET`) for server-to-server calls. - [Get a presigned download URL](https://docs.intelligence-management-platform.com/api-reference/uploads/get-a-presigned-download-url.md): Returns a presigned GET URL for an S3 object. The `key` must include the bucket as the first path segment (format returned by `/s3/list`). Access is restricted to the owner's prefix, super admins, and API-type users. Also accepts the `internal-key` header (set to `INTERNAL_SECRET`) for server-to-ser… - [Get a presigned single-part PUT URL](https://docs.intelligence-management-platform.com/api-reference/uploads/get-a-presigned-single-part-put-url.md): Returns a presigned S3 PUT URL for uploading a file directly from the browser. Generates a UUID-prefixed key under `user_{id}/` (or `global/` when the `global` header is set). Used by the Uppy AwsS3 plugin. Accepts the standard API key or session JWT. - [Get STS federation token](https://docs.intelligence-management-platform.com/api-reference/uploads/get-sts-federation-token.md): Returns temporary AWS STS credentials (via `GetFederationToken`) that give the holder `s3:PutObject` permission on the configured bucket. The token is cached by the browser for `expiresIn` seconds. Used by the Uppy AwsS3 plugin for direct multipart uploads. - [Initiate a multipart upload](https://docs.intelligence-management-platform.com/api-reference/uploads/initiate-a-multipart-upload.md): Creates an S3 multipart upload and returns the `uploadId` and full key. The full key (including user/global prefix and any S3 general prefix) must be passed back on all subsequent part-signing and completion calls. - [List S3 objects](https://docs.intelligence-management-platform.com/api-reference/uploads/list-s3-objects.md): Lists objects under the calling user's S3 prefix (or `global/` when the `global` header is set). Supports a `search` query for substring filtering and a `continuationToken` for pagination. Returns up to 9 objects per page when not searching. Also accepts the `internal-key` header (set to `INTERNAL_S… - [List uploaded parts](https://docs.intelligence-management-platform.com/api-reference/uploads/list-uploaded-parts.md): Lists all parts already uploaded for a multipart upload. Handles S3 pagination automatically. - [Sign a multipart upload part](https://docs.intelligence-management-platform.com/api-reference/uploads/sign-a-multipart-upload-part.md): Returns a presigned URL for uploading a single part. `partNumber` must be an integer between 1 and 10,000. The `key` query parameter must be the full key returned by the multipart-create call. - [Access](https://docs.intelligence-management-platform.com/building/agents/access-and-safety.md): Share agents with users, roles, and teams using RBAC sharing modes. - [Agents overview](https://docs.intelligence-management-platform.com/building/agents/overview.md): Manage your organization's agent list: create, search, duplicate, and open the workbench. - [Tools and skills](https://docs.intelligence-management-platform.com/building/agents/tools-and-skills.md): Enable and configure tools per agent: parameter bindings, sub-agents, and skills toggles. - [Agent workbench](https://docs.intelligence-management-platform.com/building/agents/workbench.md): All eight workbench sections for configuring an agent: basics, instructions, knowledge, tools, chat experience, appearance, access, and developer. - [Evals overview](https://docs.intelligence-management-platform.com/building/evals/overview.md): Eval sets group test cases and run them against an agent to produce scored results — browse the list, create a set, and understand the evals area. - [Runs](https://docs.intelligence-management-platform.com/building/evals/runs.md): Configure eval runs, read the results matrix, and manage the eval job queue. - [Test cases](https://docs.intelligence-management-platform.com/building/evals/test-cases.md): Test cases define the conversation inputs and expected outputs that IMP replays when running an eval — manage them globally in the library or per set. - [Feedback](https://docs.intelligence-management-platform.com/building/feedback.md): Review user feedback on agent responses — filters, conversation view, and delete — in the Feedback review console. - [Entities](https://docs.intelligence-management-platform.com/building/knowledge/entities.md): Extract structured entities from knowledge items to enable entity-aware retrieval. - [Items](https://docs.intelligence-management-platform.com/building/knowledge/items.md): Create, search, filter, bulk-process, and archive items in a knowledge context. - [Knowledge overview](https://docs.intelligence-management-platform.com/building/knowledge/overview.md): The context library: how contexts, items, chunks, and embeddings work together to power agent retrieval. - [Pipeline](https://docs.intelligence-management-platform.com/building/knowledge/pipeline.md): How the Sources → Processor → Embedder stages turn raw content into searchable knowledge. - [Prompts](https://docs.intelligence-management-platform.com/building/prompts.md): Create, organize, and version prompt templates your team reuses across chat, agents, and the prompt library. - [Routines overview](https://docs.intelligence-management-platform.com/building/routines/overview.md): Routines are saved chat conversations that run on demand or on a cron schedule — browse the list, run a routine, and understand the workbench. - [Runs and schedules](https://docs.intelligence-management-platform.com/building/routines/runs-and-schedules.md): View run history, set a cron schedule, manage the queue, edit conversation steps, control access, and delete a routine. - [Connect your agent](https://docs.intelligence-management-platform.com/building/skills/connect-your-agent.md): Run the one-line install command to connect a local coding agent to your IMP instance and install skills locally. - [Editing and versions](https://docs.intelligence-management-platform.com/building/skills/editing-and-versions.md): Use the file-tree editor to add files, edit content, save version snapshots, and compare diffs between versions. - [Skills overview](https://docs.intelligence-management-platform.com/building/skills/overview.md): Skills are SKILL.md packages your agents load at runtime — browse the library, preview a skill, and create or upload one. - [Changelog](https://docs.intelligence-management-platform.com/changelog/index.md): What shipped in IMP, release by release. - [API reference](https://docs.intelligence-management-platform.com/developers/core/exulu-app/api-reference.md): Every public method and property of ExuluApp: lifecycle, component accessors, embeddings, and workers. - [Configuration](https://docs.intelligence-management-platform.com/developers/core/exulu-app/configuration.md): Every option accepted by ExuluApp.create(), including the full ExuluConfig reference. - [Introduction](https://docs.intelligence-management-platform.com/developers/core/exulu-app/introduction.md): ExuluApp is the entry point of every IMP backend: it registers contexts, providers, tools, and evals, boots the HTTP server, and starts background workers. - [API reference](https://docs.intelligence-management-platform.com/developers/core/exulu-chunkers/api-reference.md): Complete method signatures for SentenceChunker, RecursiveChunker, MarkdownChunker, and the ChunkerOperation/ChunkerResponse contract. - [Configuration](https://docs.intelligence-management-platform.com/developers/core/exulu-chunkers/configuration.md): Every option for SentenceChunker.create(), RecursiveChunker.create(), RecursiveRules, MarkdownChunker.chunk(), and guidance on chunk-size selection. - [Introduction](https://docs.intelligence-management-platform.com/developers/core/exulu-chunkers/introduction.md): ExuluChunkers exposes three built-in text chunkers — SentenceChunker, MarkdownChunker, and RecursiveChunker — plus the defaultChunker used by ExuluContext when no custom chunker is provided. - [API reference](https://docs.intelligence-management-platform.com/developers/core/exulu-context/api-reference.md): Every public method and property of ExuluContext: search, item CRUD, embeddings, processing, sources, the entity layer, and table management. - [Configuration](https://docs.intelligence-management-platform.com/developers/core/exulu-context/configuration.md): Every ExuluContext constructor option: fields, embedder, chunker, sources, processor, retrieval configuration, and the entity layer. - [Introduction](https://docs.intelligence-management-platform.com/developers/core/exulu-context/introduction.md): ExuluContext is a typed, Postgres-backed knowledge collection with hybrid vector and full-text retrieval — the code-level class behind Knowledge in the IMP UI. - [API reference](https://docs.intelligence-management-platform.com/developers/core/exulu-database/api-reference.md): Full signatures for ExuluDatabase.init(), ExuluDatabase.update(), and ExuluDatabase.api.key.generate(), including API key persistence semantics. - [Configuration](https://docs.intelligence-management-platform.com/developers/core/exulu-database/configuration.md): Options for ExuluDatabase.init(), ExuluDatabase.update(), and the context table creation behaviour. - [Introduction](https://docs.intelligence-management-platform.com/developers/core/exulu-database/introduction.md): ExuluDatabase is the programmatic API for IMP's idempotent database initialisation — it creates core tables, bootstraps default roles and admin credentials, provisions per-context tables, and generates API keys. - [API reference](https://docs.intelligence-management-platform.com/developers/core/exulu-eval/api-reference.md): Every public method and property of ExuluEval: the run() method, score-range enforcement, and public properties. - [Configuration](https://docs.intelligence-management-platform.com/developers/core/exulu-eval/configuration.md): Every ExuluEval constructor option: id, name, description, llm, execute, config, and queue. - [Introduction](https://docs.intelligence-management-platform.com/developers/core/exulu-eval/introduction.md): ExuluEval is the code-level class for custom evaluation functions — a typed scorer that receives an agent record, a provider instance, a conversation, and a test case, and returns a 0–100 quality score. - [API reference](https://docs.intelligence-management-platform.com/developers/core/exulu-provider/api-reference.md): Every public method and property of ExuluProvider: generateSync, generateStream, tool(), providerName, modelName, and slug. - [Configuration](https://docs.intelligence-management-platform.com/developers/core/exulu-provider/configuration.md): Every ExuluProvider constructor option: id, name, provider, config (model factory and instructions), capabilities, maxContextLength, workflows, queue, and authenticationInformation. - [Introduction](https://docs.intelligence-management-platform.com/developers/core/exulu-provider/introduction.md): ExuluProvider is the code-level class for model providers — it wraps an AI-SDK LanguageModel factory with agent metadata, capabilities, and the generate methods that power chat and background runs. - [API reference](https://docs.intelligence-management-platform.com/developers/core/exulu-queues/api-reference.md): Every public method and property on the ExuluQueues singleton: register(), queue(), .list, and .queues. - [Configuration](https://docs.intelligence-management-platform.com/developers/core/exulu-queues/configuration.md): Every parameter of ExuluQueues.register() and the ExuluQueueConfig object returned by .use(). - [Introduction](https://docs.intelligence-management-platform.com/developers/core/exulu-queues/introduction.md): ExuluQueues is the singleton that registers BullMQ-backed queues for background work — embeddings, document processing, data-source syncs, and eval runs. - [API reference](https://docs.intelligence-management-platform.com/developers/core/exulu-tool/api-reference.md): Every public property and method of ExuluTool: the execute() instance method and the ExuluTool.internal() factory. - [Configuration](https://docs.intelligence-management-platform.com/developers/core/exulu-tool/configuration.md): Every ExuluTool constructor option: id, name, description, type, inputSchema, config, needsApproval, oauth, and execute. - [Introduction](https://docs.intelligence-management-platform.com/developers/core/exulu-tool/introduction.md): ExuluTool is the code-level class for agent tools — a typed, AI-SDK-backed function that agents call to query data, hit APIs, or run any business logic you write. - [Getting started](https://docs.intelligence-management-platform.com/developers/getting-started.md): Bootstrap a minimal IMP backend: initialize ExuluApp, start the HTTP server, and launch the background worker. - [API sync — ticketing](https://docs.intelligence-management-platform.com/developers/recipes/api-sync-ticketing.md): A production-hardened source for a paginated REST ticketing API: cursor pagination, retry with exponential backoff on 429, partial-failure logging, and incremental sync via external_id upserts. - [Incremental sync deep dive](https://docs.intelligence-management-platform.com/developers/recipes/incremental-sync.md): How IMP reconciles items returned by a source: external_id upsert semantics, hash-based change detection, and deletion handling. - [S3-backed context](https://docs.intelligence-management-platform.com/developers/recipes/s3-backed-context.md): A context whose source lists an S3 document archive, computes content hashes, and upserts file-reference items. A processor fetches them via presigned URL. - [SQL source](https://docs.intelligence-management-platform.com/developers/recipes/sql-source.md): A source that reads rows from an external SQL database using connection pooling, maps them to ExuluItem[], and syncs incrementally via an updated_at watermark. - [ExuluAuthentication](https://docs.intelligence-management-platform.com/developers/reference/exulu-authentication.md): Unified authentication helper for API keys, session tokens, and internal service-to-service calls. - [ExuluDefaultProviders](https://docs.intelligence-management-platform.com/developers/reference/exulu-default-providers.md): Pre-built ExuluProvider instances for Anthropic, Cerebras, Google Vertex, and OpenAI — import and register without writing provider config. - [ExuluDefaultTools](https://docs.intelligence-management-platform.com/developers/reference/exulu-default-tools.md): Built-in tool factories shipped with @exulu/backend — currently the agentic retrieval pipeline. - [ExuluDocumentProcessor](https://docs.intelligence-management-platform.com/developers/reference/exulu-document-processor.md): Advanced multi-format document-to-markdown conversion with optional OCR and VLM page validation. - [ExuluJobs](https://docs.intelligence-management-platform.com/developers/reference/exulu-jobs.md): Redis client accessor for job infrastructure — the entry point for custom queue operations outside the ExuluQueues abstraction. - [ExuluMCP](https://docs.intelligence-management-platform.com/developers/reference/exulu-mcp.md): Expose any IMP agent as an MCP server — mounts Streamable HTTP endpoints on an Express app. - [ExuluOtel](https://docs.intelligence-management-platform.com/developers/reference/exulu-otel.md): OpenTelemetry SDK setup for traces and logs, pre-configured for SigNoz. - [ExuluPython](https://docs.intelligence-management-platform.com/developers/reference/exulu-python.md): Manage the Python virtual environment required by document processors and other Python-backed features. - [ExuluReadApi](https://docs.intelligence-management-platform.com/developers/reference/exulu-read-api.md): RBAC-safe direct read namespace for chunks and items — the shapes that ExuluContext.search() cannot express. - [ExuluReranker](https://docs.intelligence-management-platform.com/developers/reference/exulu-reranker.md): Provider-agnostic reranking via LiteLLM — reorder retrieval results by relevance and attach a rerank_score. - [ExuluStorage](https://docs.intelligence-management-platform.com/developers/reference/exulu-storage.md): S3-compatible file storage — generate presigned URLs and upload files using the platform's configured S3 credentials. - [ExuluTokenizer](https://docs.intelligence-management-platform.com/developers/reference/exulu-tokenizer.md): Tiktoken-based tokenizer for counting tokens, encoding text, and decoding token sequences. - [ExuluVariables](https://docs.intelligence-management-platform.com/developers/reference/exulu-variables.md): Read platform variables at runtime — automatically decrypts AES-encrypted values using NEXTAUTH_SECRET. - [Functions and types](https://docs.intelligence-management-platform.com/developers/reference/functions-and-types.md): Standalone exported functions, enums, and TypeScript types from @exulu/backend. - [Setup](https://docs.intelligence-management-platform.com/developers/setup.md): Install @exulu/backend, configure your project scaffold, and prepare your environment. - [Custom processors](https://docs.intelligence-management-platform.com/developers/tutorials/custom-processors.md): Transform items after ingestion: configure trigger, queue, and generateEmbeddings; write a filter that skips already-processed items; and build a PDF-to-structured-fields processor. - [Custom tools](https://docs.intelligence-management-platform.com/developers/tutorials/custom-tools.md): Build a complete ExuluTool with a Zod input schema and admin config params, add a streaming AsyncGenerator variant, and register both on the app. - [Data sources and sync](https://docs.intelligence-management-platform.com/developers/tutorials/data-sources-and-sync.md): Add a scheduled ExuluContextSource that pulls data from a REST API with cursor pagination, rate-limit-aware retries, and incremental sync via external_id upserts. - [Defining contexts](https://docs.intelligence-management-platform.com/developers/tutorials/defining-contexts.md): Build two complete ExuluContext definitions: a semantic embedder-backed support ticket context and an always-include team memory context. - [Your first app](https://docs.intelligence-management-platform.com/developers/tutorials/first-app.md): Turn the three-file starter into a real project: folder layout, tsup config, package.json scripts, a first context, and running server and worker in development. - [MCP](https://docs.intelligence-management-platform.com/developers/tutorials/mcp.md): Enable the IMP MCP server, understand what mounts at /mcp/:agent, and connect a generic MCP client. - [OAuth tools](https://docs.intelligence-management-platform.com/developers/tutorials/oauth-tools.md): Wrap a tool in an authorization-code + PKCE flow using ExuluOauthConfig: declare the config shape, understand what IMP handles, and use the injected token in execute. - [Queues and workers](https://docs.intelligence-management-platform.com/developers/tutorials/queues-and-workers.md): Register BullMQ queues sized to your provider's rate limit, scope a worker process to specific queues, and understand memory requirements. - [Running evals](https://docs.intelligence-management-platform.com/developers/tutorials/running-evals.md): Define an ExuluEval with LLM-as-judge scoring, register it on the app, and understand the eval_runs queue and Redis requirement. - [Core concepts](https://docs.intelligence-management-platform.com/get-started/concepts.md): The key terms used throughout IMP documentation and the platform UI, with a short definition of each. - [Editions](https://docs.intelligence-management-platform.com/get-started/editions.md): IMP ships in two editions: Community Edition (CE) and Enterprise Edition (EE). This page explains what each includes and how to activate EE. - [What is IMP?](https://docs.intelligence-management-platform.com/get-started/what-is-imp.md): IMP is the Intelligence Management Platform — chat with agents over your organization's knowledge, build and govern those agents, and deploy on your own infrastructure. - [Where do I start?](https://docs.intelligence-management-platform.com/get-started/where-do-i-start.md): Find the right starting point based on what you do with IMP. - [IMP documentation](https://docs.intelligence-management-platform.com/index.md): IMP is the Intelligence Management Platform: chat with agents over your organization's knowledge, manage access and budgets, and build on the platform's APIs. - [Architecture](https://docs.intelligence-management-platform.com/self-hosting/architecture.md): Service topology and data flow for a self-hosted IMP deployment. - [Containers](https://docs.intelligence-management-platform.com/self-hosting/containers.md): How the IMP backend and worker Docker images are built, what system packages they include, and why the sandbox requires relaxed container security options. - [Database](https://docs.intelligence-management-platform.com/self-hosting/database.md): How IMP manages its Postgres schema: the no-migration-framework model, idempotent initdb, first-boot bootstrap, and backup strategy. - [Environment variables](https://docs.intelligence-management-platform.com/self-hosting/environment-variables.md): Complete reference for every environment variable IMP reads, grouped by subsystem, with required status, component, and example values. - [Operations](https://docs.intelligence-management-platform.com/self-hosting/operations.md): Server/worker architecture, scaling workers, queue tuning, pm2 in containers, upgrades, and Dokploy network configuration. - [Quickstart](https://docs.intelligence-management-platform.com/self-hosting/quickstart.md): Deploy IMP with Docker Compose using the example repository. - [Requirements](https://docs.intelligence-management-platform.com/self-hosting/requirements.md): Runtime, infrastructure, and license prerequisites for self-hosting IMP. - [LiteLLM proxy](https://docs.intelligence-management-platform.com/self-hosting/services/litellm.md): LiteLLM is IMP's single model registry: chat routing, embeddings, reranking, OCR, image generation, and budget tracking. - [Observability](https://docs.intelligence-management-platform.com/self-hosting/services/observability.md): OpenTelemetry traces and logs for IMP via SigNoz. - [Postgres](https://docs.intelligence-management-platform.com/self-hosting/services/postgres.md): How IMP uses Postgres with pgvector: database auto-creation, connection pool, vector index settings, and per-context schema. - [Redis](https://docs.intelligence-management-platform.com/self-hosting/services/redis.md): Redis powers IMP's BullMQ job queues. Required only when running worker containers. - [S3-compatible storage](https://docs.intelligence-management-platform.com/self-hosting/services/s3-storage.md): File storage for IMP uploads — MinIO or AWS S3 via the COMPANION_S3_* variables. - [SMTP and authentication](https://docs.intelligence-management-platform.com/self-hosting/services/smtp-and-auth.md): Login modes, SMTP configuration for OTP emails, Google OAuth, and NEXTAUTH_SECRET symmetry between frontend and backend. - [Whisper transcription server](https://docs.intelligence-management-platform.com/self-hosting/services/whisper.md): GPU-accelerated speech-to-text for IMP's meeting transcription feature. Optional — only required if you use transcription. - [Troubleshooting](https://docs.intelligence-management-platform.com/self-hosting/troubleshooting.md): Verified failure modes with symptom, cause, and fix for common IMP self-hosting problems. - [Artifacts and sharing](https://docs.intelligence-management-platform.com/user-guide/chat/artifacts-and-sharing.md): Turn any file the agent produces into a shareable link, and manage or revoke those links. - [Attachments and session files](https://docs.intelligence-management-platform.com/user-guide/chat/attachments-and-session-files.md): Upload files for the agent to work with, download what it produces, and understand where session files live. - [Budgets in chat](https://docs.intelligence-management-platform.com/user-guide/chat/budgets-in-chat.md): Understand what the budget chip in the top bar means, what happens when your budget runs out, and when it resets. - [Context compaction](https://docs.intelligence-management-platform.com/user-guide/chat/context-compaction.md): What the context-usage chip shows, when the compaction banner appears, and how to compact a long conversation. - [Conversations](https://docs.intelligence-management-platform.com/user-guide/chat/conversations.md): Find, rename, share, and delete your conversations, and start new ones — named or not. - [Dictation](https://docs.intelligence-management-platform.com/user-guide/chat/dictation.md): Speak your message instead of typing it — IMP transcribes your recording into the message box. - [Image generation](https://docs.intelligence-management-platform.com/user-guide/chat/image-generation.md): Generate and edit images inside a chat conversation using the image generation widget. - [Model override and usage](https://docs.intelligence-management-platform.com/user-guide/chat/model-override-and-usage.md): Switch the AI model for a conversation and inspect token and cost usage per message. - [Chat overview](https://docs.intelligence-management-platform.com/user-guide/chat/overview.md): Start a conversation with an agent, and find your way around the chat screen. - [Pinned knowledge and presets](https://docs.intelligence-management-platform.com/user-guide/chat/pinned-knowledge-and-presets.md): Pin knowledge contexts or single items to a conversation, and save selections you reuse as named presets. - [Prompts in chat](https://docs.intelligence-management-platform.com/user-guide/chat/prompts-in-chat.md): Insert a prompt template from the library, fill in its variables, and use composer shortcuts. - [Tool approvals](https://docs.intelligence-management-platform.com/user-guide/chat/tool-approvals.md): Understand when IMP asks you to approve a tool call and what each option does. - [Projects overview](https://docs.intelligence-management-platform.com/user-guide/projects/overview.md): Group related sessions, shared files, and access controls in one place. - [Working in a project](https://docs.intelligence-management-platform.com/user-guide/projects/working-in-a-project.md): Start sessions, pin knowledge files, and configure a project's details, access, and custom instructions. - [Settings](https://docs.intelligence-management-platform.com/user-guide/settings.md): Control how IMP looks, speaks, and responds to you — appearance, language, your personal system prompt, and your account identity. - [Transcripts overview](https://docs.intelligence-management-platform.com/user-guide/transcripts/overview.md): Upload audio or record a meeting to get a speaker-labeled transcript you can save and use in chats. - [Recording meetings](https://docs.intelligence-management-platform.com/user-guide/transcripts/recording-meetings.md): Send a bot to join a Zoom, Google Meet, or Teams meeting, then receive a transcript when it ends. - [Reviewing and saving](https://docs.intelligence-management-platform.com/user-guide/transcripts/reviewing-and-saving.md): Name speakers on a diarized transcript, follow the audio timeline, and save it to Knowledge. ## OpenAPI Specs - [openapi](https://docs.intelligence-management-platform.com/openapi/openapi.json)