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.
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",
"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": "_1",
"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.