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

  1. In a rest client, pick the method type: GET, POST, PUT, and DELETE.
  2. Type in the URL:
    1. Enterprise: http://localhost:8080/api/v4/o/demo/p/232/users
  3. Headers:
    1. Add “Authorization” with value of basic and then the API Key.
      API Header

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
      • 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

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)