Innoslate's REST APIs
Learn about Authorization and API Elements available through Enterprise Edition
Sections Available in REST API
Function
Description
Authorization
Learn the intricacies of access to authorization within Innoslate Enterprise's API ecosystem
API Elements Available
Explore the extensive array of API elements available in Innoslate. We provide a comprehensive overview of each element.
Representational State Transfer (REST) is an architectural style used in modern web services development. It defines a set of constraints for how the architecture of an interactive application on the internet should behave. REST APIs allow different systems to communicate with each other over the internet using standard HTTP methods, such as GET, POST, PUT, DELETE, and more.
Please note, Innoslate's REST APIs can only be utilized with Innoslate Enterprise. If you are utilizing Cloud and would like to use the APIs, please contact your Account Manager to discuss accessing Innoslate Enterprise.
Authorization
In a rest client, pick the method type: GET, POST, PUT, and DELETE.
Type in the URL:
Enterprise: http://localhost:8080/api/v4/o/demo/p/232/users
Headers:
Add “Authorization” with value of basic and then the API Key.
Note: Ensure there is a space between basic and the API Key.
API Elements
Allocate Ids:
In order to put/post new objects to projects, it is necessary to first allocate Ids for them.
Use the returned Ids and Global Ids in the payload when updating entities to create new objects.
Method: Get
URL: api/v4/o/:organizationSlug/allocate_ids - Parameters:
Type: entity, class, relation, property, label
Count
Response: [{“id”:130,”globalId”: “I_9AYHDK70QMK99_8H187”}]
Example: api/v4/o/demo/allocate_ids?type=entity&count=10
Entities:
Entities from the search query
Method: GET
URL: api/v4/o/:organizationSlug/entities - Parameters: o query
Optional Parameters: o limit o offset
Response: Array of Entity Objects
Example: api/v4/o/demo/entities?query=class%3AAction&projectId=64&limit=30&offset=0
Method: POST, PUT
URL: api/v4/o/:organizationSlug/entities
Payload: Array of Entity Objects -
Payload Example: [{"number":"1","labelIds":[],"sortNumber":"000001.00000.0000.000.000.000.000.15639", "classId":3,"createdIn" :0,"modifiedIn":0,"linkedLabelId":0,"rels":[],"attrs":{}, "controlStep":null,"controlType":"SERIAL","branches":[],"di agrams":{}, "isArchived":false,"isLocked":false,"followers":["john.doe"],"projectId":64, "globalId":"I_6168Y8QCZCK 6S_AKAJ8HC1TC3ES","isRedacted":false,"id":15639, "name":"Asset","description":"","created":1541771921633," modified":1541771973213, "createdBy":"john.doe","modifiedBy":"john.doe","version":2}]
Response: Array of Entity Objects
Fetch entities by Ids
Method: GET
URL: api/v4/o/:organizationSlug/entities/:ids - Optional Parameters:
includeChildren o includeArchived o includeRelations o levels
Response: Array of Entity Objects
Update entities by Ids
Method: POST, PUT
URL: api/v4/o/:organizationSlug/entities/ids
Payload: Array of Entity Object
Payload Example: [234, 233]
Response: Array of Entity Objects
Delete entities by Ids
Method: DELETE
URL: api/v4/o/:organizationSlug/entities/ids
Payload: Array of Entity Object
Payload Example: [234, 233]
Response: Array of Entity Objects
Transform entities into another class
Method: PUT
URL: api/v4/o/:organizationSlug/entities/transform/:classId/:ids
Response: Array of new transformed Entity Objects
Example: api/v4/o/demo/entities/transform/3/9390,9450
Revert entities to previous version
Method: PUT
URL: api/v4/o/:organizationSlug/entities/revert/:ids/:versionNumbers
Response: Array of reverted Entity Objects
Example: api/v4/o/demo/entities/transform/3/9390,9450
Restore deleted entities
Method: PUT
URL: api/v4/o/:organizationSlug/entities/restore/:ids
Response: Array of reverted Entity Objects
Example:
Auto number entities
Method: PUT
URL: api/v4/o/:organizationSlug/entities/autonumber/:id - Optional Parameters: o startNumber o singleLevel o useControlStep
Response: Array of auto numbered Entity Objects - Example:
Counts:
Fetch entities count:
Method: GET
URL: api/v4/o/:organizationSlug/p/:projectId/entities/counts - Parameters (ONE of the following is required):
label=true o class=true
propertyId=<property ID>
Response: Array of label Id, classes Id, or property Id and their entities count
Example: /api/v4/o/orgName/p/1/entities/counts?propertyId=262 Fetch diagram count
Method: GET
URL: api/v4/o/:organizationSlug/p/:projectId/diagrams/counts
Response: Array of diagrams their entities count
Schema:
Organization schema
Method: GET
URL: api/v4/o/:organizationSlug/schema
Response: Schema Object
Update organization schema
Method: POST, PUT
URL: api/v4/o/:organizationSlug/schema - Payload: Schema Object -
Payload Example:
Response: Schema Object
Delete organization schema properties or labels
Method: DELETE
URL: api/v4/o/:organizationSlug/schema/:type/:ids
Response: Schema Object
Fetch project schema
Method: GET
URL: api/v4/o/:organizationSlug/p/:projectId/schema
Response: Schema Object
Update project schema
Method: POST, PUT
URL: api/v4/o/:organizationSlug/p/:projectId/schema - Payload: Schema Object - Payload Example:
Response: Schema Object
Delete project schema properties or labels
Method: DELETE
URL: api/v4/o/:organizationSlug/p/:projectId/schema/:type/:ids - Response: Schema Object
Baselines:
Fetch baselines
Method: GET
URL: api/v4/o/:organizationSlug/p/:projectId/baselines
Optional Parameters: o key
Response: Baseline Objects
Create new baseline
Method: POST
URL: api/v4/o/:organizationSlug/p/:projectId/baselines
Payload: Baseline Object
Payload Example:
Response: Baseline Object
Update baseline
Method: PUT
URL: api/v4/o/:organizationSlug/p/:projectId/baselines
Payload: Baseline Object
Payload Example:
Response: Baseline Object
Delete baseline
Method: DELETE
URL: api/v4/o/:organizationSlug/p/:projectId/baselines
Payload: Baseline Object
Payload Example:
Response: Baseline Object Baseline Snapshot:
Fetch baseline snapshot
Method: PUT
URL: api/v4/o/:organizationSlug/p/:projectId/baselines/:baselineId/snapshot
Response: Array of baselined Entity Objects
Projects:
Fetch my projects
Method: GET
URL: api/v4/o/:organizationSlug/p - Optional Parameters:
Response: Array of Project Objects
Fetch a project
Method: GET
URL: api/v4/o/:organizationSlug/p/:projectId
Response: Project Object
Update a project
Method: POST, PUT
URL: api/v4/o/:organizationSlug/p/:projectId - Payload: Project Object - Payload Example:
Response: Project Object
Delete a project
Method: DELETE
URL: api/v4/o/:organizationSlug/p/:projectId
Response: Project Object
Folders:
folders
Method: GET
URL: api/v4/o/:organizationSlug/folders - Response: Array of Folder Objects
Roles:
Fetch roles
Method: GET
URL: api/v4/o/:organizationSlug/roles
Response: Array of Role Objects
Create new roles
Method: POST
URL: api/v4/o/:organizationSlug/roles
Payload: Role Object
Payload Example: {"name": "my role", "description": "role description", "permissions": ["READ", "SHARE"]}
Response: Role Object
Update role
Method: PUT
URL: api/v4/o/:organizationSlug/roles
Payload: Role Object
Payload Example: {"name": "my role2", "description": "role description", "permissions": ["READ"]} - Response: Role Object
Delete a role
Method: DELETE
URL: api/v4/o/:organizationSlug/roles/:roleId
Response: Role Object
Example: /api/v4/o/free/roles/1
Teams:
Fetch
Method: GET
URL: api/v4/o/:organizationSlug/teams
Response: Array of Team Objects
Create new team
Method: POST
URL: api/v4/o/:organizationSlug/teams
Payload: Team Object
Payload Example: {"name": "my team", "description": "team description"} - Response: Team Object
Update team
Method: PUT
URL: api/v4/o/:organizationSlug/teams
Payload: Team Object
Payload Example: {"name": "my team 2", "description": "team description 2"}
Response: Team Object
Delete a team
Method: DELETE
URL: api/v4/o/:organizationSlug/teams/:teamId
Response: Team Object
Example: /api/v4/o/free/team/1
Team Users:
Fetch users on a team
Method: GET
URL: api/v4/o/:organizationSlug/teams/:teamId/users
Response: Array of Team Users Objects
Add user to a team
Method: POST
URL: api/v4/o/:organizationSlug/teams/:teamId/users/:usernamesOrEmails
Response: Array of User Objects
Example: /api/v4/o/:orgslug/teams/1/users/john.doe
Remove a user from a team
Method: DELETE
URL: api/v4/o/:organizationSlug/teams/:teamId/users/:usernamesOrEmails
Response: Array of User Objects
Example: /api/v4/o/:orgslug/teams/1/users/john.doe
Files:
Download file
Method: GET
URL: api/v4/o/:organizationSlug/files/:key/download
Response: Downloads the file
Serve file
Method: Get
URL: api/v4/o/:organizationSlug/files/:key/serve - Optional Parameters: o preview
Response: Serves the file
Fetch file’s metadata
Method: GET
URL: api/v4/o/:organizationSlug/files/:key
Response: File Object’s Metadata
Upload File
Method: POST
URL: api/v4/o/:organizationSlug/p/:projectId/files
Payload: Binary file
Response: File Object
Update File
Method: PUT
URL: api/v4/o/:organizationSlug/p/:projectId/files
Payload: Array of Files
Response: Array of File Object
Download project file
Method: GET
URL: api/v4/o/:organizationSlug/p/:projectId/files/:key/download
Response: Downloads the file
Serve project file - Method: Get
URL: api/v4/o/:organizationSlug/p/:projectId/files/:key/serve - Optional Parameters: o preview
Response: Serves the file
Fetch project file’s metadata
Method: GET
URL: api/v4/o/:organizationSlug/p/:projectId/files/:key - Response: File Object’s Metadata
Comments:
Fetch comments
Method: GET
URL: api/v4/o/:organizationSlug/comments /:id
Response: Comment Object
Fetch by entity Id - Method: GET
URL: api/v4/o/:organizationSlug/comments/entities/:entityId
Response: Array of Comment Objects
Fetch by project Id
Method: GET
URL: api/v4/o/:organizationSlug/p/:projectId/comments - Optional Parameters: o Limit
offset
Response: Array of Comment Objects
Create new comment
Method: POST
URL: api/v4/o/:organizationSlug/comments
Payload: Array of Comment Objects
Response: Array of Comment Objects
Update a comment
Method: PUT
URL: api/v4/o/:organizationSlug/comments
Payload: Comment Object
Response: Comment Object
Delete a comment
Method: DELETE
URL: api/v4/o/:organizationSlug/comments/:id - Response: Comment Object
Exporters:
Export XML
Method: GET
URL: api/v4/o/:organizationSlug/p/:projectId/export/xml
Response: Export the XML Innoslate File
Export Inno
Method: GET
URL: api/v4/o/:organizationSlug/p/:projectId/export/ zip - Response: Exports the Inno Innoslate File
Quality Checker:
Run Quality Checker
Method: POST
URL: api/v4/o/:organizationSlug/qualitychecker
Payload: Array of EntityIds
Response: success
Project users (Share/Unshare):
Fetch a user to project
Method: GET
URL: api/v4/o/:organizationSlug/p/:projectId/users
Response: Array of User Objects
Add
Method: POST
URL: api/v4/o/:organizationSlug/users/:usernamesOrEmails Parameters:roleId
Response: User Objects
Example: /api/v4/o/free/p/1/users/john.doe?roleId=1
Remove
Method: DELETE
URL: api/v4/o/:organizationSlug/users/:usernamesOrEmails
Response: User Objects
Example: /api/v4/o/free/p/1/users/john.doe
Project Team (Share/Unshare):
Fetch team on a project
Method: GET
URL: api/v4/o/:organizationSlug/p/:projectId/teams
Response: Array of Team Objects
Add team to a project
Method: POST
URL: api/v4/o/:organizationSlug/p/:projectId/ teams /:teamId - Parameters: o roleId
Response: Team Object
Example: /api/v4/o/free/p/1/teams/2?roleId=1
Remove
Method: DELETE
URL: api/v4/o/:organizationSlug/p/:projectId/teams/:teamId
Response: Team Object
Example: /api/v4/o/free/p/1/ teams/2
Organizations:
Fetch my organizations
Method: GET
URL: api/v4/o
Response: Array of organizations
Fetch organization by Id
Method: GET
URL: api/v4/o/:organizationSlug
Response: Organization Object
Create organization
Method: POST
URL: api/v4/o
Payload: Organization Object
Payload Example: {"slug": "example", "name": "org name", "description": "org description","membersCanCreateProjects": true}
Response: Organization Object
Update organization
Method: PUT
URL: api/v4/o
Payload: Organization Object - Payload Example: {"slug": "example", "name": "org name1", "description": "org description2","membersCanCreateProjects": false}
Response: Organization Object
Delete organization
Method: DELETE
URL: api/v4/o/:organizationSlug
Response: Organization Object
Example: /api/v4/o/example
Organization Users:
Fetch organization users
Method: GET
URL: api/v4/o/:organizationSlug/users
Response: Array of users
Add user to an organization
Method: POST
URL: /api/v4/o/:orgslug/users/:username
Parameters o Permission: [admin, member]
Response: User Object
Example: /api/v4/o/free/users/john.doe?permission=member
Remove user from organization
Method: DELETE
URL: api/v4/o/:organizationSlug/users/:usernamesOrEmails
Response: User Object
Example: /api/v4/o/free/users/john.doe
Logs:
Fetch access logs
Method: GET
URL: api/v4/accesslogs/:type/:since
Response: Array of User and last access
Fetch access logs for the past 30 days
Method: GET
URL: api/v4/accesslogs/:type
Response: Array of User and last access
Fetch access log per organization
URL: api/v4/o/:organizationSlug/accesslogs/:type/:since
Response: Array of User and last access
Fetch access logs per organization for the past 30 days
Method: GET
URL: api/v4/o/:organizationSlug/accesslogs/:type
Response: Array of User and last access
Fetch new user logs
Method: GET
URL: api/v4/newuserlogs/:since
Response: Array of Users
Fetch new user logs for the past 30 days
Method: GET
URL: api/v4/newuserlogs - Response: Array of User
Intelligence:
Run Intelligence
Method: POST
URL: api/v4/o/:organizationSlug/p/:projectId/intelligence - Response: List of Issues
Traceability assist:
Run traceability assist
Method: POST
URL: api/v4/o/:organizationSlug/assist/traceability
Response: Array of Objects with entityIds and confidence
Suspect assist:
Run suspect assist
Method: POST
URL: api/v4/o/:organizationSlug/assist/ suspect
Response: Array of Objects with entityIds and confidence
Feedback:
Send Feedback
Method: POST
URL: api/v4/o/:organizationSlug/feedback
Payload: Organization Object
Payload Example: { email: "", firstName: "John", lastName: "Doe", message: "Test Message"}
Response: success
⚠️Reminder: Allocate Ids:
In order to put/post new objects to projects, it is necessary to first allocate Ids for them.
Use the returned Ids and Global Ids in the payload when updating entities to create new entities.
Method: Get
URL: api/v4/o/:organizationSlug/allocate_ids - Parameters:
Type: entity, class, relation, property, label
Count
Response: [{“id”:130,”globalId”:I_9AYHDK70QMK99_8H187}]
To continue learning about Enterprise User Guides, Click Here .
(Next Article: JAVA SDK Integration)