FruxonDocs
IntegrationsAssets

Creates a file asset from a file already uploaded to storage.

Promotes the referenced storage file to retained — so the temporary-upload sweep no longer removes it — then creates a file-backed asset using the file's stored display name and content type and kicks off ingestion. Use this after uploading via `POST /storage?temporary=true` to avoid sending the same bytes twice; the direct-upload path (`POST /assets:file`) stays available for one-shot uploads. When `vectorize` is true an `embeddingConfig` matching a model from `GET /assets/embeddingModels` is required.

POST
/v1/tenants/{tenant}/assets:import
AuthorizationBearer <token>

JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.

In: header

Path Parameters

tenant*string

The tenant identifier

The storage file id and ingestion options.

fileId*string

Storage file id returned by POST /storage.

Length1 <= length
vectorize?boolean

Whether to vectorize the file for semantic search. Defaults to true.

embeddingConfig?
embeddingLlmConfigId?string|null

Optional reference to a tenant-level LLM config for embedding credentials. When set, the published revision's API key is used instead of Fruxon.Server.Controllers.Assets.CreateAssetFromFileRequest.EmbeddingConfig ApiKey.

Formatuuid
[key: string]?never

Response Body

curl -X POST "https://api.fruxon.com/v1/tenants/string/assets:import" \  -H "Content-Type: application/json" \  -d '{    "fileId": "string"  }'
{
  "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
}
Empty
Empty