This page covers:
GET /api/FilePUT /api/FileDELETE /api/FilePUT /api/FileBinaryPUT /api/FileBinaryDirectGET /api/FileStatus
Fetch a file record by UID or by full file path.
| Item | Value |
|---|
| Method | GET |
| Path | /api/File |
| Auth | User bearer token |
| Response | FileMap JSON |
| Parameter | Required | Format | Notes |
|---|
fileUID | One of fileUID or fileName | GUID | If both are present, fileUID is used first. |
fileName | One of fileUID or fileName | Full stored file path | Example: Design/chair.step |
includeShapelets | No | true or false | Adds shapelet, page, and image detail where available. |
lgFileNumber | No | String | Page/view selector for multi-page files. |
includeShapes | No | true or false | Internal/mobile-only detail. Do not use unless directed. |
accountName | No | String | Only use if VizSeek explicitly tells you to. |
| Field | Meaning |
|---|
UID | File UID |
VizSpaceID | Company or owner context |
FileName | Stored file path/name |
DisplayName | User-facing display name |
Attributes | Saved structured attributes |
ExtractedAttributes | Extracted attributes, when populated |
ThumbNailURLFromID | Thumbnail URL |
PNGURLFromID | Large-image URL |
PDFUrl | PDF viewer URL if applicable |
HasThumbnail | Thumbnail availability flag |
IndexingFinished | true when indexing is complete |
AssemblyParents / AssemblyChildren | Assembly 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",
"document_number=AX-1000",
"document_type=Assembly",
"ThumbNailURLFromID": "https://your-server.example.com/.../sm.jpg",
"PNGURLFromID": "https://your-server.example.com/.../lg.png",
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)
| Item | Value |
|---|
| Method | PUT |
| Path | /api/File |
| Auth | User bearer token |
| Content-Type | application/json |
| Response | Plain file UID string |
| Parameter | Required | Format | Notes |
|---|
file | Yes | URL-encoded string | For search input, send only the extension such as .png or .stp. For database upload, send the full stored path such as Design/chair.step. |
isGZipCompressed | No | true or false | Legacy. Only set this when the bytes are actually gzipped. |
isSearchInput | No | true or false | Defaults to true. |
attributes | No | URL-encoded nested query string | Only applied when isSearchInput=false. |
QRCodeId | No | String | Internal only. |
categoryId | No | Integer | Required only for companies that use file categories. |
textOnly | No | true or false | Skip shape indexing. |
attrTemplate | No | String | Do not use unless VizSeek instructs you to. |
uid | No | GUID | If provided, the upload must be a valid GUID. Existing files with that UID are overwritten. |
rmIfDup | No | true or false | Remove later duplicates that match this file. |
isPriority | No | true or false | Legacy flag. |
overwriteFile | No | true, false, or omitted | Controls duplicate-path behavior for company database uploads. |
indexAssemblyComponents | No | true or false | Index assembly components too. |
callbackParam | No | String | Included in callback payload when callback settings are configured in the UI. |
accountName | No | String | Only use if VizSeek explicitly tells you to. |
The body is a JSON string whose value is the base64-encoded 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.
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"))
f"{server}/api/File?file=.dxf&isSearchInput=true",
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
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"))
"document_number=AX-1000"
"&document_type=Assembly"
"&material=Stainless Steel"
attributes_qs = urllib.parse.quote(attributes_raw, safe="")
f"{server}/api/File?file=Design/example-assembly.step"
f"&attributes={attributes_qs}",
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
PUT /api/File?file=.stp&isSearchInput=true HTTP/1.1
Host: your-server.example.com
Authorization: Bearer USER_BEARER_TOKEN
Content-Type: application/json
Delete a file by UID.
| Item | Value |
|---|
| Method | DELETE |
| Path | /api/File |
| Auth | User bearer token |
| Response | Boolean |
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.
| Item | Value |
|---|
| Method | PUT |
| Path | /api/FileBinary |
| Auth | User bearer token |
| Content-Type | application/octet-stream |
| Response | Plain file UID string |
Use the same query parameters described for PUT /api/File.
with open("example-input.dxf", "rb") as f:
f"{server}/api/FileBinary?file=.dxf&isSearchInput=true",
"Authorization": f"Bearer {token}",
"Content-Type": "application/octet-stream",
Same raw-binary upload pattern as FileBinary, but the response is a populated FileMap object instead of only the UID.
| Item | Value |
|---|
| Method | PUT |
| Path | /api/FileBinaryDirect |
| Auth | User bearer token |
| Content-Type | application/octet-stream |
| Response | FileMap JSON |
| Parameter | Required | Notes |
|---|
includeShapelets | No | Include shapelet detail in the returned FileMap. |
lgFileNumber | No | Page/view selector for multi-page assets. |
includeShapes | No | Internal/mobile-only detail. |
with open("example-input.dxf", "rb") as f:
f"{server}/api/FileBinaryDirect?file=.dxf&isSearchInput=true&includeShapelets=true",
"Authorization": f"Bearer {token}",
"Content-Type": "application/octet-stream",
Poll the indexing state of an uploaded file.
| Item | Value |
|---|
| Method | GET |
| Path | /api/FileStatus |
| Auth | User bearer token |
| Response | String or null |
| Parameter | Required | Notes |
|---|
fileUID | Yes | File UID to poll |
| Response | Meaning |
|---|
null | Not indexed yet, or indexing failed before a usable timestamp was written |
| Timestamp string | Indexing 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.
curl -G "https://your-server.example.com/api/FileStatus" \
-H "Authorization: Bearer USER_BEARER_TOKEN" \
--data-urlencode "fileUID=b5d3674c-488c-41cb-a9f7-58a42cac85dd"