Skip to content
Main site Contact

Files

This page covers:

  • GET /api/File
  • PUT /api/File
  • DELETE /api/File
  • PUT /api/FileBinary
  • PUT /api/FileBinaryDirect
  • GET /api/FileStatus

Fetch a file record by UID or by full file path.

ItemValue
MethodGET
Path/api/File
AuthUser bearer token
ResponseFileMap JSON
ParameterRequiredFormatNotes
fileUIDOne of fileUID or fileNameGUIDIf both are present, fileUID is used first.
fileNameOne of fileUID or fileNameFull stored file pathExample: Design/chair.step
includeShapeletsNotrue or falseAdds shapelet, page, and image detail where available.
lgFileNumberNoStringPage/view selector for multi-page files.
includeShapesNotrue or falseInternal/mobile-only detail. Do not use unless directed.
accountNameNoStringOnly use if VizSeek explicitly tells you to.
FieldMeaning
UIDFile UID
VizSpaceIDCompany or owner context
FileNameStored file path/name
DisplayNameUser-facing display name
AttributesSaved structured attributes
ExtractedAttributesExtracted attributes, when populated
ThumbNailURLFromIDThumbnail URL
PNGURLFromIDLarge-image URL
PDFUrlPDF viewer URL if applicable
HasThumbnailThumbnail availability flag
IndexingFinishedtrue when indexing is complete
AssemblyParents / AssemblyChildrenAssembly relationships for 3D files
{
"UID": "b5d3674c-488c-41cb-a9f7-58a42cac85dd",
"VizSpaceID": "24395dfe-7917-4976-a198-0fe3aa9a6a06",
"FileName": "Design/example-assembly.step",
"DisplayName": "example-assembly.step",
"Attributes": [
"document_number=AX-1000",
"document_type=Assembly",
"weight(kg)=12.7"
],
"ExtractedAttributes": [
"Volume=123.4",
"SurfaceArea=88.2"
],
"ThumbNailURLFromID": "https://your-server.example.com/.../sm.jpg",
"PNGURLFromID": "https://your-server.example.com/.../lg.png",
"HasThumbnail": true,
"IndexingFinished": true
}
Terminal window
curl -G "https://your-server.example.com/api/File" \
-H "Authorization: Bearer USER_BEARER_TOKEN" \
--data-urlencode "fileUID=b5d3674c-488c-41cb-a9f7-58a42cac85dd" \
--data-urlencode "includeShapelets=true"

Upload a file as either:

  • a search-input file (isSearchInput=true, the default), or
  • a persistent file in the company database (isSearchInput=false)
ItemValue
MethodPUT
Path/api/File
AuthUser bearer token
Content-Typeapplication/json
ResponsePlain file UID string
ParameterRequiredFormatNotes
fileYesURL-encoded stringFor search input, send only the extension such as .png or .stp. For database upload, send the full stored path such as Design/chair.step.
isGZipCompressedNotrue or falseLegacy. Only set this when the bytes are actually gzipped.
isSearchInputNotrue or falseDefaults to true.
attributesNoURL-encoded nested query stringOnly applied when isSearchInput=false.
QRCodeIdNoStringInternal only.
categoryIdNoIntegerRequired only for companies that use file categories.
textOnlyNotrue or falseSkip shape indexing.
attrTemplateNoStringDo not use unless VizSeek instructs you to.
uidNoGUIDIf provided, the upload must be a valid GUID. Existing files with that UID are overwritten.
rmIfDupNotrue or falseRemove later duplicates that match this file.
isPriorityNotrue or falseLegacy flag.
overwriteFileNotrue, false, or omittedControls duplicate-path behavior for company database uploads.
indexAssemblyComponentsNotrue or falseIndex assembly components too.
callbackParamNoStringIncluded in callback payload when callback settings are configured in the UI.
accountNameNoStringOnly use if VizSeek explicitly tells you to.

The body is a JSON string whose value is the base64-encoded file bytes:

"BASE64_FILE_BYTES"

Do not send raw binary here. Use /api/FileBinary or /api/FileBinaryDirect for raw binary uploads.

  • If isSearchInput=true, the file query value should be an extension, not a path. Use .png, .pdf, .stp, and so on.
  • If isSearchInput=false, the attributes query parameter is decoded and parsed as a nested query string such as Width=10.5&Color=Blue.
  • The current controller only reads attributes when isSearchInput=false.
  • .ifz uploads must preserve the original extension before .ifz, for example gear.stl.ifz, not just .ifz.

Python example: upload a search-input file

Section titled “Python example: upload a search-input file”
import base64
import json
import requests
server = "https://your-server.example.com"
token = "USER_BEARER_TOKEN"
filename = "example-input.dxf"
with open(filename, "rb") as f:
body = json.dumps(base64.b64encode(f.read()).decode("ascii"))
resp = requests.put(
f"{server}/api/File?file=.dxf&isSearchInput=true",
headers={
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
},
data=body,
)
resp.raise_for_status()
print(resp.text)

Python example: upload into the company database with attributes

Section titled “Python example: upload into the company database with attributes”
import base64
import json
import requests
import urllib.parse
server = "https://your-server.example.com"
token = "USER_BEARER_TOKEN"
filename = "example-assembly.step"
with open(filename, "rb") as f:
body = json.dumps(base64.b64encode(f.read()).decode("ascii"))
attributes_raw = (
"document_number=AX-1000"
"&document_type=Assembly"
"&material=Stainless Steel"
"&weight(kg)=12.7"
)
attributes_qs = urllib.parse.quote(attributes_raw, safe="")
resp = requests.put(
f"{server}/api/File?file=Design/example-assembly.step"
f"&isSearchInput=false"
f"&attributes={attributes_qs}",
headers={
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
},
data=body,
)
resp.raise_for_status()
print(resp.text)
PUT /api/File?file=.stp&isSearchInput=true HTTP/1.1
Host: your-server.example.com
Authorization: Bearer USER_BEARER_TOKEN
Content-Type: application/json
"BASE64_FILE_BYTES"

Delete a file by UID.

ItemValue
MethodDELETE
Path/api/File
AuthUser bearer token
ResponseBoolean
Terminal window
curl -X DELETE "https://your-server.example.com/api/File?fileUID=b5d3674c-488c-41cb-a9f7-58a42cac85dd" \
-H "Authorization: Bearer USER_BEARER_TOKEN"

Same logical behavior as PUT /api/File, but the body is raw binary instead of a JSON base64 string.

ItemValue
MethodPUT
Path/api/FileBinary
AuthUser bearer token
Content-Typeapplication/octet-stream
ResponsePlain file UID string

Use the same query parameters described for PUT /api/File.

with open("example-input.dxf", "rb") as f:
resp = requests.put(
f"{server}/api/FileBinary?file=.dxf&isSearchInput=true",
headers={
"Authorization": f"Bearer {token}",
"Content-Type": "application/octet-stream",
},
data=f.read(),
)
resp.raise_for_status()
print(resp.text)

Same raw-binary upload pattern as FileBinary, but the response is a populated FileMap object instead of only the UID.

ItemValue
MethodPUT
Path/api/FileBinaryDirect
AuthUser bearer token
Content-Typeapplication/octet-stream
ResponseFileMap JSON
ParameterRequiredNotes
includeShapeletsNoInclude shapelet detail in the returned FileMap.
lgFileNumberNoPage/view selector for multi-page assets.
includeShapesNoInternal/mobile-only detail.
with open("example-input.dxf", "rb") as f:
resp = requests.put(
f"{server}/api/FileBinaryDirect?file=.dxf&isSearchInput=true&includeShapelets=true",
headers={
"Authorization": f"Bearer {token}",
"Content-Type": "application/octet-stream",
},
data=f.read(),
)
resp.raise_for_status()
print(resp.json())

Poll the indexing state of an uploaded file.

ItemValue
MethodGET
Path/api/FileStatus
AuthUser bearer token
ResponseString or null
ParameterRequiredNotes
fileUIDYesFile UID to poll
ResponseMeaning
nullNot indexed yet, or indexing failed before a usable timestamp was written
Timestamp stringIndexing completed
{ dupFids: ..., simFids: ... }Indexing completed and duplicates/similar-file info is available

If the file was uploaded with rmIfDup=true, duplicate detection can remove the file after status is checked.

Terminal window
curl -G "https://your-server.example.com/api/FileStatus" \
-H "Authorization: Bearer USER_BEARER_TOKEN" \
--data-urlencode "fileUID=b5d3674c-488c-41cb-a9f7-58a42cac85dd"