Creates an asset from a configuration dictionary.
The accepted config keys and their requirements are defined by the source type descriptor returned from the `source-types` endpoint.
Authorization
Bearer JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.
In: header
Path Parameters
The tenant identifier
The source type and configuration parameters.
Represents a generalized configuration for an asset, serving as a transport model for storage and cross-system communication.
Optional note describing what the asset contains and when an agent should use it. Injected into the step system prompt alongside the asset link.
Auth credentials for an integration — the chosen auth method plus its filled-in parameters (API keys, tokens, …).
Token budget limits for a RAG asset ingestion.
Currency-based asset budget configuration in USD. Converted to token budget using the asset's embedding model pricing.
Describes how an asset should be kept up-to-date. Stored as a nullable JSONB column on the asset entity. When null, auto-update is disabled.
Optional reference to a tenant-level LLM config for embedding credentials. When set, the published revision's API key is used instead of Fruxon.Rag.RagEmbeddingConfig.ApiKey.
uuidResponse Body
curl -X POST "https://api.fruxon.com/v1/tenants/string/assets" \ -H "Content-Type: application/json" \ -d '{ "config": {} }'{
"asset": {
"id": "string",
"displayName": "string",
"description": "string",
"type": "string",
"vectorized": false,
"config": {
"sourceType": "string",
"parameters": {}
},
"integrationId": "string",
"assetLink": "string",
"createdAt": 0,
"modifiedAt": 0,
"autoUpdate": false,
"autoUpdateConfig": {
"strategy": "WEBHOOK",
"provider": "string",
"externalContext": "string",
"filter": "string",
"pollFrequency": "DAILY",
"pollDay": "string",
"pollDayOfMonth": 0,
"pollHour": "string",
"pollMinute": "string",
"timezone": "string"
},
"lastPolledAt": 0,
"embeddingLlmConfigId": "string",
"supportsAutoUpdate": false,
"supportsWebhookRegistration": false,
"supportsPollSchedule": false,
"embedding": {
"provider": "string",
"model": "string",
"chunkSize": 0,
"chunkOverlap": 0
},
"budget": {
"tokenBudget": 0,
"monthlyTokenBudget": 0,
"dailyTokenBudget": 0,
"totalTokenCount": 0,
"monthlyTokensUsed": 0,
"dailyTokensUsed": 0,
"costBudget": 0,
"monthlyCostBudget": 0,
"dailyCostBudget": 0,
"totalCost": 0,
"monthlyCostUsed": 0,
"dailyCostUsed": 0,
"pricePerMillionTokens": 0
},
"embeddingStatus": "PENDING",
"errorCategory": "CREDENTIALS"
},
"longOperation": {
"name": "string",
"status": "PENDING",
"resourceName": "string",
"resourceType": "string",
"startedAt": 0,
"completedAt": 0,
"error": "string",
"metadata": {}
},
"webhook": {
"id": "string",
"provider": "string",
"authMode": "API_KEY",
"status": "ACTIVE",
"expiresAt": 0,
"createdAt": 0,
"modifiedAt": 0,
"webhookUrl": "string",
"signingSecret": "string"
}
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}Updates an asset's mutable settings (e.g
Patches only the fields supplied in the request body; omitted fields are left untouched. Token-budget changes are pushed to the RAG service and take effect on subsequent searches without re-ingestion. Toggling auto-update may create a webhook; when the provider requires manual registration the response includes the webhook URL — it is returned only once, so store it. To rotate that URL later call `POST /assets/{asset}:regenerateWebhook`. Returns 400 if the asset is not vectorized and the request attempts to change vector-dependent settings.
Re-fetch and re-ingest documents from an asset's original source.
Starts an asynchronous refresh against the asset's stored source configuration: fetches current documents, diffs against what is already indexed, and updates documents and chunks accordingly. Returns immediately with a `LongOperation`; clients poll `GET /assets/{asset}/operations/{operation}` until state is `Completed` or `Failed`. When `documentIds` is supplied only the listed documents are refreshed (useful for webhook-driven incremental updates); otherwise the full source is re-scanned. Concurrent refreshes for the same asset are rate-limited.