Import a dropped or pasted file as an artifact
const url = 'https://shareout.site/v1/home/import';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"name":"example","content":"example","encoding":"utf8","html":"example","url":"example","folder":"example","lang":"en"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://shareout.site/v1/home/import \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "name": "example", "content": "example", "encoding": "utf8", "html": "example", "url": "example", "folder": "example", "lang": "en" }'One-step import from the Studio Home. Publishes a document (HTML, CSV, Markdown, JSON, text, PDF, Word .docx/.doc/.odt, or a spreadsheet .xlsx/.xls/.ods), pasted HTML, or a Claude / ChatGPT / Gemini share link (best-effort fetch) as a private artifact in the current workspace and folder. Word files become Markdown and spreadsheets one CSV per sheet. Slide decks (.pptx/.ppt/.odp) become a PDF on instances with the optional LibreOffice converter (SLIDES_CONVERTER); without it they answer 422 CONVERT_UNAVAILABLE. All of these keep the original file for download and must be sent base64-encoded. Images, video and other files belong in Assets (/v1/assets). Inside a workspace the caller must be an internal member. Counts toward the daily publish limit and the storage cap. Agent (sot_) tokens are refused.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Workspace id (ignored on a workspace subdomain, which pins it).
Request Body
Section titled “Request Body”object
File name; its extension picks the artifact type.
Pasted HTML source.
A Claude, ChatGPT or Gemini share link.
Folder id to publish into.
Responses
Section titled “Responses”Published
object
Examplegenerated
{ "ok": true, "artifactId": "example", "slug": "example", "name": "example", "type": "example"}Invalid request
object
Human-readable message.
Machine-readable error code.
Correlation id (also the X-Request-Id header). Quote it in support tickets.
Finer cause under code. For UNAUTHORIZED: missing, invalid, revoked or expired.
What to do next, in plain words.
The request field at fault.
Doc page for this error.
Present on 5xx — how to reach a human.
object
Example
{ "success": false, "support": { "how": "POST /v1/support/tickets", "include": [ "request_id" ] }}Authentication required
object
Human-readable message.
Machine-readable error code.
Correlation id (also the X-Request-Id header). Quote it in support tickets.
Finer cause under code. For UNAUTHORIZED: missing, invalid, revoked or expired.
What to do next, in plain words.
The request field at fault.
Doc page for this error.
Present on 5xx — how to reach a human.
object
Example
{ "success": false, "support": { "how": "POST /v1/support/tickets", "include": [ "request_id" ] }}Access denied
object
Human-readable message.
Machine-readable error code.
Correlation id (also the X-Request-Id header). Quote it in support tickets.
Finer cause under code. For UNAUTHORIZED: missing, invalid, revoked or expired.
What to do next, in plain words.
The request field at fault.
Doc page for this error.
Present on 5xx — how to reach a human.
object
Example
{ "success": false, "support": { "how": "POST /v1/support/tickets", "include": [ "request_id" ] }}Folder not found
File too large, spreadsheet too large to convert, or storage limit reached
File type belongs in Assets
Share link could not be read (login wall or JS-rendered), or an Office file or slide deck could not be converted (CONVERT_FAILED, CONVERT_TIMEOUT, CONVERT_UNAVAILABLE)
Daily publish limit reached
