This page covers:
GET /api/FileAttributesPUT /api/FileAttributesDELETE /api/FileAttributesGET /api/AttributeValuesGET /api/PMIDataPUT /api/ExtractedAttributeFeedbackGET /api/CustomProductCategory
Return the attributes currently used by the authenticated user’s company.
| Item | Value |
|---|
| Method | GET |
| Path | /api/FileAttributes |
| Auth | User bearer token |
| Response | Array of FileAttribute objects |
curl "https://your-server.example.com/api/FileAttributes" \
-H "Authorization: Bearer USER_BEARER_TOKEN"
Add or replace attributes on a file.
| Item | Value |
|---|
| Method | PUT |
| Path | /api/FileAttributes |
| Auth | User bearer token |
| Content-Type | application/json |
| Response | Boolean |
| Parameter | Required | Notes |
|---|
fileUID | One of fileUID or fileName | File UID to update |
fileName | One of fileUID or fileName | Full stored file path. The API resolves this to a UID first. |
deleteExisting | No | Defaults to true. When true, this acts as a full replace. |
The body is a JSON string whose contents are a JSON array of name=value strings.
That means the wire body looks like this:
"[\"document_type=Assembly\",\"region=North America|Europe\",\"weight(kg)=12.3\"]"
Do not send a raw JSON array. The controller receives a string first and then deserializes that string into string[].
- Single value:
document_number=AX-1000 - Multiple values in one field:
region=North America|Europe - Unit-bearing field:
weight(kg)=12.3
server = "https://your-server.example.com"
token = "USER_BEARER_TOKEN"
file_uid = "b5d3674c-488c-41cb-a9f7-58a42cac85dd"
"document_type=Assembly",
"region=North America|Europe",
body = json.dumps(json.dumps(attrs))
f"{server}/api/FileAttributes?fileUID={file_uid}",
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
Remove all attributes from a file.
| Item | Value |
|---|
| Method | DELETE |
| Path | /api/FileAttributes |
| Auth | User bearer token |
| Response | Boolean |
curl -X DELETE "https://your-server.example.com/api/FileAttributes?fileUID=b5d3674c-488c-41cb-a9f7-58a42cac85dd" \
-H "Authorization: Bearer USER_BEARER_TOKEN"
Return the unique values and counts for one attribute in the current company.
| Item | Value |
|---|
| Method | GET |
| Path | /api/AttributeValues |
| Auth | User bearer token |
| Response | Array of { "Name": string, "Count": int } |
| Parameter | Required | Notes |
|---|
attribute | Yes | Attribute name to aggregate |
curl -G "https://your-server.example.com/api/AttributeValues" \
-H "Authorization: Bearer USER_BEARER_TOKEN" \
--data-urlencode "attribute=region"
Return the extracted PMI payload for a file.
| Item | Value |
|---|
| Method | GET |
| Path | /api/PMIData |
| Auth | User bearer token |
| Response | PMIData JSON |
| Parameter | Required | Notes |
|---|
fileUID | Yes | File UID to read PMI from |
| Field | Meaning |
|---|
PMI | JSON text string containing the PMI array |
UnstructuredText | Extracted free text |
ExtractedAttributes | Extracted attributes as name=value strings |
"PMI": "[{\"page\":0,\"ImageSize\":[2550,3300],\"PMI\":[{\"box\":[1274,356,29,125],\"type_id\":0,\"text\":\"11\"}]}]",
"UnstructuredText": "Example drawing title",
"document_number=AX-1000",
curl -G "https://your-server.example.com/api/PMIData" \
-H "Authorization: Bearer USER_BEARER_TOKEN" \
--data-urlencode "fileUID=b5d3674c-488c-41cb-a9f7-58a42cac85dd"
Send feedback about attributes VizSeek extracted from a file.
| Item | Value |
|---|
| Method | PUT |
| Path | /api/ExtractedAttributeFeedback |
| Auth | User bearer token |
| Content-Type | application/json |
| Response | Plain feedback ID string |
| Parameter | Required | Notes |
|---|
fileUID | Yes | File UID the feedback applies to |
feedback | Yes | URL-encoded explanation of what should have been extracted differently |
user | No | URL-encoded external user identifier |
feedbackId | No | Optional GUID you want to control |
The body is a JSON string containing a comma-separated list of extracted attributes, for example:
"Document Type=Drawing,Region=North America"
server = "https://your-server.example.com"
token = "USER_BEARER_TOKEN"
file_uid = "b5d3674c-488c-41cb-a9f7-58a42cac85dd"
body = json.dumps("Document Type=Drawing,Region=North America")
feedback = urllib.parse.quote("Region should have been Europe", safe="")
f"{server}/api/ExtractedAttributeFeedback?fileUID={file_uid}&feedback={feedback}",
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
Create a custom product category for the authenticated user’s company.
| Item | Value |
|---|
| Method | GET |
| Path | /api/CustomProductCategory |
| Auth | User bearer token |
| Response | ProductCategory JSON |
| Parameter | Required | Notes |
|---|
name | Yes | URL-encoded category name |
"Name": "My New Category",
"FullName": "My New Category",
curl -G "https://your-server.example.com/api/CustomProductCategory" \
-H "Authorization: Bearer USER_BEARER_TOKEN" \
--data-urlencode "name=Prototype Parts"