{ "opencollection": "1.0.0", "info": { "name": "Physna Public ClientCredentials Models API", "version": "2.0.1" }, "items": [ { "info": { "name": "Models", "type": "folder" }, "items": [ { "info": { "name": "GetModels", "type": "http" }, "http": { "method": "GET", "url": "/v2/models", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "search", "value": "", "type": "query", "description": "A general string used to search and filter on all available models." }, { "name": "folderIds", "value": "", "type": "query", "description": "The `folderIds` property has been deprecated. Please use the `filter` property instead." }, { "name": "filter", "value": "", "type": "query", "description": "A [`FilterExpression`](#model-FilterExpression). See the [API Reference](https://physna.github.io/public-api-guide/api-reference/filter-expressions) for more details." }, { "name": "order", "value": "", "type": "query", "description": "An [`OrderExpression`](#model-OrderExpression). See the [API Reference](https://physna.github.io/public-api-guide/api-reference/order-expressions) for more details. If no order is provided the results are returned in order of relevancy." }, { "name": "perPage", "value": "20", "type": "query", "description": "The number of items to return per page." }, { "name": "page", "value": "1", "type": "query", "description": "A 1 based page number used in conjunction with `perPage`." } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } } }, { "info": { "name": "CreateModels", "type": "http" }, "http": { "method": "POST", "url": "/v2/models", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "createMissingFolders", "value": "", "type": "query", "description": "If set to true, any folders that do not exist will be created. If set to false, any folders that do not exist will cause an error." }, { "name": "collection", "value": "", "type": "query", "description": "Optional name of a collection the uploaded models will be added to. If the collection does not exist, it will be created." } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Create Records for models and receive the needed signed uploadUrl to upload the model files and initiate ingestion.\n\nCurrent Limitations:\n- Filetypes Supported: '.3ds', '.asm', '.catpart', '.catproduct', '.glb', '.iges', '.igs', '.obj', '.par', '.prt', '.sldasm', '.sldprt', '.stl', '.step', '.stp', '.x_b', '.x_t',\n- Versioned Creo files are also supported. For example `part.prt.1` or `assembly.asm.2`.\n- Maximum 100 Models can be created at once.\n- The `folderName` used in the `filePath` must" }, { "info": { "name": "DeleteModels", "type": "http" }, "http": { "method": "DELETE", "url": "/v2/models", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "ids", "value": "", "type": "query", "description": "A list of modelIds to be deleted" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Bulk delete models. Bulk delete is permanent and cannot be undone." }, { "info": { "name": "IN DEVELOPMENT", "type": "http" }, "http": { "method": "GET", "url": "/v2/models/match-report", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "threshold", "value": "", "type": "query", "description": "A float number that is the minimum percentage a match must be to be returned as a counted match." }, { "name": "folderIds", "value": "", "type": "query", "description": "A list of folder ids to filter the matches and counts by." }, { "name": "page", "value": "1", "type": "query", "description": "A 1 based page number used in conjunction with `perPage`." }, { "name": "perPage", "value": "20", "type": "query", "description": "The number of items to return per page." } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "IN DEVELOPMENT" }, { "info": { "name": "IN DEVELOPMENT", "type": "http" }, "http": { "method": "GET", "url": "/v2/models/grouped-match-report", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "threshold", "value": "", "type": "query", "description": "A float number that is the minimum percentage a match must be to be returned as a counted match." }, { "name": "folderIds", "value": "", "type": "query", "description": "A list of folder ids to filter the matches and counts by." } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "IN DEVELOPMENT" }, { "info": { "name": "GetModelStateReport", "type": "http" }, "http": { "method": "GET", "url": "/v2/models/state-report", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "folderIds", "value": "", "type": "query", "description": "An optional list of folder ids to filter the model states to." } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } } }, { "info": { "name": "ReprocessModels", "type": "http" }, "http": { "method": "POST", "url": "/v2/models/reprocess", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "filter", "value": "", "type": "query", "description": "A [`FilterExpression`](#model-FilterExpression). See the [API Reference](https://physna.github.io/public-api-guide/api-reference/filter-expressions) for more details." } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Bulk reprocess models." }, { "info": { "name": "ReprocessModel", "type": "http" }, "http": { "method": "POST", "url": "/v2/models/:id/reprocess", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Reprocess model." }, { "info": { "name": "GetModel", "type": "http" }, "http": { "method": "GET", "url": "/v2/models/:id", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } } }, { "info": { "name": "DeleteModel", "type": "http" }, "http": { "method": "DELETE", "url": "/v2/models/:id", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } }, "docs": "Delete a model. Deleting a model is permanent and cannot be undone." }, { "info": { "name": "GetModelMatches", "type": "http" }, "http": { "method": "GET", "url": "/v2/models/:id/matches", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" }, { "name": "threshold", "value": "", "type": "query", "description": "A float number (0-1) that is the minimum percentage a match must be to be returned." }, { "name": "filter", "value": "", "type": "query", "description": "A [`FilterExpression`](#model-FilterExpression). See the [API Reference](https://physna.github.io/public-api-guide/api-reference/filter-expressions) for more details." }, { "name": "page", "value": "1", "type": "query", "description": "A 1 based page number used in conjunction with `perPage`." }, { "name": "perPage", "value": "20", "type": "query", "description": "The number of items to return per page." } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } } }, { "info": { "name": "GetPartMatches", "type": "http" }, "http": { "method": "GET", "url": "/v2/models/:id/part-matches", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" }, { "name": "threshold", "value": "", "type": "query", "description": "A float number (0-1) that is the minimum percentage a match must be to be returned." }, { "name": "filter", "value": "", "type": "query", "description": "A [`FilterExpression`](#model-FilterExpression). See the [API Reference](https://physna.github.io/public-api-guide/api-reference/filter-expressions) for more details." }, { "name": "page", "value": "1", "type": "query", "description": "A 1 based page number used in conjunction with `perPage`." }, { "name": "perPage", "value": "20", "type": "query", "description": "The number of items to return per page." } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } } }, { "info": { "name": "GetScanMatches", "type": "http" }, "http": { "method": "GET", "url": "/v2/models/:id/scan-matches", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" }, { "name": "threshold", "value": "", "type": "query", "description": "A float number (0-1) that is the minimum percentage a match must be to be returned." }, { "name": "filter", "value": "", "type": "query", "description": "A [`FilterExpression`](#model-FilterExpression). See the [API Reference](https://physna.github.io/public-api-guide/api-reference/filter-expressions) for more details." }, { "name": "page", "value": "1", "type": "query", "description": "A 1 based page number used in conjunction with `perPage`." }, { "name": "perPage", "value": "20", "type": "query", "description": "The number of items to return per page." } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } } }, { "info": { "name": "GetVisualMatches", "type": "http" }, "http": { "method": "GET", "url": "/v2/models/:id/visual-matches", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" }, { "name": "threshold", "value": "", "type": "query", "description": "A float number (0-1) that is the minimum percentage a match must be to be returned." }, { "name": "filter", "value": "", "type": "query", "description": "A [`FilterExpression`](#model-FilterExpression). See the [API Reference](https://physna.github.io/public-api-guide/api-reference/filter-expressions) for more details." }, { "name": "page", "value": "1", "type": "query", "description": "A 1 based page number used in conjunction with `perPage`." }, { "name": "perPage", "value": "20", "type": "query", "description": "The number of items to return per page." } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } } }, { "info": { "name": "GetSourceFile", "type": "http" }, "http": { "method": "GET", "url": "/v2/models/:id/source-file", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "A processed model id" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } } }, { "info": { "name": "GetViewerFile", "type": "http" }, "http": { "method": "GET", "url": "/v2/models/:id/viewer-file", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path", "description": "A processed model id" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } } }, { "info": { "name": "GetMetadata", "type": "http" }, "http": { "method": "GET", "url": "/v2/models/:id/metadata", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" }, { "name": "filter", "value": "", "type": "query", "description": "A [`FilterExpression`](#model-FilterExpression). See the [API Reference](https://physna.github.io/public-api-guide/api-reference/filter-expressions) for more details." }, { "name": "order", "value": "", "type": "query", "description": "An [`OrderExpression`](#model-OrderExpression). See the [API Reference](https://physna.github.io/public-api-guide/api-reference/order-expressions) for more details." }, { "name": "page", "value": "1", "type": "query", "description": "A 1 based page number used in conjunction with `perPage`." }, { "name": "perPage", "value": "20", "type": "query", "description": "The number of items to return per page." } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } } }, { "info": { "name": "UpsertMetadata", "type": "http" }, "http": { "method": "PUT", "url": "/v2/models/:id/metadata/:metadataKeyId", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" }, { "name": "metadataKeyId", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" }, "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } } }, { "info": { "name": "GetAssemblyTreeForModel", "type": "http" }, "http": { "method": "GET", "url": "/v2/models/:id/assembly-tree", "headers": [ { "name": "X-PHYSNA-TENANTID", "value": "" } ], "params": [ { "name": "id", "value": "", "type": "path" } ], "auth": { "type": "oauth2", "flow": "authorization_code", "authorizationUrl": "https://physna.okta.com/oauth2/default/v1/authorize", "accessTokenUrl": "https://physna.okta.com/oauth2/default/v1/token", "credentials": { "clientId": "{{clientId}}", "clientSecret": "{{clientSecret}}" } } } } ] } ], "bundled": true }