Retrieves OAuth credentials obtained from a completed asset OAuth flow
Exchanges the short-lived credential key produced by the OAuth callback for the access/refresh token pair, then invalidates the key. Allowed anonymously because the OAuth success page runs before the user is reattached to a session; the key itself binds the response to the originating flow. Pass the returned tokens as the `auth` block when creating the asset via `POST /assets`. Calling this endpoint a second time with the same key returns 400.
Path Parameters
The tenant identifier
Query Parameters
The encrypted credential key from the OAuth success redirect.
Response Body
curl -X GET "https://api.fruxon.com/v1/tenants/string/assets/oauthCredentials"{
"accessToken": "string",
"refreshToken": "string",
"tokenType": "string",
"expiresAt": 0
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}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.
Lists ingestion operations for an asset.
Returns the history of long-running operations against the asset — initial ingestion, refreshes, and webhook-triggered updates — each annotated with state (`Pending`, `Running`, `Completed`, `Failed`, `Cancelled`), token counts, and per-operation embedding cost computed from the asset's model pricing. Operation IDs returned by `POST /assets` and `POST /assets/{asset}:refresh` appear here; clients poll this endpoint (or `GET /assets/{asset}/operations/{operation}`) to track progress.