Innoslate Enterprise Integration Documentation
  1. Innoslate Help Center
  2. Innoslate Enterprise
  3. Innoslate Enterprise Integration Documentation

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's API ecosystem.
API Elements Available  Explore the extensive array of API elements available in Innoslate. We provide a comprehensive overview of each component.

Innoslate offers a comprehensive API set that is built upon the principles of Representational State Transfer (REST), a widely adopted architectural style for web services. This approach provides a structured framework for interactive applications to exchange data using standard HTTP methods, including GET, POST, PUT, and DELETE. REST operates under a stateless, client-server model, ensuring that each request contains all the information needed for processing. This design enhances scalability and allows for independent server operations. By emphasizing resources identified by unique URIs, REST facilitates organized and efficient data access and manipulation. Its inherent simplicity and adaptability make REST an excellent choice for developing APIs that are compatible with various applications and data formats, such as JSON and XML, thereby promoting seamless integration and empowering developers to build powerful applications.

Getting Started

To begin utilizing the APIs, please ensure you have the following prerequisites:

1. Access to Innoslate Enterprise. If you are currently using Innoslate Cloud, kindly reach out to your Account Manager for assistance in obtaining access to Innoslate Enterprise.

2. An API Authentication Token.

3. A REST Client, which may vary based on your technical expertise.

Generating Authentication Token:

  1. My profile ButtonClick the “User Account” drop-down menu (green circle with your initial) at the top right of the Innoslate navigation bar.
  2. Click “My Profile”.
  3. This opens the “Edit Your Profile Information” menu. Select 'Create API Key'.

API Key Generation

4.      Give the API key a name then click “Generate Authentication Key”.

generate api

5.    The API key will generate the authentication token. Note: Once you leave this view you will not see the authentication token so copy it to a safe place.

6.    Exit the view either by clicking the “Save”, “Cancel”, or ‘X’ at the top of the modal. The authentication token does not require the save button to be clicked.

API Call Requirements

  1. In a rest client, pick the method type: GET, POST, PUT, and DELETE.
  2. Type in the URL to your Innoslate instance followed by the appropriate API:
    http://localhost:8080/api/v4/o/demo/p/232/users
  3. Headers:
    1. Add “Authorization” with a value of 'basic' and then the API Key. Ensure a space between the value 'basic' and the API Key with no trailing space.
api basic header

Allocate Ids

To successfully add new objects to projects using the PUT or POST methods, you must first allocate  with the following API call. After obtaining the returned IDs and Global IDs, you will use the IDs in the payload to update entities and 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

API Elements 

Entities:

  • Entities from the search query
    • Method: GET
    • URL: api/v4/o/:organizationSlug/entities - Parameters: o query
      • project Id
    • 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:
      • includeProject Id
    • 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
    • Method: GET
    • 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)