Exto
API Status
  • Introduction
  • Architecture
    • Microservice Architecture
    • Security
  • Release Cycle
  • Integration
    • Best Practices
    • Endpoints
    • Response Format
    • Error
    • Data Formats
    • Data API
      • Generate API Key
      • API
      • ID/Access Token
      • Azure API Gateway
      • Filter Master Record/Custom Module Records
  • Installation
    • Installing Exto on Kubernetes
      • Prerequisite
      • Installing Exto
        • Setup
        • Configuration
        • Installation
        • Purging
      • Tips and Tricks
        • AKS to use existing storage account
        • AKS with Application Gateway Ingress Controller
        • AKS Private Cluster
Powered by GitBook
On this page

Was this helpful?

  1. Integration
  2. Data API

API

PreviousGenerate API KeyNextID/Access Token

Last updated 3 months ago

Was this helpful?

Check the liveness of the service

get

This API provides liveness of the service

Responses
200Success
application/json
get
GET /data/api/v1/health/liveness HTTP/1.1
Host: platform.exto360.com
Accept: */*
200Success
{
  "ok": true,
  "cpuPercent": 1,
  "memPercent": 1
}

Check the readiness of the service

get

This API provides readiness of the service

Responses
200Success
application/json
get
GET /data/api/v1/health/readiness HTTP/1.1
Host: platform.exto360.com
Accept: */*
200Success
{
  "ok": true
}

Get all master records

get

This API retrieves all master records associated with a project or tenant. You can retrieve up to 1,000 records per request.

Path parameters
masterNamestringRequiredExample: LOCATION
Query parameters
pageSizeinteger · min: 1 · max: 1000RequiredExample: 1000
pageinteger · min: 1RequiredExample: 1
sortstringOptionalExample: createdAt
statusstringOptionalExample: Approved
filterstringOptionalExample: serial_number:NUMBER:eq:1234
Header parameters
X-Project-IdstringOptionalExample: p6iDlWb
Responses
200
Ok
application/json
400
Bad Request. The request contains invalid parameters.
application/json
401
Unauthorized. Invalid authentication token.
application/json
500
Internal Server Error. Something went wrong on the server.
application/json
get
GET /data/api/v1/master-record/{masterName} HTTP/1.1
Host: platform.exto360.com
Accept: */*
[
  {
    "_id": "text",
    "createdBy": "text",
    "createdAt": "text",
    "updatedBy": "text",
    "updatedAt": "text",
    "tenantID": "text"
  }
]

Get all module records

get

This API retrieves all custom module records for a specified project or tenant. You can retrieve up to 1,000 records per request.

Path parameters
moduleNamestringRequiredExample: CUSTOMMODULE
Query parameters
pageSizeinteger · min: 1 · max: 1000RequiredExample: 1000
pageinteger · min: 1RequiredExample: 1
filterstringOptionalExample: serial_number:NUMBER:eq:1234
Header parameters
X-PROJECT-IDstringOptionalExample: Vx6-j2Z
Responses
200
Ok
application/json
400
Bad Request. The request contains invalid parameters.
application/json
401
Unauthorized. Invalid authentication token.
application/json
500
Internal Server Error. Something went wrong on the server.
application/json
get
GET /data/api/v1/module-record/{moduleName} HTTP/1.1
Host: platform.exto360.com
Accept: */*
[
  {
    "_id": "text",
    "createdBy": "text",
    "createdAt": "text",
    "updatedBy": "text",
    "updatedAt": "text",
    "tenantID": "text"
  }
]

Get user access

get

This API retrieves all users along with their details, including first name, last name, email, and more. It also fetches tenant-level groups, projects, spaces, and project-level group information for all users. You can retrieve up to 1,000 users per request.

Query parameters
pageSizenumber · min: 1 · max: 1000RequiredExample: 1000
pagenumberRequiredExample: 1
Responses
200
Successful response with multiple user access details
application/json
400
Bad Request. The request contains invalid parameters.
application/json
401
Unauthorized. Invalid authentication token.
application/json
500
Internal Server Error. Something went wrong on the server.
application/json
get
GET /data/api/v1/user/user-access HTTP/1.1
Host: platform.exto360.com
Accept: */*
[
  [
    {
      "user": {
        "userName": "johndoe@exto360.com",
        "firstName": "John",
        "lastName": "Doe",
        "fullName": "John Doe",
        "email": "johndoe@exto360.com",
        "applicationRole": "PME",
        "loginMethod": "NATIVE",
        "company": "",
        "status": 0,
        "employeeId": null,
        "verifyEmailOTP": false,
        "autoRenewMSAccessToken": false,
        "autoRenewGoogleAccessToken": false
      },
      "groups": [],
      "projects": [
        {
          "projectID": "Vx6-j2Z",
          "groups": [],
          "spaces": []
        }
      ]
    },
    {
      "user": {
        "userName": "jasonsmith@exto360.com",
        "firstName": "Jason",
        "lastName": "Smith",
        "fullName": "Jason Smith",
        "email": "jasonsmith@exto360.com",
        "applicationRole": "PME",
        "loginMethod": "NATIVE",
        "company": "",
        "status": 1,
        "verifyEmailOTP": false,
        "autoRenewMSAccessToken": false
      },
      "groups": [
        "Group 3"
      ],
      "projects": [
        {
          "projectID": "Vx6-j2Z",
          "groups": [
            "GG3"
          ],
          "spaces": []
        }
      ]
    }
  ]
]

Get user access by username

get

For a given username, this API retrieves user information such as first name, last name, email, and more. It also fetches tenant-level groups, projects, spaces, and project-level group information associated with the user.

Query parameters
usernamestringRequired
Responses
200
Successful response with user details and access information.
application/json
400
Bad Request. Required fields are missing or invalid.
application/json
401
Unauthorized. Invalid authentication token.
application/json
500
Internal Server Error. Something went wrong on the server.
application/json
get
GET /data/api/v1/user/user-access/by-user HTTP/1.1
Host: platform.exto360.com
Accept: */*
{
  "user": {
    "userName": "johndoe@exto360.com",
    "firstName": "John",
    "lastName": "Doe",
    "fullName": "John Doe",
    "email": "johndoe@exto360.com",
    "applicationRole": "USER",
    "loginMethod": "SSO",
    "company": "Tech Corp",
    "status": 1,
    "employeeId": "EMP123456",
    "verifyEmailOTP": false,
    "autoRenewMSAccessToken": true
  },
  "groups": [
    "G1"
  ],
  "projects": [
    {
      "projectID": "p6iDlWb",
      "groups": [
        "G1"
      ],
      "spaces": [
        "S1"
      ]
    }
  ]
}

Get all groups

get

This API retrieves all project level groups and tenant leve groups. If onlyProjectGroups is set to true, it retrieves only project level groups. You can retrieve up to 1,000 groups per request.

Query parameters
pagenumberRequired
pageSizenumberRequired
onlyProjectsGroupsbooleanRequired
Responses
200
Successful response containing user project and group details.
application/json
400
Bad Request. The request contains invalid parameters.
application/json
401
Unauthorized. Invalid authentication token.
application/json
500
Internal Server Error. Something went wrong on the server.
application/json
get
GET /data/api/v1/user/groups HTTP/1.1
Host: platform.exto360.com
Accept: */*
[
  {
    "projects": [
      {
        "projectID": "p6iDlWb",
        "groups": [
          "G1",
          "G2",
          "G3",
          "su"
        ],
        "spaces": [
          "S1",
          "S2",
          "Space 3"
        ]
      },
      {
        "projectID": "RLze1VG",
        "groups": [
          "GG1 new"
        ],
        "spaces": [
          "SS1 new"
        ]
      },
      {
        "projectID": "MjiPB1r",
        "groups": [
          "Admin"
        ],
        "spaces": [
          "test space"
        ]
      },
      {
        "projectID": "Queen_p",
        "groups": [],
        "spaces": []
      }
    ],
    "groups": [
      "G1",
      "G2",
      "Group4",
      "Group3"
    ]
  }
]
  • GETCheck the liveness of the service
  • GETCheck the readiness of the service
  • GETGet all master records
  • POSTCreate or update a master record
  • GETGet all module records
  • POSTCreate or update a module record
  • POSTCreate or update a sub-table record
  • POSTCreate a workflow
  • POSTCreate user access for projects and groups
  • GETGet user access
  • GETGet user access by username
  • GETGet all groups
  • PATCHActivate users
  • PATCHDeactivate users
  • DELETERemove users from company and/or project level groups
  • DELETERemove users from projects

Create or update a master record

post

This API creates or updates master records for a given project or tenant. When updating a master records, ensure at least one field is set as unique in the database and included in payload. You can create/update up to 1,000 records per request.

Path parameters
masterNamestringRequiredExample: LOCATION
Header parameters
X-Project-IdstringOptionalExample: Vx6-j2Z
Body
field1stringRequiredExample: value1
field2stringRequiredExample: value2
field3stringRequiredExample: value3
Responses
201
Successfully created or updated records.
application/json
400
Bad Request. Validation error in request parameters.
application/json
401
Unauthorized. Invalid authentication token.
application/json
500
Internal Server Error. Something went wrong on the server.
application/json
post
POST /data/api/v1/master-record/{masterName} HTTP/1.1
Host: platform.exto360.com
Content-Type: application/json
Accept: */*
Content-Length: 113

[
  {
    "field1": "value1",
    "field2": "value2",
    "field3": "value3"
  },
  {
    "field1": "value4",
    "field2": "value5",
    "field3": "value6"
  }
]
{
  "insertedIds": [
    "67bf85c2bb11ee5481fa1e87",
    "67bf85c2bb11ee5481fa1e88",
    "67bf85c2bb11ee5481fa1e89"
  ],
  "insertedCount": 3,
  "updatedCount": 0
}

Create or update a module record

post

This API creates or updates custom module records for a given project or tenant. When updating a custom module records, ensure at least one field is set as unique in the database and included in payload. You can create/update up to 1,000 records per request.

Path parameters
moduleNamestringRequiredExample: CUSTOMMODULE
Query parameters
userNamestringRequiredExample: johndoe@exto360.com
Header parameters
X-Project-IdstringOptionalExample: Vx6-j2Z
Body
field1stringRequiredExample: value1
field2stringRequiredExample: value2
field3stringRequiredExample: value3
Responses
201
Successfully created or updated records.
application/json
400
Bad Request. Validation error in request parameters.
application/json
401
Unauthorized. Invalid authentication token.
application/json
500
Internal Server Error. Something went wrong on the server.
application/json
post
POST /data/api/v1/module-record/{moduleName} HTTP/1.1
Host: platform.exto360.com
Content-Type: application/json
Accept: */*
Content-Length: 113

[
  {
    "field1": "value1",
    "field2": "value2",
    "field3": "value3"
  },
  {
    "field1": "value4",
    "field2": "value5",
    "field3": "value6"
  }
]
{
  "insertedIds": [
    "67bf85c2bb11ee5481fa1e87",
    "67bf85c2bb11ee5481fa1e88",
    "67bf85c2bb11ee5481fa1e89"
  ],
  "insertedCount": 3,
  "updatedCount": 0
}

Create or update a sub-table record

post

This API create/update sub-table records for custom module. You can create/update up to 1,000 records per request. The parameters tableId, moduleName, and recordName are required to create or update subtable records for a given custom module record. To identify the tableId, open the Module Designer, navigate to the desired module, click on Tables, and copy the tableId of the table you want to retrieve. For the moduleName, click on General within the module and copy the value from the Name field. To get the recordName, open a Project Record, search for the Module Name, and click on the module to list all its records. Open the desired Module Record, and in the browser URL, you will find a 24-digit ID in the format: /mod/{moduleName}/record/mod/{recordId}. Copy the recordId, as this represents the recordName.

Path parameters
tableIdstringRequiredExample: TABLE ID
Query parameters
moduleNamestringRequiredExample: CUSTOMMODULE
recordIdstringRequiredExample: 67bf904882101daa4b00bca1
Header parameters
X-PROJECT-IDstringRequiredExample: p6iDlWb
Body
field1stringRequiredExample: value1
field2stringRequiredExample: value2
field3stringRequiredExample: value3
Responses
200
Records successfully inserted/created
application/json
400
Bad Request. Validation error in request parameters.
application/json
401
Unauthorized. Invalid authentication token.
application/json
500
Internal Server Error. Something went wrong on the server.
application/json
post
POST /data/api/v1/sub-table/{tableId} HTTP/1.1
Host: platform.exto360.com
X-PROJECT-ID: p6iDlWb
Content-Type: application/json
Accept: */*
Content-Length: 113

[
  {
    "field1": "value1",
    "field2": "value2",
    "field3": "value3"
  },
  {
    "field1": "value4",
    "field2": "value5",
    "field3": "value6"
  }
]
{
  "insertedIds": [
    "67be82d6117e4e25e1d31d64",
    "67be82d6117e4e25e1d31d65"
  ],
  "insertedCount": 2,
  "updatedCount": 0
}

Create a workflow

post

This API creates a workflow for a given module record. Provide a valid username, action name, and space name in the corresponding parameters. You can create 100 workflow records per request.

Path parameters
moduleNamestringRequired
Query parameters
userNamestringRequiredExample: johndoe@exto360.com
spaceNamestringRequiredExample: S1
actionNamestringRequiredExample: Submit, Reject or Approve.
Body
string[]Optional
Responses
201
Successfully created workflow records.
application/json
400
Bad Request. Required fields are missing or invalid.
application/json
401
Unauthorized. Invalid authentication token.
application/json
500
Internal Server Error. Something went wrong on the server.
application/json
post
POST /data/api/v1/workflow/{moduleName} HTTP/1.1
Host: platform.exto360.com
Content-Type: application/json
Accept: */*
Content-Length: 8

[
  "text"
]
[
  {
    "workflowId": "67bfb52dbb11ee5481fa2390",
    "recordId": "67bfb51482101daa4b00cdf6"
  }
]

Create user access for projects and groups

post

This API creates a user record and grants access to the specified projects and groups. email address and user name must be the same to create user record. You can include up to 100 projects and/or groups in each request

Body
groupsstring[]RequiredExample: ["G1"]
Responses
201
Successfully created or updated records.
application/json
400
Bad Request. Validation error in request parameters.
application/json
401
Unauthorized. Invalid authentication token.
application/json
500
Internal Server Error. Something went wrong on the server.
application/json
post
POST /data/api/v1/user/user-access HTTP/1.1
Host: platform.exto360.com
Content-Type: application/json
Accept: */*
Content-Length: 341

{
  "user": {
    "userName": "johndoe@exto360.com",
    "firstName": "John",
    "lastName": "Doe",
    "fullName": "John Doe",
    "email": "johndoe@exto360.com",
    "applicationRole": "PME",
    "loginMethod": "NATIVE",
    "company": "",
    "status": 1,
    "verifyEmailOTP": false,
    "autoRenewMSAccessToken": false
  },
  "projects": [
    {
      "projectId": "p6iDlWb",
      "groups": [
        "G1"
      ],
      "spaces": [
        "S1"
      ]
    }
  ],
  "groups": [
    "G1"
  ]
}
{
  "insertedIds": [
    "67bfa05334f84f59c41fd49f"
  ],
  "insertedCount": 1,
  "updatedCount": 0
}

Activate users

patch

To activate users, pass a list of usernames, e.g., ['user1@example.com', 'user2@example.com']. You can activate up to 1,000 users per request.

Body
string[]Optional
Responses
200
Successful operation response from the database.
application/json
401
Unauthorized. Invalid authentication token.
application/json
500
Internal Server Error. Something went wrong on the server.
application/json
patch
PATCH /data/api/v1/user/activate-users HTTP/1.1
Host: platform.exto360.com
Content-Type: application/json
Accept: */*
Content-Length: 8

[
  "text"
]
{
  "ok": 1,
  "writeErrors": [],
  "writeConcernErrors": [],
  "insertedIds": [],
  "nInserted": 0,
  "nUpserted": 0,
  "nMatched": 1,
  "nModified": 1,
  "nRemoved": 0,
  "upserted": [],
  "opTime": {
    "ts": {
      "$timestamp": "7475881738263068673"
    },
    "t": 1456
  }
}

Deactivate users

patch

To dactivate users, pass a list of usernames, e.g., ['user1@example.com', 'user2@example.com']. You can deactivate up to 1,000 users per request.

Body
string[]Optional
Responses
200
Successful operation response from the database.
application/json
401
Unauthorized. Invalid authentication token.
application/json
500
Internal Server Error. Something went wrong on the server.
application/json
patch
PATCH /data/api/v1/user/deactivate-users HTTP/1.1
Host: platform.exto360.com
Content-Type: application/json
Accept: */*
Content-Length: 8

[
  "text"
]
{
  "ok": 1,
  "writeErrors": [],
  "writeConcernErrors": [],
  "insertedIds": [],
  "nInserted": 0,
  "nUpserted": 0,
  "nMatched": 1,
  "nModified": 1,
  "nRemoved": 0,
  "upserted": [],
  "opTime": {
    "ts": {
      "$timestamp": "7475881738263068673"
    },
    "t": 1456
  }
}

Remove users from company and/or project level groups

delete

This API removes a user from a project, project-level groups, and tenant-level groups. You can include up to 100 projects and/or groups in each request.

Body
usernamestringOptionalExample: johndoe@exto360.com
groupsstring[]OptionalExample: ["Group1"]
Responses
200
Successful operation.
application/json
400
Bad Request. Required fields are missing or invalid.
application/json
401
Unauthorized. Invalid authentication token.
application/json
500
Internal Server Error. Something went wrong on the server.
application/json
delete
DELETE /data/api/v1/user/user-access HTTP/1.1
Host: platform.exto360.com
Content-Type: application/json
Accept: */*
Content-Length: 127

{
  "username": "johndoe@exto360.com",
  "projects": [
    {
      "projectId": "p6iDlWb",
      "groups": [
        "Group1"
      ],
      "spaces": [
        "S1"
      ]
    }
  ],
  "groups": [
    "Group1"
  ]
}
{
  "status": "success"
}

Remove users from projects

delete

This API removes a user from a projects You can include up to 100 projects in each request.

Body
usernamestringRequiredExample: johndoe@exto360.com
projectIdsstring[]RequiredExample: ["p6iDlWb"]
Responses
200
Successful operation.
application/json
400
Bad Request. Required fields are missing or invalid.
application/json
401
Unauthorized. Invalid authentication token.
application/json
500
Internal Server Error. Something went wrong on the server.
application/json
delete
DELETE /data/api/v1/user/project-access HTTP/1.1
Host: platform.exto360.com
Content-Type: application/json
Accept: */*
Content-Length: 59

{
  "username": "johndoe@exto360.com",
  "projectIds": [
    "p6iDlWb"
  ]
}
{
  "status": "success"
}