Docs Concepts Storage & KV Store
Weavz includes two built-in integrations for persistent data storage. Both are available without external authentication and work alongside your other integrations.
The Storage integration provides file CRUD operations backed by object storage. Use it to store files, documents, and binary data.
Action Description read_fileRead a file's contents by path write_fileWrite content to a file (creates or overwrites) delete_fileDelete a file by path list_filesList files in a directory with optional prefix filter
Write a file:
curl TypeScript SDK Python SDK TypeScript Python
curl -X POST https://api.weavz.io/api/v1/actions/execute \
-H "Authorization: Bearer wvz_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"integrationName": "storage",
"actionName": "write_file",
"workspaceId": "proj_abc123",
"input": {
"path": "reports/monthly.json",
"content": "{\"month\": \"January\", \"total\": 1500}"
}
}' import { WeavzClient } from '@weavz/sdk'
const client = new WeavzClient ({ apiKey: 'wvz_your_api_key' })
await client.actions. execute ( 'storage' , 'write_file' , {
workspaceId: 'proj_abc123' ,
input: {
path: 'reports/monthly.json' ,
content: '{"month": "January", "total": 1500}' ,
},
}) from weavz_sdk import WeavzClient
client = WeavzClient( api_key = "wvz_your_api_key" )
client.actions.execute( "storage" , "write_file" ,
workspace_id = "proj_abc123" ,
input = {
"path" : "reports/monthly.json" ,
"content" : '{"month": "January", "total": 1500}' ,
},
) const res = await fetch ( 'https://api.weavz.io/api/v1/actions/execute' , {
method: 'POST' ,
headers: {
'Authorization' : 'Bearer wvz_your_api_key' ,
'Content-Type' : 'application/json' ,
},
body: JSON . stringify ({
integrationName: 'storage' ,
actionName: 'write_file' ,
workspaceId: 'proj_abc123' ,
input: {
path: 'reports/monthly.json' ,
content: '{"month": "January", "total": 1500}' ,
},
}),
})
const data = await res. json () import httpx
res = httpx.post(
"https://api.weavz.io/api/v1/actions/execute" ,
headers = { "Authorization" : "Bearer wvz_your_api_key" },
json = {
"integrationName" : "storage" ,
"actionName" : "write_file" ,
"workspaceId" : "proj_abc123" ,
"input" : {
"path" : "reports/monthly.json" ,
"content" : '{"month": "January", "total": 1500}' ,
},
},
)
data = res.json()
Read a file:
curl TypeScript SDK Python SDK TypeScript Python
curl -X POST https://api.weavz.io/api/v1/actions/execute \
-H "Authorization: Bearer wvz_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"integrationName": "storage",
"actionName": "read_file",
"workspaceId": "proj_abc123",
"input": {
"path": "reports/monthly.json"
}
}' import { WeavzClient } from '@weavz/sdk'
const client = new WeavzClient ({ apiKey: 'wvz_your_api_key' })
const result = await client.actions. execute ( 'storage' , 'read_file' , {
workspaceId: 'proj_abc123' ,
input: {
path: 'reports/monthly.json' ,
},
}) from weavz_sdk import WeavzClient
client = WeavzClient( api_key = "wvz_your_api_key" )
result = client.actions.execute( "storage" , "read_file" ,
workspace_id = "proj_abc123" ,
input = { "path" : "reports/monthly.json" },
) const res = await fetch ( 'https://api.weavz.io/api/v1/actions/execute' , {
method: 'POST' ,
headers: {
'Authorization' : 'Bearer wvz_your_api_key' ,
'Content-Type' : 'application/json' ,
},
body: JSON . stringify ({
integrationName: 'storage' ,
actionName: 'read_file' ,
workspaceId: 'proj_abc123' ,
input: { path: 'reports/monthly.json' },
}),
})
const data = await res. json () import httpx
res = httpx.post(
"https://api.weavz.io/api/v1/actions/execute" ,
headers = { "Authorization" : "Bearer wvz_your_api_key" },
json = {
"integrationName" : "storage" ,
"actionName" : "read_file" ,
"workspaceId" : "proj_abc123" ,
"input" : { "path" : "reports/monthly.json" },
},
)
data = res.json()
List files:
curl TypeScript SDK Python SDK TypeScript Python
curl -X POST https://api.weavz.io/api/v1/actions/execute \
-H "Authorization: Bearer wvz_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"integrationName": "storage",
"actionName": "list_files",
"workspaceId": "proj_abc123",
"input": {
"prefix": "reports/"
}
}' import { WeavzClient } from '@weavz/sdk'
const client = new WeavzClient ({ apiKey: 'wvz_your_api_key' })
const result = await client.actions. execute ( 'storage' , 'list_files' , {
workspaceId: 'proj_abc123' ,
input: { prefix: 'reports/' },
}) from weavz_sdk import WeavzClient
client = WeavzClient( api_key = "wvz_your_api_key" )
result = client.actions.execute( "storage" , "list_files" ,
workspace_id = "proj_abc123" ,
input = { "prefix" : "reports/" },
) const res = await fetch ( 'https://api.weavz.io/api/v1/actions/execute' , {
method: 'POST' ,
headers: {
'Authorization' : 'Bearer wvz_your_api_key' ,
'Content-Type' : 'application/json' ,
},
body: JSON . stringify ({
integrationName: 'storage' ,
actionName: 'list_files' ,
workspaceId: 'proj_abc123' ,
input: { prefix: 'reports/' },
}),
})
const data = await res. json () import httpx
res = httpx.post(
"https://api.weavz.io/api/v1/actions/execute" ,
headers = { "Authorization" : "Bearer wvz_your_api_key" },
json = {
"integrationName" : "storage" ,
"actionName" : "list_files" ,
"workspaceId" : "proj_abc123" ,
"input" : { "prefix" : "reports/" },
},
)
data = res.json()
The KV Store integration provides key-value persistence. Use it for caching, state management, counters, and simple data structures.
Action Description putSet a key-value pair (string value) getRetrieve the value for a key deleteDelete a key-value pair add_to_listAppend a value to a list stored at a key remove_from_listRemove a value from a list stored at a key
Store a value:
curl TypeScript SDK Python SDK TypeScript Python
curl -X POST https://api.weavz.io/api/v1/actions/execute \
-H "Authorization: Bearer wvz_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"integrationName": "kv-store",
"actionName": "put",
"workspaceId": "proj_abc123",
"input": {
"key": "last_sync_timestamp",
"value": "2025-01-15T10:00:00Z"
}
}' import { WeavzClient } from '@weavz/sdk'
const client = new WeavzClient ({ apiKey: 'wvz_your_api_key' })
await client.actions. execute ( 'kv-store' , 'put' , {
workspaceId: 'proj_abc123' ,
input: {
key: 'last_sync_timestamp' ,
value: '2025-01-15T10:00:00Z' ,
},
}) from weavz_sdk import WeavzClient
client = WeavzClient( api_key = "wvz_your_api_key" )
client.actions.execute( "kv-store" , "put" ,
workspace_id = "proj_abc123" ,
input = {
"key" : "last_sync_timestamp" ,
"value" : "2025-01-15T10:00:00Z" ,
},
) const res = await fetch ( 'https://api.weavz.io/api/v1/actions/execute' , {
method: 'POST' ,
headers: {
'Authorization' : 'Bearer wvz_your_api_key' ,
'Content-Type' : 'application/json' ,
},
body: JSON . stringify ({
integrationName: 'kv-store' ,
actionName: 'put' ,
workspaceId: 'proj_abc123' ,
input: {
key: 'last_sync_timestamp' ,
value: '2025-01-15T10:00:00Z' ,
},
}),
})
const data = await res. json () import httpx
res = httpx.post(
"https://api.weavz.io/api/v1/actions/execute" ,
headers = { "Authorization" : "Bearer wvz_your_api_key" },
json = {
"integrationName" : "kv-store" ,
"actionName" : "put" ,
"workspaceId" : "proj_abc123" ,
"input" : {
"key" : "last_sync_timestamp" ,
"value" : "2025-01-15T10:00:00Z" ,
},
},
)
data = res.json()
Retrieve a value:
curl TypeScript SDK Python SDK TypeScript Python
curl -X POST https://api.weavz.io/api/v1/actions/execute \
-H "Authorization: Bearer wvz_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"integrationName": "kv-store",
"actionName": "get",
"workspaceId": "proj_abc123",
"input": {
"key": "last_sync_timestamp"
}
}' import { WeavzClient } from '@weavz/sdk'
const client = new WeavzClient ({ apiKey: 'wvz_your_api_key' })
const result = await client.actions. execute ( 'kv-store' , 'get' , {
workspaceId: 'proj_abc123' ,
input: { key: 'last_sync_timestamp' },
}) from weavz_sdk import WeavzClient
client = WeavzClient( api_key = "wvz_your_api_key" )
result = client.actions.execute( "kv-store" , "get" ,
workspace_id = "proj_abc123" ,
input = { "key" : "last_sync_timestamp" },
) const res = await fetch ( 'https://api.weavz.io/api/v1/actions/execute' , {
method: 'POST' ,
headers: {
'Authorization' : 'Bearer wvz_your_api_key' ,
'Content-Type' : 'application/json' ,
},
body: JSON . stringify ({
integrationName: 'kv-store' ,
actionName: 'get' ,
workspaceId: 'proj_abc123' ,
input: { key: 'last_sync_timestamp' },
}),
})
const data = await res. json () import httpx
res = httpx.post(
"https://api.weavz.io/api/v1/actions/execute" ,
headers = { "Authorization" : "Bearer wvz_your_api_key" },
json = {
"integrationName" : "kv-store" ,
"actionName" : "get" ,
"workspaceId" : "proj_abc123" ,
"input" : { "key" : "last_sync_timestamp" },
},
)
data = res.json()
Manage lists:
curl TypeScript SDK Python SDK TypeScript Python
curl -X POST https://api.weavz.io/api/v1/actions/execute \
-H "Authorization: Bearer wvz_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"integrationName": "kv-store",
"actionName": "add_to_list",
"workspaceId": "proj_abc123",
"input": {
"key": "processed_orders",
"value": "order_123"
}
}' import { WeavzClient } from '@weavz/sdk'
const client = new WeavzClient ({ apiKey: 'wvz_your_api_key' })
await client.actions. execute ( 'kv-store' , 'add_to_list' , {
workspaceId: 'proj_abc123' ,
input: {
key: 'processed_orders' ,
value: 'order_123' ,
},
}) from weavz_sdk import WeavzClient
client = WeavzClient( api_key = "wvz_your_api_key" )
client.actions.execute( "kv-store" , "add_to_list" ,
workspace_id = "proj_abc123" ,
input = {
"key" : "processed_orders" ,
"value" : "order_123" ,
},
) const res = await fetch ( 'https://api.weavz.io/api/v1/actions/execute' , {
method: 'POST' ,
headers: {
'Authorization' : 'Bearer wvz_your_api_key' ,
'Content-Type' : 'application/json' ,
},
body: JSON . stringify ({
integrationName: 'kv-store' ,
actionName: 'add_to_list' ,
workspaceId: 'proj_abc123' ,
input: {
key: 'processed_orders' ,
value: 'order_123' ,
},
}),
})
const data = await res. json () import httpx
res = httpx.post(
"https://api.weavz.io/api/v1/actions/execute" ,
headers = { "Authorization" : "Bearer wvz_your_api_key" },
json = {
"integrationName" : "kv-store" ,
"actionName" : "add_to_list" ,
"workspaceId" : "proj_abc123" ,
"input" : {
"key" : "processed_orders" ,
"value" : "order_123" ,
},
},
)
data = res.json()
Storage and KV Store actions include a scope input property that controls data isolation. Three scoping modes are available:
Scope Value Description End User Bound end_user (default)Data is isolated per end user within the workspace. Requires endUserId in the request. Falls back to workspace scope if endUserId is not provided. Workspace Bound workspaceData is shared across the entire workspace. Different workspaces cannot access each other's data. External ID Bound externalData is scoped to a custom identifier via the externalId input property within the workspace. Useful for tenant, session, or entity-level isolation.
The default scope is end_user. When you pass endUserId in the action execution request, data is isolated per end user within the workspace. You can omit the scope field — it defaults to end_user.
curl TypeScript SDK Python SDK TypeScript Python
curl -X POST https://api.weavz.io/api/v1/actions/execute \
-H "Authorization: Bearer wvz_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"integrationName": "kv-store",
"actionName": "put",
"workspaceId": "proj_abc123",
"endUserId": "user_12345",
"input": {
"key": "preferences",
"value": {"theme": "dark"},
"scope": "end_user"
}
}' import { WeavzClient } from '@weavz/sdk'
const client = new WeavzClient ({ apiKey: 'wvz_your_api_key' })
await client.actions. execute ( 'kv-store' , 'put' , {
workspaceId: 'proj_abc123' ,
endUserId: 'user_12345' ,
input: {
key: 'preferences' ,
value: { theme: 'dark' },
scope: 'end_user' ,
},
}) from weavz_sdk import WeavzClient
client = WeavzClient( api_key = "wvz_your_api_key" )
client.actions.execute( "kv-store" , "put" ,
workspace_id = "proj_abc123" ,
end_user_id = "user_12345" ,
input = { "key" : "preferences" , "value" : { "theme" : "dark" }, "scope" : "end_user" },
) const res = await fetch ( 'https://api.weavz.io/api/v1/actions/execute' , {
method: 'POST' ,
headers: {
'Authorization' : 'Bearer wvz_your_api_key' ,
'Content-Type' : 'application/json' ,
},
body: JSON . stringify ({
integrationName: 'kv-store' ,
actionName: 'put' ,
workspaceId: 'proj_abc123' ,
endUserId: 'user_12345' ,
input: { key: 'preferences' , value: { theme: 'dark' }, scope: 'end_user' },
}),
})
const data = await res. json () import httpx
res = httpx.post(
"https://api.weavz.io/api/v1/actions/execute" ,
headers = { "Authorization" : "Bearer wvz_your_api_key" },
json = {
"integrationName" : "kv-store" ,
"actionName" : "put" ,
"workspaceId" : "proj_abc123" ,
"endUserId" : "user_12345" ,
"input" : { "key" : "preferences" , "value" : { "theme" : "dark" }, "scope" : "end_user" },
},
)
data = res.json()
Data stored with endUserId: "user_12345" is isolated from data stored with endUserId: "user_67890" or workspace-scoped data. This is the recommended approach for multi-tenant applications.
Set scope to "workspace" to share data across all end users in a workspace. Different workspaces cannot access each other's data.
curl TypeScript SDK Python SDK TypeScript Python
curl -X POST https://api.weavz.io/api/v1/actions/execute \
-H "Authorization: Bearer wvz_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"integrationName": "storage",
"actionName": "write_file",
"workspaceId": "proj_abc123",
"input": {
"path": "config.json",
"content": "...",
"scope": "workspace"
}
}' import { WeavzClient } from '@weavz/sdk'
const client = new WeavzClient ({ apiKey: 'wvz_your_api_key' })
await client.actions. execute ( 'storage' , 'write_file' , {
workspaceId: 'proj_abc123' ,
input: {
path: 'config.json' ,
content: '...' ,
scope: 'workspace' ,
},
}) from weavz_sdk import WeavzClient
client = WeavzClient( api_key = "wvz_your_api_key" )
client.actions.execute( "storage" , "write_file" ,
workspace_id = "proj_abc123" ,
input = { "path" : "config.json" , "content" : "..." , "scope" : "workspace" },
) const res = await fetch ( 'https://api.weavz.io/api/v1/actions/execute' , {
method: 'POST' ,
headers: {
'Authorization' : 'Bearer wvz_your_api_key' ,
'Content-Type' : 'application/json' ,
},
body: JSON . stringify ({
integrationName: 'storage' ,
actionName: 'write_file' ,
workspaceId: 'proj_abc123' ,
input: { path: 'config.json' , content: '...' , scope: 'workspace' },
}),
})
const data = await res. json () import httpx
res = httpx.post(
"https://api.weavz.io/api/v1/actions/execute" ,
headers = { "Authorization" : "Bearer wvz_your_api_key" },
json = {
"integrationName" : "storage" ,
"actionName" : "write_file" ,
"workspaceId" : "proj_abc123" ,
"input" : { "path" : "config.json" , "content" : "..." , "scope" : "workspace" },
},
)
data = res.json()
Set scope to "external" and provide an externalId to create a custom scope tied to an external identifier. Useful when you need scoping tied to a specific tenant, session, or entity that doesn't map to an end user.
curl TypeScript SDK Python SDK TypeScript Python
curl -X POST https://api.weavz.io/api/v1/actions/execute \
-H "Authorization: Bearer wvz_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"integrationName": "kv-store",
"actionName": "put",
"workspaceId": "proj_abc123",
"input": {
"key": "preferences",
"value": {"theme": "dark"},
"scope": "external",
"externalId": "tenant_123"
}
}' import { WeavzClient } from '@weavz/sdk'
const client = new WeavzClient ({ apiKey: 'wvz_your_api_key' })
await client.actions. execute ( 'kv-store' , 'put' , {
workspaceId: 'proj_abc123' ,
input: {
key: 'preferences' ,
value: { theme: 'dark' },
scope: 'external' ,
externalId: 'tenant_123' ,
},
}) from weavz_sdk import WeavzClient
client = WeavzClient( api_key = "wvz_your_api_key" )
client.actions.execute( "kv-store" , "put" ,
workspace_id = "proj_abc123" ,
input = {
"key" : "preferences" ,
"value" : { "theme" : "dark" },
"scope" : "external" ,
"externalId" : "tenant_123" ,
},
) const res = await fetch ( 'https://api.weavz.io/api/v1/actions/execute' , {
method: 'POST' ,
headers: {
'Authorization' : 'Bearer wvz_your_api_key' ,
'Content-Type' : 'application/json' ,
},
body: JSON . stringify ({
integrationName: 'kv-store' ,
actionName: 'put' ,
workspaceId: 'proj_abc123' ,
input: {
key: 'preferences' ,
value: { theme: 'dark' },
scope: 'external' ,
externalId: 'tenant_123' ,
},
}),
})
const data = await res. json () import httpx
res = httpx.post(
"https://api.weavz.io/api/v1/actions/execute" ,
headers = { "Authorization" : "Bearer wvz_your_api_key" },
json = {
"integrationName" : "kv-store" ,
"actionName" : "put" ,
"workspaceId" : "proj_abc123" ,
"input" : {
"key" : "preferences" ,
"value" : { "theme" : "dark" },
"scope" : "external" ,
"externalId" : "tenant_123" ,
},
},
)
data = res.json()
Data stored with externalId: "tenant_123" is isolated from data stored with externalId: "tenant_456" or workspace-scoped data. The same externalId in different workspaces is also fully isolated.
Cache API responses to reduce calls to rate-limited services:
curl TypeScript SDK Python SDK TypeScript Python
# Check cache
curl -X POST https://api.weavz.io/api/v1/actions/execute \
-H "Authorization: Bearer wvz_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"integrationName": "kv-store",
"actionName": "get",
"workspaceId": "proj_abc123",
"input": { "key": "cache:slack:channels:W123" }
}' import { WeavzClient } from '@weavz/sdk'
const client = new WeavzClient ({ apiKey: 'wvz_your_api_key' })
const cached = await client.actions. execute ( 'kv-store' , 'get' , {
workspaceId: 'proj_abc123' ,
input: { key: `cache:slack:channels:${ workspaceId }` },
})
if ( ! cached.output?.value) {
const channels = await client.actions. execute ( 'slack' , 'list_channels' , {
workspaceId: 'proj_abc123' ,
input: {},
connectionExternalId: 'my_slack' ,
})
await client.actions. execute ( 'kv-store' , 'put' , {
workspaceId: 'proj_abc123' ,
input: {
key: `cache:slack:channels:${ workspaceId }` ,
value: JSON . stringify (channels.output),
},
})
} from weavz_sdk import WeavzClient
client = WeavzClient( api_key = "wvz_your_api_key" )
import json
cached = client.actions.execute( "kv-store" , "get" ,
workspace_id = "proj_abc123" ,
input = { "key" : f "cache:slack:channels: { workspace_id } " },
)
if not cached.get( "output" , {}).get( "value" ):
channels = client.actions.execute( "slack" , "list_channels" ,
workspace_id = "proj_abc123" ,
input = {},
connection_external_id = "my_slack" ,
)
client.actions.execute( "kv-store" , "put" ,
workspace_id = "proj_abc123" ,
input = {
"key" : f "cache:slack:channels: { workspace_id } " ,
"value" : json.dumps(channels[ "output" ]),
},
) const headers = {
'Authorization' : 'Bearer wvz_your_api_key' ,
'Content-Type' : 'application/json' ,
}
const cacheRes = await fetch ( 'https://api.weavz.io/api/v1/actions/execute' , {
method: 'POST' ,
headers,
body: JSON . stringify ({
integrationName: 'kv-store' ,
actionName: 'get' ,
workspaceId: 'proj_abc123' ,
input: { key: `cache:slack:channels:${ workspaceId }` },
}),
})
const cached = await cacheRes. json () import httpx
headers = { "Authorization" : "Bearer wvz_your_api_key" }
res = httpx.post(
"https://api.weavz.io/api/v1/actions/execute" ,
headers = headers,
json = {
"integrationName" : "kv-store" ,
"actionName" : "get" ,
"workspaceId" : "proj_abc123" ,
"input" : { "key" : f "cache:slack:channels: { workspace_id } " },
},
)
cached = res.json()
Track workflow state across multiple integration actions:
curl TypeScript SDK Python SDK TypeScript Python
curl -X POST https://api.weavz.io/api/v1/actions/execute \
-H "Authorization: Bearer wvz_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"integrationName": "kv-store",
"actionName": "put",
"workspaceId": "proj_abc123",
"input": {
"key": "sync:cust_123:status",
"value": "in_progress"
}
}' import { WeavzClient } from '@weavz/sdk'
const client = new WeavzClient ({ apiKey: 'wvz_your_api_key' })
await client.actions. execute ( 'kv-store' , 'put' , {
workspaceId: 'proj_abc123' ,
input: {
key: `sync:${ customerId }:status` ,
value: 'in_progress' ,
},
}) from weavz_sdk import WeavzClient
client = WeavzClient( api_key = "wvz_your_api_key" )
client.actions.execute( "kv-store" , "put" ,
workspace_id = "proj_abc123" ,
input = {
"key" : f "sync: { customer_id } :status" ,
"value" : "in_progress" ,
},
) const res = await fetch ( 'https://api.weavz.io/api/v1/actions/execute' , {
method: 'POST' ,
headers: {
'Authorization' : 'Bearer wvz_your_api_key' ,
'Content-Type' : 'application/json' ,
},
body: JSON . stringify ({
integrationName: 'kv-store' ,
actionName: 'put' ,
workspaceId: 'proj_abc123' ,
input: {
key: `sync:${ customerId }:status` ,
value: 'in_progress' ,
},
}),
})
const data = await res. json () import httpx
res = httpx.post(
"https://api.weavz.io/api/v1/actions/execute" ,
headers = { "Authorization" : "Bearer wvz_your_api_key" },
json = {
"integrationName" : "kv-store" ,
"actionName" : "put" ,
"workspaceId" : "proj_abc123" ,
"input" : {
"key" : f "sync: { customer_id } :status" ,
"value" : "in_progress" ,
},
},
)
data = res.json()
Store generated reports, exports, or media:
curl TypeScript SDK Python SDK TypeScript Python
curl -X POST https://api.weavz.io/api/v1/actions/execute \
-H "Authorization: Bearer wvz_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"integrationName": "storage",
"actionName": "write_file",
"workspaceId": "proj_abc123",
"input": {
"path": "exports/cust_123/report-2025-01.csv",
"content": "name,amount\nAlice,100\nBob,200"
}
}' import { WeavzClient } from '@weavz/sdk'
const client = new WeavzClient ({ apiKey: 'wvz_your_api_key' })
await client.actions. execute ( 'storage' , 'write_file' , {
workspaceId: 'proj_abc123' ,
input: {
path: `exports/${ customerId }/report-2025-01.csv` ,
content: csvData,
},
}) from weavz_sdk import WeavzClient
client = WeavzClient( api_key = "wvz_your_api_key" )
client.actions.execute( "storage" , "write_file" ,
workspace_id = "proj_abc123" ,
input = {
"path" : f "exports/ { customer_id } /report-2025-01.csv" ,
"content" : csv_data,
},
) const res = await fetch ( 'https://api.weavz.io/api/v1/actions/execute' , {
method: 'POST' ,
headers: {
'Authorization' : 'Bearer wvz_your_api_key' ,
'Content-Type' : 'application/json' ,
},
body: JSON . stringify ({
integrationName: 'storage' ,
actionName: 'write_file' ,
workspaceId: 'proj_abc123' ,
input: {
path: `exports/${ customerId }/report-2025-01.csv` ,
content: csvData,
},
}),
})
const data = await res. json () import httpx
res = httpx.post(
"https://api.weavz.io/api/v1/actions/execute" ,
headers = { "Authorization" : "Bearer wvz_your_api_key" },
json = {
"integrationName" : "storage" ,
"actionName" : "write_file" ,
"workspaceId" : "proj_abc123" ,
"input" : {
"path" : f "exports/ { customer_id } /report-2025-01.csv" ,
"content" : csv_data,
},
},
)
data = res.json()
PreviousInput Partials Next Code & Sandbox