Data export and data structures
Download a complete copy of your organization's data, and how each file in the export is structured.
Export your organization.
Owners and admins can export everything the organization keeps in Venom: projects with their overviews and logs, tasks with their briefs, mentions, artifacts with every revision, skills with their files, Teams, members, settings, the MCP servers you added, and the last 30 days of agent activity. Members' personal skills, personal MCP servers and anything else in their personal scope stay with their author and aren't included.
Open Settings → General and find Export your data.
Select Request export. Venom builds the archive in the background, so you can leave the page. Large organizations take a few minutes.
Select Download when it's ready. Each link works for five minutes; select Download again for a new one. The archive is deleted 7 days after it's ready.
You can also ask support@venomlabs.dev for a complete copy. Venom support produces the same archive, and it appears in Export your data for your owners and admins.
Members and viewers can't export the organization. Through the MCP server, anyone can read what they have access to at any time.
The archive.
The export is one ZIP file. Every file inside is described below. The archive carries the same description as its README.md, and manifest.json lists every file with its SHA-256 digest, so you can check that nothing is missing or changed.
This page describes export format version 1.
What is not included.
Secret values are never exported: shared and personal keys entered for MCP servers, OAuth tokens for MCP connections, and the tokens agents use to reach Venom. Enter credentials again with your new provider. Venom's own security, server and firewall logs and its internal product analytics are not part of an organization's data and are not included.
Members' personal skills, personal MCP servers and anything else in their personal scope, such as personal guidance and preferences, are not included, because only their author can see them in Venom. Each member can read their own personal skills and MCP servers through the MCP server or the web app at any time.
Deleted log entries are included while they are recoverable, 30 days after deletion. Activity records are kept for 30 days, so the archive holds the last 30 days.
Conventions.
- Every JSON file is UTF-8, indented with two spaces, and has an object at its top level, so later versions can add fields without breaking readers.
- Times are ISO 8601 in UTC, for example
2026-11-12T09:30:00+00:00. - Text written by people and agents (overviews, briefs, log entries, artifacts, skills) is kept exactly as written. It is usually Markdown.
- Projects, tasks, log entries, artifacts and mentions have 32-character
hexadecimal IDs. Members have UUIDs. Team IDs start with
team_. - Fields such as
author,sender_id,recipient_id,owner_idanduser_idhold a member's user ID;members.jsonlists them. Skills, MCP servers and agent guidance recordupdated_byas the person's sign-in subject, so the export addsupdated_by_user_idnext to it. Fields ending in_handlewere added at export time with that member's current handle. versionfields count the changes to a record. Venom uses them to detect conflicting edits.
Layout.
README.md this description
manifest.json format version, counts and file digests
organization.json profile and settings
members.json people and their roles
teams.json Teams, their members and directory links
projects/KEY/project.json a project, its overview and project log
projects/KEY/tasks/REF.json a task, its brief and its log
artifacts/ID/artifact.json an artifact and its revision history
artifacts/ID/REVISION/FILENAME the original file of each revision
mentions.json every mention in the organization
skills/PLACE/NAME/skill.json a skill, its status and its revisions
skills/PLACE/NAME/draft/PATH the skill's current working files
skills/PLACE/NAME/revisions/REV/PATH the files of each published revision
mcp_servers.json MCP servers added to Venom, without keys
activity.json agent activity from the last 30 days
files/PATH files from the retired Brain file storeKEY is a project key such as web-app and REF a task reference such as
web-app-3. PLACE is where a skill lives: organization,
team/TEAM_ID or project/KEY. files/ appears only
for organizations that stored files before Venom moved to projects and tasks.
Files.
Each section lists one file's top-level fields.
manifest.json.
| Field | Type | Description |
|---|---|---|
format | string | Always venom-organization-export. |
version | integer | Export format version. This document describes version 1. |
export_id | string | ID of the export, as shown in Settings. |
generated_at | string | When the archive was generated. |
organization | object | id, name and slug of the organization. |
requested_by | object | user_id and handle of the person who requested it, and via: web (Settings) or support (a request to Venom support). |
activity_window | object | start and end of the Activity records included. |
counts | object | How many records of each kind the archive holds. |
warnings | array | Sentences describing anything that could not be included. Empty for a complete export. |
files | array | Every other file, each with path, bytes and sha256 (hexadecimal SHA-256 of its bytes). |
organization.json.
| Field | Type | Description |
|---|---|---|
id | string | Organization ID. |
name | string | Name shown to members. |
slug | string | URL name. |
description | string or null | Description shown when people pick an organization. |
owner_id | string | User ID of the owner. |
is_active | boolean | False while the organization is being deleted. |
created_at, updated_at | string | When it was created and last changed. |
agent_guidance | array | Organization guidance for agents, one item per place it was set: place, read and write guidance text, tool_overrides (tool name to the organization's description of that tool; null restores Venom's), updated_at, updated_by, updated_by_user_id, updated_by_handle. |
members.json.
members lists everyone with a membership, including pending invitations and
people who were removed.
| Field | Type | Description |
|---|---|---|
user_id | string | The member's user ID. |
name | string | Full name. |
email | string | Email address. |
email_verified | boolean | Whether the address was verified at sign-in. |
handle | string or null | Handle in this organization, used for mentions. |
role | string | owner, admin, member or viewer. |
status | string | active, invited or deactivated. |
is_active | boolean | Whether the membership is active. |
joined_at | string or null | When the person first joined. |
invited_by | string or null | User ID of the person who invited them. |
created_at, updated_at | string | When the membership was created and last changed. |
external_identities | array | Handles in other systems: provider (for example slack), provider_tenant, handle, provider_user_id, source, confirmed_at, is_active, created_at. |
teams.json.
teams lists every Team, including deactivated ones.
| Field | Type | Description |
|---|---|---|
id | string | Team ID. |
name | string | Team name. |
handle | string or null | Team handle, shown as @handle. |
description | string or null | Description. |
parent_id | string or null | ID of the Team it sits inside. |
membership_authority | string | local (managed in Venom) or directory (managed by a connected directory). |
is_active, deactivated_at | boolean, string or null | Whether the Team is active, and when it was deactivated. |
created_at, updated_at | string | When it was created and last changed. |
members | array | user_id, handle, role (member or maintainer), is_active, created_at, deactivated_at. |
directory_links | array | Directory groups linked to the Team: provider, provider_tenant, provider_group_id, display_name, source, is_active, created_at. |
projects/KEY/project.json.
| Field | Type | Description |
|---|---|---|
id | string | Project ID. |
key | string | Project key, used in task references. |
name, description | string | Name and short description. |
status | string | active or archived. |
team_id, team | string, object or null | The owning Team, with its id, name and handle. |
task_count | integer | Task numbers given out so far. |
version | integer | Change counter. |
created_at, updated_at | string | When it was created and last changed. |
overview | string | The project overview. |
collaborators | array | People who joined the project individually: user_id, handle. |
entries | array | The project's own log entries, oldest first. Task status changes are in the task files. |
tasks | array | Every task: id, ref, title, status, and path of its file. |
artifacts | array | Every artifact of the project and its tasks: id, title, and path of its artifact.json. |
projects/KEY/tasks/REF.json.
| Field | Type | Description |
|---|---|---|
id | string | Task ID. |
ref, number | string, integer | Task reference (web-app-3) and its number in the project. |
project_id, project_key | string | The project. |
title | string | Task title. |
status | string | open, in_progress, blocked, done or cancelled. |
brief_entry_id | string | ID of the brief entry. |
version | integer | Change counter. |
created_at, updated_at | string | When it was created and last changed. |
brief | object | The maintained task brief, as a log entry. |
entries | array | The task's other log entries, oldest first. |
Log entries.
Briefs, task updates and project log entries share one structure.
| Field | Type | Description |
|---|---|---|
id | string | Entry ID. |
owner_type, owner_id | string | task or project, and its ID. |
project_id | string | The project. |
summary, body | string | The entry's summary and text, as written. Empty for a deleted entry. |
author, author_handle | string | Who wrote it. |
agent | string or null | The agent that wrote it through MCP, by the name it registered (for example Claude Code). Null for the web app. |
created_at, updated_at | string | When it was written and last edited. |
revision | integer | Edit counter, starting at 1. |
brief | boolean | True for a task's maintained brief. |
deleted | boolean | True for a deleted entry. Its content is in previous_revisions while recoverable. |
transition | object or null | A status change: from and to. |
artifacts | array | Attached artifact revisions: artifact_id, revision, title, filename. |
mentions | array | Mentions on the entry: mention_id, user_id, handle, kind, note. |
in_reply_to | string | Present when the entry answers a mention: that mention's ID. |
previous_revisions | array | Earlier versions still recoverable: revision, summary, body, author, author_handle, agent, created_at, updated_at, deleted, transition, artifacts, mentions, and recoverable_until. |
artifacts/ID/artifact.json.
Each revision's original file is stored next to it, at
artifacts/ID/REVISION/FILENAME.
| Field | Type | Description |
|---|---|---|
id | string | Artifact ID. |
title, description | string | Title and description of the latest revision. |
filename | string | File name of the latest revision. |
revision | integer | Latest revision number. |
byte_size | integer | Size of the latest revision in UTF-8 bytes. |
owner_type, owner_id, owner_ref | string | task or project, its ID, and its reference or key. |
project_id, project_key | string | The project. |
archived | boolean | Whether the artifact is archived. |
author, author_handle | string | Who saved the latest revision. |
created_at, updated_at | string | When the first and latest revisions were saved. |
revisions | array | Every revision, oldest first: revision, title, description, filename, byte_size, author, author_handle, created_at, updated_at, and file, the path of its file in this archive. |
mentions.json.
mentions lists every mention in the organization, for every recipient,
including those withdrawn by their author.
| Field | Type | Description |
|---|---|---|
id | string | Mention ID. |
recipient_id, recipient_handle | string | Who was mentioned. |
sender_id, sender_handle | string | Who mentioned them. |
sender_agent | string or null | The agent that wrote the mention, if any. |
kind | string | fyi, question or request. |
note | string or null | The note for the recipient. |
entry_id, task_id, project_id | string | The entry, task and project it points to. |
task_ref, task_title, entry_summary | string | The task and entry as they were when last updated. |
state | string | unread, seen, answered or declined. |
withdrawn | boolean | True when the author removed the mention or deleted its entry. |
reply_entry_id | string or null | The entry that answered it. |
version | integer | Change counter. |
created_at, updated_at | string | When it was created and last changed. |
skills/PLACE/NAME/skill.json.
Every organization, Team and project skill is included, whatever its status: drafts, published skills, withdrawn skills and skills that people switched off. Members' personal skills are not included: only their author can see them in Venom.
| Field | Type | Description |
|---|---|---|
name, description | string | Skill name and description. |
place | string | organization, team or project. |
team_id, team_handle | string | For a Team skill: the Team. |
project_id, project_key | string | For a project skill: the project. |
status | string | draft, published or withdrawn. |
current_revision | string or null | The published revision agents receive. |
has_unpublished_changes | boolean | Whether the draft differs from the published revision. |
updated_at, updated_by, updated_by_user_id, updated_by_handle | string | When the draft or status last changed, and by whom. |
source | object or null | Where the skill was imported from, if it was imported. |
frontmatter | object | Metadata from the draft's SKILL.md. |
disabled_for | array | User IDs of the people who switched the skill off for their agents. |
draft_files | array | Paths of the current working files in this archive. |
revisions | array | Every published revision: revision, published_at, published_by, published_by_user_id, published_by_handle, description, frontmatter, source, in_publication_history (false after a withdrawal), and files, the paths of its files in this archive. |
mcp_servers.json.
servers lists the third-party MCP servers added to the organization, its
Teams and its projects. Members' personal MCP servers are not included, and
neither are the keys and tokens entered for any server.
| Field | Type | Description |
|---|---|---|
slug | string | Server ID, used in tool names. |
name, description | string | Name and description. |
url | string | Server URL, as entered. |
auth | string | How it signs in: none, shared (one key for everyone), personal (each person's key) or oauth. |
catalog | string or null | The catalog entry it was added from. |
place | string | organization, team or project, with the same identifying fields as skills. |
created_at, updated_at, updated_by, updated_by_user_id, updated_by_handle | string | When it was added and last changed, and by whom. |
disabled_for | array | User IDs of the people who switched it off for their agents. |
activity.json.
events lists what agents did through the Venom MCP server in the last 30
days, oldest first. Records describe each operation. They never contain tool
arguments, content or results.
| Field | Type | Description |
|---|---|---|
event_id | string | Event ID. |
actor_id, actor_user_id, actor_handle | string | Who the agent acted for: their sign-in subject, user ID and handle. |
operation, category | string | The tool or operation, and its category: read, write, manage, skill, mcp or other. |
source | string | Always mcp. |
path, skill_name, revision, resource_uri | string or null | What a skill load or resource read targeted. |
client_id, client_name, client_version | string or null | The agent client, as it identified itself. |
request_id | string or null | The client's request ID. |
started_at, finished_at | string | When the operation started and finished. |
status | string | succeeded, failed, started (still running), or unknown (no outcome was recorded). |
duration_ms, error_code | integer, string or null | How long it took, and why it failed. |
bytes_read, bytes_written, lines_returned, created, replacements | integer, boolean or null | Size measures, where the operation reports them. |