Download OpenAPI specification:Download
This is the documentation for the Zanshin Product API. Zanshin is a vulnerability management platform that manages cloud risks on service providers for your company. Learn more at https://www.tenchisecurity.com/.
Note: This documentation file covers the current
endpoint only.
Zanshin is a platform where organizations are registered and then can register their cloud environments into the system for regular security checks. Organizations can register scan Targets, as the name implies, those are the target cloud accounts that will be scanned and monitored for potential security breachs.
Once one or more scan targets are registered the system will periodically run scans, those scans will generate security alerts that can be viewed and will provide details about the detected breach, why it is a breach, which renowed guidelines does it violate, the best practice for a fix, the affected resources and other usefull data. The scan history will also be preserved so the organization can keep track of the over time improvements.
Beyond scanning their own cloud infrastructures Zanshin provides organizations with the ability to follow and be followed by other organizations, in a social-network-like environment. When a organization follows another it can see the alerts and potential secutrity issues of the followed organization. This creates a situation where an organization that has several service provider can follow all of them and be assured that they are all following the best cyber security practices. The organizations that are being followed can allow clients and potential hirers to follow them and show off their awesome security skills to their employers.
User: an user account inside the system. One login. A user must be a member of one or more organizations. Users cannot follow or be followed, they inherit the follows as followings permissions of their organizations.
Member a user inside of an organization is a member of that organization. They can be admins with the powers to create and configure scan targets, accept risks, etc. or regular members with read-only permissions.
Organization the enitity representing a company, businness, or sector of a company it has members, it has scan targets and it can follow and be followed by other organizations. Some companies make different organizations for each of their internal divisions and follow each other.
Followers the organizations that follow your organization. Akin to social networks followers can see the situation of your scan targets and track your alerts. Some sensitive data relating to the alerts may be censored to the followers.
Following the organizations that your organization is currently following. You will be able to see their satus on each of the scan targets and keep track of any security issues they have.
Scan target a single cloud account (be it GCP, AWS, Azure, etc) it is a target of the scans. Where the security checks will happen. One organization may have as many scan targets as they wish.
Scan the results of a security check of a given scan target, it will happen periodically and automatically but can also be triggered manually.
Alert a scan will generate several alerts for each scan target (or none if your security is pristine). Alerts are just that, alerts of potential security failures or guidelines not being followed. Alerts have all the info you need on the problem severity and how to handle it. They can be viewed by the followers. ALerts cannot be manually closed, they are only considered closed when the next scan detects that the problem has been solved.
To use the documented endpoints of this documentation login into zanshin and Generate API Keys from the menu. Use the newly generate key as the {AUTH_TOKEN} mentioned through the docs.
Gets all data for the current logged user
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/me' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "name": "Miyamoto Musashi",
- "email": "niten_doraku@edo.com",
- "roles": [ ],
- "member": [
- {
- "id": "00000000-0000-4000-a000-000000000001",
- "roles": [ ]
}
], - "following": [
- "ffffffff-ffff-4fff-afff-fffffffffff1",
- "22222222-2222-4222-a222-222222222221"
], - "metadata": {
- "name": "Musashi-san"
}, - "isSocial": true,
- "emailVerified": true,
- "identityProvider": "auth0",
- "loginsCount": 23,
- "lastIp": "192.168.0.1",
- "status": "ACTIVE",
- "lastLogin": "2022-01-15T12:34:56.123Z",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-13T12:34:56.123Z"
}
Get all invitations currently pending for the logged user - most invites are relative to joining an organization.
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/me/invites' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
[- {
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "organizationName": "Niten Ichi-ryu",
- "email": "niten_doraku@edo.com",
- "token": "4zzzCCCCCbbbbb888888SSsSSSSsssss31sssSs00000",
- "roles": [ ],
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-13T12:34:56.123Z"
}
]
Gets an specific invitation details, it only works if the invitation was made for the current logged user
token required | string Token that uniquely identifies the invitation |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/me/invites/4zzzCCCCCbbbbb888888SSsSSSSsssss31sssSs00000' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
{- "organizationId": "00000000-0000-4000-a000-000000000001",
- "organizationName": "Niten Ichi-ryu",
- "email": "niten_doraku@edo.com",
- "token": "4zzzCCCCCbbbbb888888SSsSSSSsssss31sssSs00000",
- "roles": [ ],
- "expiredAt": "2021-01-13T12:34:56.123Z",
- "createdAt": "2021-01-13T12:34:56.123Z"
}
Accepts an inivitation with the informed ID, it only works if the user accepting the invitation is the user that received the invitation.
token required | string Token that uniquely identifies the invitation |
curl -X 'POST' \ 'https://api.zanshin.tenchisecurity.com/me/invites/{token}/accept' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -d ''
{- "organizationId": "00000000-0000-4000-a000-000000000001",
- "userId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "email": "niten_doraku@edo.com",
- "name": "Miyamoto Musashi",
- "roles": [ ],
- "updatedAt": "2021-01-13T12:34:56.123Z",
- "createdAt": "2021-01-13T12:34:56.123Z"
}
Lists all active API Keys for an user, API Keys can be used to interact directly with the zanshin API on the behalf of that user.
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/me/apikeys' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
[- {
- "id": "12349876-bbbb-aaaa-8888-222220000fff",
- "name": "Jomae-ya",
- "key": "***123-Aa",
- "userId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2"
}, - {
- "id": "aaaa9876-bbbb-aaaa-8888-222220000fff",
- "name": "Jomae-ya 2 electric boogaloo",
- "key": "***1CcCCC",
- "userId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2"
}
]
Cretes a new API key for the current logged user, API Keys can be used to interact with the zanshin api directly on behalf of that user.
Key Name
name | string (name) The key name |
{- "name": "Jomae-ya"
}
{- "id": "12349876-bbbb-aaaa-8888-222220000fff",
- "name": "Jomae-ya",
- "key": "***123-Aa",
- "userId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "createdAt": "2021-01-13T12:34:56.123Z"
}
Deletes a given api key by its id, it will only work if the informed ID belongs to the current logged user.
apiKeyId required | string Key that grants access to the api |
curl -X 'DELETE' \ 'https://api.zanshin.tenchisecurity.com/me/apikeys/{apiKeyId}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
true
Get logged user identifier to create freshdesk issue
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/me/freshdesk' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
{- "token": "000000000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000000000000000000000000000000000000000000"
}
Lists all organizations that the current logged user belongs to.
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
[- {
- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "name": "Niten Ichi-ryu",
- "email": "example@org.com",
- "roles": [ ],
- "status": "ACTIVE",
- "tags": [
- [
- "design",
- "financial"
]
], - "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
]
Creates a new organization to be owned by the current logged user.
Organization Name
name | string (name) The organization name |
string (email) The organization e-mail | |
picture | string (Picture) Organization profile picture |
{- "name": "Niten Ichi-ryu",
- "email": "example@org.com",
}
{- "statusCode": 400,
- "error": "BadRequest",
- "message": "string"
}
Gets an organization details given its ID.
organizationId required | string Organization unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-0000-4000-a000-000000000002' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "name": "Niten Ichi-ryu",
- "email": "example@org.com",
- "roles": [ ],
- "status": "ACTIVE",
- "tags": [
- [
- "design",
- "financial"
]
], - "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
Edits an organization data given its ID, the operation will only succeed if the logged user is an administrator of the given organization.
organizationId required | string Organization unique identifier |
Organization Name
name | string (name) Organization Name |
picture | string (picture) Image URL, accepted formats: jpg, jpeg, png, svg |
string (email) Contact e-mail |
{- "name": "Org Name",
- "picture": "<image URL>",
- "email": "niten@ichi-ryu.com"
}
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "name": "Niten Ichi-ryu",
- "email": "example@org.com",
- "roles": [ ],
- "status": "ACTIVE",
- "tags": [
- [
- "design",
- "financial"
]
], - "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
Deletes an organization given its ID, the operation will only succeed if the logged user is an administrator of the informed organization. This operation cannot be undone.
organizationId required | string Organization unique identifier |
curl -X 'DELETE' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-0000-4000-a000-000000000002' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
true
Lists all organization members given the organization ID.
organizationId required | string Organization unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-0000-4000-a000-000000000002/members' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
[- {
- "userId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "name": "Niten Ichi-ryu",
- "email": "niten_doraku@edo.com",
- "roles": [
- "ADMIN"
], - "identityProvider": "auth0",
- "loginsCount": 23,
- "lastIp": "192.168.0.1",
- "lastLogin": "1645-06-13T12:34:56.123Z",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
]
Gets a user data if and only if the user is a member of the organization given both IDs. Data will only be returned if the logged user is an organization administrator and the user is a member of the organization.
organizationId required | string Organization unique identifier |
userId required | string User unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/members/{userId}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
[- {
- "userId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "name": "Niten Ichi-ryu",
- "email": "niten_doraku@edo.com",
- "roles": [
- "ADMIN"
], - "identityProvider": "auth0",
- "loginsCount": 23,
- "lastIp": "192.168.0.1",
- "lastLogin": "1645-06-13T12:34:56.123Z",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
]
Makes an user an admin or removes admin for an user. The requesting user must be an organization administrator to use this endpoint.
organizationId required | string Organization unique identifier |
userId required | string User unique identifier |
Organization member body
roles | Array of strings (roles) New roles |
{- "roles": [
- "ADMIN"
]
}
{- "userId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "name": "Niten Ichi-ryu",
- "email": "niten_doraku@edo.com",
- "roles": [
- "ADMIN"
], - "identityProvider": "auth0",
- "loginsCount": 23,
- "lastIp": "192.168.0.1",
- "lastLogin": "1645-06-13T12:34:56.123Z",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
Removes and user form a organization given both IDs. The logged user must be an organization administrator to invoke this endpoint. The target user must currently be and organization member for anything to happen.
organizationId required | string Organization unique identifier |
userId required | string User unique identifier |
curl -X 'DELETE' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/members/{userId}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
true
Lists all pending invitations that an organization has given its ID. The logged user must be an organization administrator to fetch the data.
organizationId required | string Organization unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/invites' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
[- {
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "organizationName": "Niten Ichi-ryu",
- "email": "niten_doraku@edo.com",
- "roles": [ ],
- "expiredAt": "2021-06-01T12:34:56.123Z",
- "createdAt": "2021-01-13T12:34:56.123Z"
}
]
Issues an invitation from the given organization (informed as a path param) to a target (informed on the body). The logged user must be an administrator of the organization informed as a path param to invoke this endpoint.
organizationId required | string Organization unique identifier |
Invite data
string (email) Email to invite | |
roles | Array of strings (roles) New roles |
{- "email": "niten_doraku@edo.com",
- "roles": [ ]
}
{- "organizationId": "00000000-0000-4000-a000-000000000001",
- "organizationName": "Niten Ichi-ryu",
- "email": "niten_doraku@edo.com",
- "roles": [ ],
- "expiredAt": "2021-06-01T12:34:56.123Z",
- "createdAt": "2021-01-13T12:34:56.123Z"
}
Lists all invites made to a informed email on behalf of the informed organization. The logged user must be an administratir of the organization.
organizationId required | string Organization unique identifier |
email required | string <email> User registered email |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/invites/{email}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
{- "organizationId": "00000000-0000-4000-a000-000000000001",
- "organizationName": "Niten Ichi-ryu",
- "email": "niten_doraku@edo.com",
- "roles": [ ],
- "expiredAt": "2021-06-01T12:34:56.123Z",
- "createdAt": "2021-01-13T12:34:56.123Z"
}
Invalidates an invite made to the informed email on behalf of the informed organization. The logged user must be an administratir of the organization ti use this endpoint.
organizationId required | string Organization unique identifier |
email required | string <email> User registered email |
curl -X 'DELETE' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/invites/{email}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
true
Resends an invite made to the informed email on behalf of the informed organization. The logged user must be an administrator of the organization to use this endpoint.
organizationId required | string Organization unique identifier |
email required | string <email> User registered email |
curl -X 'POST' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/invites/{email}/resend' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -d ''
true
An email will be sent to the user with instructions for resetting the MFA.
organizationId required | string Organization unique identifier |
userId required | string User unique identifier |
curl -X 'POST' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/members/{userId}/mfa/reset' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -d ''
true
An email will be sent to the user with instructions for resetting the password.
organizationId required | string Organization unique identifier |
userId required | string User unique identifier |
curl -X 'POST' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/members/{userId}/password/reset' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -d ''
true
Lists all organization followers given the organization ID. The logged user must be an administrator of the organization to use this endpoint.
organizationId required | string Organization unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/followers' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
[- {
- "id": "00000000-0000-4000-a000-000000000001",
- "name": "Niten Ichi-ryu",
- "status": "ACTIVE",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
]
Remove a follower given both the followed and follower organization IDs. The requesting user must be an administrator of the followed organization.
organizationId required | string Organization unique identifier |
followerId required | string A follower organization unique identifier |
curl -X 'DELETE' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/followers/{followerId}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
true
Lists all organization follow requests given the organization ID. The logged user must be an administrator of the organization to use this endpoint.
organizationId required | string Organization unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/followers/requests' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
[- {
- "id": "00000000-0000-4000-a000-000000000001",
- "name": "Niten Ichi-ryu",
- "status": "ACTIVE",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
]
Create a follow request from the given organization (informed in the path) to the target organization (informed on the body). The logged user must be an administrator of the path informed organization to use this endpoint.
organizationId required | string Organization unique identifier |
Organization Id for the to be followed org
token | string |
{- "token": "00000000-0000-4000-a000-000000000002"
}
{- "id": "00000000-0000-4000-a000-000000000001",
- "name": "Niten Ichi-ryu",
- "status": "ACTIVE",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
Get a follow request details given the organization ID and a follow erquest unique identifier. The follow request identifier must be valid and must have been issued by or to the organization. The logged user must be an administrator of the organization to use this endpoint.
organizationId required | string Organization unique identifier |
followerId required | string A follower organization unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/followers/requests/{followerId}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
{- "id": "00000000-0000-4000-a000-000000000001",
- "name": "Niten Ichi-ryu",
- "status": "ACTIVE",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
Cancels an issued follow request given the organization ID and a follow request unique identifier. The follow request identifier must be valid and must have been issued by the organization. The logged user must be an administrator of the organization to use this endpoint.
organizationId required | string Organization unique identifier |
followerId required | string A follower organization unique identifier |
curl -X 'DELETE' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/followers/requests/{followerId}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
true
List all companies that are being followed by a given organization. The logged user must be an administrator of the given organization
organizationId required | string Organization unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/following' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
[- {
- "id": "00000000-0000-4000-a000-000000000001",
- "name": "Niten Ichi-ryu",
- "status": "ACTIVE",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
]
Get details for the following.
organizationId required | string Organization unique identifier |
followingId required | string A following organization unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/following/{followingId}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "name": "Niten Ichi-ryu",
- "email": "example@org.com",
- "roles": [ ],
- "status": "ACTIVE",
- "tags": [
- [
- "design",
- "financial"
]
], - "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
Stops following the provided organization.
organizationId required | string Organization unique identifier |
followingId required | string A following organization unique identifier |
curl -X 'DELETE' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/following/{followingId}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
true
List all following requests (when a company asks you to follow them) received by a given organization. The logged user must be an administrator of the organization.
organizationId required | string Organization unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/following/requests' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
[- {
- "id": "00000000-0000-4000-a000-000000000001",
- "name": "Niten Ichi-ryu",
- "status": "ACTIVE",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
]
Accepts a following requests (become a follower of) given organization. The logged user must be an administrator of the accepting organization. The token must be valid and submitted to the informed organization.
organizationId required | string Organization unique identifier |
followingId required | string A following organization unique identifier |
curl -X 'POST' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/following/requests/{followingId}/accept' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -d ''
{- "id": "00000000-0000-4000-a000-000000000001",
- "name": "Niten Ichi-ryu",
- "status": "ACTIVE",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
Declines a following request (decline to become a follower of) given organization. The logged user must be an administrator of the declining organization. The requesting company must be valid and have submitted a prior following request.
organizationId required | string Organization unique identifier |
followingId required | string A following organization unique identifier |
curl -X 'POST' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/following/requests/{followingId}/decline' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -d ''
true
List all tags companies that are being followed by a given organization. The logged user must be an member of organization
organizationId required | string Organization unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/following/tags' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
[- "design",
- "financial",
- "customer",
- "payment"
]
List all scan targets given an organization ID. The logged user must be a member of the organization.
organizationId required | string Organization unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/scantargets' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
[- {
- "id": "00000000-0000-4000-a000-000000000001",
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "name": "Kami Fujiwara",
- "kind": "AWS",
- "status": "ACTIVE",
- "account": "tenchisecurity.com",
- "credential": {
- "account": "000000000000"
}, - "schedule": "24h",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
]
Create a scan targets given an organization ID. The logged user must be a member of the organization.
organizationId required | string Organization unique identifier |
Scan target Data to create
name | string (ScanTargetName) The scan target display name |
kind | string (kind) Enum: "AWS" "AZURE" "BITBUCKET" "DOMAIN" "GCP" "GITHUB" "GITLAB" "GWORKSPACE" "HUAWEI" "JIRA" "MS365" "ORACLE" "SALESFORCE" "SLACK" The type of resource this scan target represents, either a cloud service provider or external attack surface asset |
ScanCredentialAWS (object) or ScanCredentialGCP (object) or ScanCredentialAzure (object) or ScanCredentialDOMAIN (object) or ScanCredentialHUAWEI (object) or ScanCredentialORACLE (object) or ScanCredentialGWORKSPACE (object) or ScanCredentialMS365 (object) or ScanCredentialGITHUB (object) or ScanCredentialSLACK (object) or ScanCredentialBITBUCKET (object) or ScanCredentialJIRA (object) (credential) Credentials | |
schedule | string (schedule) Default: "24h" Enum: "6h" "12h" "24h" "7d" Schedule when the scan target will run, if it is blank the 24h default option is defined |
{- "name": "Kami Fujiwara",
- "kind": "AWS",
- "credential": {
- "account": "000000000000"
}, - "schedule": "24h"
}
{- "id": "00000000-0000-4000-a000-000000000001",
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "name": "Kami Fujiwara",
- "kind": "AWS",
- "status": "ACTIVE",
- "account": "tenchisecurity.com",
- "credential": {
- "account": "000000000000"
}, - "schedule": "24h",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
Get details of a scan target given both the organization and scan target IDs. The logged user must be a member of the organization.
organizationId required | string Organization unique identifier |
scanTargetId required | string Scan target unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/scantargets/{scanTargetId}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
{- "id": "00000000-0000-4000-a000-000000000001",
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "name": "Kami Fujiwara",
- "kind": "AWS",
- "status": "ACTIVE",
- "account": "tenchisecurity.com",
- "credential": {
- "account": "000000000000"
}, - "schedule": "24h",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
Edits a scan target given both the organization and scan target IDs. The logged user must be a member of the organization.
organizationId required | string Organization unique identifier |
scanTargetId required | string Scan target unique identifier |
Scan target Data to create
name | string (Scan target name) Scan Target Name |
schedule | string (schedule) Schedule when the scan target will run, if it is blank the 24h default option is defined |
secret | string (secret) Azure and MS365 scan targets support updating the credential secret field. Not to be used together with the other values. |
{- "name": "New name",
- "schedule": "24h",
- "secret": "Ae1esonZpTFqt0Kwzdwqb4lYgUtLK1eeWotaaF"
}
true
Remove a scan target given both the organization and scan target IDs. The logged user must be a admin of the organization.
organizationId required | string Organization unique identifier |
scanTargetId required | string Scan target unique identifier |
curl -X 'DELETE' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/scantargets/{scanTargetId}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
true
Manually trigger the scan of a scan target. The requesting user must be a admin of the organization.
organizationId required | string Organization unique identifier |
scanTargetId required | string Scan target unique identifier |
force | string If 'true', ignore current state and attempt scan anyway. If 'false', will not run scan target with status NEW, \ ERROR, INVALID_CREDENTIAL or RUNNING |
curl -X 'POST' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/scantargets/{scanTargetId}/scan' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -d ''
{- "organizationId": "a72f4225-43e9-4922-b6b7-8b0620bdb1c0",
- "scanTargetId": "45cec8fe-f9f8-4df8-b255-14bf1dae3ab3",
- "slot": "string",
- "status": "RUNNING",
- "execution": "arn:aws:states:us-x-x:account_id:execution:x:45cec8fe-f9f8-4df8-b255-14bf1dae3ab3-20211207-150048341"
}
Checks if the scan target has proper connectivity with the underlying cloud service provider account, without actually performing a scan. The requesting user must be an administrator of the organization owning the scan target.
organizationId required | string Organization unique identifier |
scanTargetId required | string Scan target unique identifier |
curl -X 'POST' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/scantargets/{scanTargetId}/check' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -d ''
{- "id": "00000000-0000-4000-a000-000000000001",
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "name": "Kami Fujiwara",
- "kind": "AWS",
- "status": "ACTIVE",
- "account": "tenchisecurity.com",
- "credential": {
- "account": "000000000000"
}, - "schedule": "24h",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
Retrive a link to allow the user to authorize zanshin to read info from their gworkspace enviroment
scanTargetId required | string Id for the scanTarget that we want to generate the OAUTH link for. |
organizationId required | string Id for the organization that we want to generate the OAUTH link for. |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/gworkspace/oauth/link?scanTargetId={SCAN_TARGET_ID}&organizationId={ORGANIZATION_ID}\ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
Retrive a link to allow the user to authorize zanshin to read info from their slack enviroment
scanTargetId required | string Id for the scanTarget that we want to generate the OAUTH link for. |
organizationId required | string Id for the organization that we want to generate the OAUTH link for. |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/slack/oauth/link?scanTargetId={SCAN_TARGET_ID}&organizationId={ORGANIZATION_ID}\ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
Retrive a link to allow the user to authorize zanshin to read info from their bitbucket enviroment. works with either scanTargets or scanTargetGroups
scanTargetId | string Id for the scanTarget that we want to generate the OAUTH link for. |
scanTargetGroupId | string Id for the scanTargetGroup that we want to generate the OAUTH link for. Can be used instead of scanTargetId. |
organizationId required | string Id for the organization that we want to generate the OAUTH link for. |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/bitbucket/oauth/link?scanTargetId={SCAN_TARGET_ID}&organizationId={ORGANIZATION_ID}\ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
Retrive a link to allow the user to authorize zanshin to read info from their gitlab enviroment.
scanTargetGroupId | string Id for the scanTargetGroup that we want to generate the OAUTH link for. |
organizationId required | string Id for the organization that we want to generate the OAUTH link for. |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/gitlab/oauth/link?scanTargetId={SCAN_TARGET_ID}&organizationId={ORGANIZATION_ID}\ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
Retrive a link to allow the user to authorize zanshin to read info from their Salesforce enviroment
scanTargetId required | string Id for the scanTarget that we want to generate the OAUTH link for. |
organizationId required | string Id for the organization that we want to generate the OAUTH link for. |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/salesforce/oauth/link?scanTargetId={SCAN_TARGET_ID}&organizationId={ORGANIZATION_ID}\ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
Retrieve a link to allow the user to authorize zanshin to read info from their Jira enviroment
scanTargetId required | string Id for the scanTarget that we want to generate the OAUTH link for. |
organizationId required | string Id for the organization that we want to generate the OAUTH link for. |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/jira/oauth/link?scanTargetId={SCAN_TARGET_ID}&organizationId={ORGANIZATION_ID}\ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
Lists the scan history of a given scan target. The requesting user must be a member of the organization.
organizationId required | string Organization unique identifier |
scanTargetId required | string Scan target unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/scantargets/{sncaTargetId}/scans' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
{- "data": [
- {
- "execution": "arn:aws:states:us-x-x:account_id:execution:x:45cec8fe-f9f8-4df8-b255-14bf1dae3ab3-20211207-150048341",
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "scanTargetId": "fa000000-0000-4000-a000-000000000001",
- "slot": "2021-03-08T00:06:02.377Z",
- "status": "RUNNING",
- "summary": {
- "severities": {
- "CRITICAL": 5,
- "HIGH": 10,
- "MEDIUM": 15,
- "LOW": 20,
- "INFO": 1
}, - "states": {
- "CLOSED": 10,
- "IN_PROGRESS": 10,
- "OPEN": 10
}, - "infos": {
- "COLLECTED": 3333,
- "UNKNOWN": 2222,
- "FAIL": 1111,
- "NEW": {
- "CRITICAL": 5,
- "HIGH": 10,
- "MEDIUM": 15,
- "LOW": 20,
- "INFO": 1
}, - "OPEN": {
- "CRITICAL": 5,
- "HIGH": 10,
- "MEDIUM": 15,
- "LOW": 20,
- "INFO": 1
}, - "REOPEN": {
- "CRITICAL": 5,
- "HIGH": 10,
- "MEDIUM": 15,
- "LOW": 20,
- "INFO": 1
}, - "CLOSED": {
- "CRITICAL": 5,
- "HIGH": 10,
- "MEDIUM": 15,
- "LOW": 20,
- "INFO": 1
}
}
}, - "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2022-01-15T12:34:56.123Z"
}
]
}
Get detailed data for a specific scan execution. The requesting user must be a member of the organization owning the scan target.
organizationId required | string Organization unique identifier |
scanTargetId required | string Scan target unique identifier |
slot required | integer <int64> ID of the scan to return |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/scantargets/{scanTargetId}/scans/{scanId}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
{- "execution": "arn:aws:states:us-x-x:account_id:execution:x:45cec8fe-f9f8-4df8-b255-14bf1dae3ab3-20211207-150048341",
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "scanTargetId": "fa000000-0000-4000-a000-000000000001",
- "slot": "2021-03-08T00:06:02.377Z",
- "status": "RUNNING",
- "summary": {
- "severities": {
- "CRITICAL": 5,
- "HIGH": 10,
- "MEDIUM": 15,
- "LOW": 20,
- "INFO": 1
}, - "states": {
- "CLOSED": 10,
- "IN_PROGRESS": 10,
- "OPEN": 10
}, - "infos": {
- "COLLECTED": 3333,
- "UNKNOWN": 2222,
- "FAIL": 1111,
- "NEW": {
- "CRITICAL": 5,
- "HIGH": 10,
- "MEDIUM": 15,
- "LOW": 20,
- "INFO": 1
}, - "OPEN": {
- "CRITICAL": 5,
- "HIGH": 10,
- "MEDIUM": 15,
- "LOW": 20,
- "INFO": 1
}, - "REOPEN": {
- "CRITICAL": 5,
- "HIGH": 10,
- "MEDIUM": 15,
- "LOW": 20,
- "INFO": 1
}, - "CLOSED": {
- "CRITICAL": 5,
- "HIGH": 10,
- "MEDIUM": 15,
- "LOW": 20,
- "INFO": 1
}
}
}, - "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2022-01-15T12:34:56.123Z"
}
List all scan target groups given an organization ID. The logged user must be a member of the organization.
organizationId required | string Organization unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{organizationId}/scantargetgroups' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
[- {
- "id": "00000000-0000-5000-b000-00000000000a",
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "name": "Resource Rollup",
- "kind": "ORACLE",
- "credential": {
- "region": "us-ashburn-1",
- "tenancyId": "ocid1.tenancy.oc1..aaaaaaaa0000000000000000000000000000000000000000000000000000",
- "userId": "ocid1.user.oc1..aaaaaaaa0000000000000000000000000000000000000000000000000000",
- "Keyfingerprint": "1a:1a:aa:1a:11:11:aa:11:11:11:1a:1a:1a:a:1a:1a"
}
}
]
Create a scan target group given an organization ID. The logged user must be an admin of the organization.
organizationId required | string Organization unique identifier |
Scan Target Group Data to create
name | string (ScanTargetGroupName) The scan target group assigned name |
kind | string (kind) Enum: "ORACLE" "BITBUCKET" The type of cloud of this scan target group |
{- "name": "Kami Fujiwara group",
- "kind": "ORACLE"
}
{- "id": "00000000-0000-4000-a000-000000000001",
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "name": "Kami Fujiwara",
- "kind": "ORACLE",
- "credential": "{}"
}
Get details of a scan target group given both the organization and scan target group IDs. The logged user must be a member of the organization.
organizationId required | string Organization unique identifier |
scanTargetGroupId required | string Scan target group unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{organizationId}/scantargetgroups/{scanTargetGroupId}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
{- "id": "00000000-0000-4000-a000-000000000001",
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "name": "Resource Rollup",
- "kind": "ORACLE",
- "credential": {
- "region": "us-ashburn-1",
- "tenancyId": "ocid1.tenancy.oc1..aaaaaaaa0000000000000000000000000000000000000000000000000000",
- "userId": "ocid1.user.oc1..aaaaaaaa0000000000000000000000000000000000000000000000000000",
- "Keyfingerprint": "1a:1a:aa:1a:11:11:aa:11:11:11:1a:1a:1a:a:1a:1a"
}
}
Remove a scan target group given both the organization and scan target group ID. The logged user must be an admin of the organization.
organizationId required | string Organization unique identifier |
scanTargetGroupId required | string Scan target group unique identifier |
deleteScanTargets | boolean Example: deleteScanTargets=true |
curl -X 'DELETE' \ 'https://api.zanshin.tenchisecurity.com/organizations/{organizationId}/scantargetgroups/{scanTargetGroupId}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
true
Update an already created scan target group with the terraform returned data, given an organization ID. The logged user must be an admin of the organization.
organizationId required | string Organization unique identifier |
scanTargetGroupId required | string Scan target group unique identifier |
Scan Target Group Data to update
name | string (ScanTargetGroupName) The scan target group assigned name |
{- "name": "Kami Fujiwara group"
}
{- "name": "Kami Fujiwara group",
- "kind": "ORACLE",
- "credential": {
- "region": "us-ashburn-1",
- "tenancyId": "ocid1.tenancy.oc1..aaaaaaaa0000000000000000000000000000000000000000000000000000",
- "userId": "ocid1.user.oc1..aaaaaaaa0000000000000000000000000000000000000000000000000000",
- "Keyfingerprint": "1a:1a:aa:1a:11:11:aa:11:11:11:1a:1a:1a:a:1a:1a"
}
}
Insert an already created scan target group with the terraform returned data, given an organization ID. The logged user must be an admin of the organization.
organizationId required | string Organization unique identifier |
scanTargetGroupId required | string Scan target group unique identifier |
Scan Target Group Data to insert
ScanTargetGroupCredentiaListlORACLE (object) (credential) Credentials |
{- "credential": {
- "region": "us-ashburn-1",
- "tenancyId": "ocid1.tenancy.oc1..aaaaaaaa0000000000000000000000000000000000000000000000000000",
- "userId": "ocid1.user.oc1..aaaaaaaa0000000000000000000000000000000000000000000000000000",
- "Keyfingerprint": "1a:1a:aa:1a:11:11:aa:11:11:11:1a:1a:1a:a:1a:1a"
}
}
{- "name": "Kami Fujiwara group",
- "kind": "ORACLE",
- "credential": {
- "region": "us-ashburn-1",
- "tenancyId": "ocid1.tenancy.oc1..aaaaaaaa0000000000000000000000000000000000000000000000000000",
- "userId": "ocid1.user.oc1..aaaaaaaa0000000000000000000000000000000000000000000000000000",
- "Keyfingerprint": "1a:1a:aa:1a:11:11:aa:11:11:11:1a:1a:1a:a:1a:1a"
}
}
Get all scan targets from a specific scan target group. The logged user must be a member of the organization.
organizationId required | string Organization unique identifier |
scanTargetGroupId required | string Scan target group unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/scantargetgroups/{scanTargetGroupId}/scantargets' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
{- "id": "00000000-0000-4000-a000-000000000001",
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "name": "Kami Fujiwara",
- "kind": "AWS",
- "status": "ACTIVE",
- "account": "tenchisecurity.com",
- "credential": {
- "account": "000000000000"
}, - "schedule": "24h",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
Get all compartments from a specific scan target group. The logged user must be a member of the organization.
organizationId required | string Organization unique identifier |
scanTargetGroupId required | string Scan target group unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/scantargetgroups/{scanTargetGroupId}/targets' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
[ ]
Create Scan Targets from previous listed compartments inside the scan target group. The logged user must be a member of the organization.
organizationId required | string Organization unique identifier |
scanTargetGroupId required | string Scan target group unique identifier |
Compartments
name | string (name) Compartment name |
ocid | string (ocid) Oracle Compartment Id |
[ ]
[- {
- "id": "00000000-0000-4000-a000-000000000001",
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "name": "Kami Fujiwara",
- "kind": "AWS",
- "status": "ACTIVE",
- "account": "tenchisecurity.com",
- "credential": {
- "account": "000000000000"
}, - "schedule": "24h",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
]
Get the terraform download URL of the scan target group. The logged user must be a member of the organization.
organizationId required | string Organization unique identifier |
scanTargetGroupId required | string Scan target group unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/scantargetgroups/{scanTargetGroupId}/scripts' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
List the events of an organization.
organizationId required | string Organization unique identifier |
end | string <date-time> Example: end=2020-01-15T11:30:59.123Z |
start | string <date-time> Example: start=2020-01-15T11:30:59.123Z |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-0000-4000-a000-000000000002/events' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
{- "data": [
- {
- "id": "00000000-0000-4000-a000-000000000001",
- "source": "string",
- "name": "string",
- "data": { },
- "metadata": { },
- "createdAt": "2020-01-15T11:30:59.123Z"
}
], - "cursor": "string"
}
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/events/names' \
{- "alert": [
- "AlertCreated"
], - "follower": [
- "FollowerRequested"
], - "following": [
- "FollowingRequested"
], - "member": [
- "MemberInviteCreated"
], - "organization": [
- "OrganizationCreated"
], - "answer": [
- "AnswerCreated"
], - "assessment": [
- "AssessmentCreated"
], - "question": [
- "QuestionCreated"
], - "questionnaire": [
- "QuestionnaireCreated"
], - "scan": [
- "ScanCreated"
], - "scanTarget": [
- "ScanTargetCreated"
], - "webhook": [
- "WebhookCreated"
]
}
List all alerts that belong to an organization the requesting user is a member of.
Request body to filter alerts
organizationId required | string (Organization ID) Organization to filter the alerts (OrganizationId) |
scanTargetIds | Array of strings (Scan Target ID) Scan targets to filter alerts from (ScanTargetIds), not passing the field will fetch all |
rules | Array of strings (Rules) Rules to filter alerts. Not passing the field will fetch all. |
states | Array of strings (Alert State) Items Enum: "OPEN" "ACTIVE" "IN_PROGRESS" "RISK_ACCEPTED" "MITIGATING_CONTROL" "FALSE_POSITIVE" "CLOSED" Alert states to filter, not passing the field will fetch all. Note: The ACTIVE state is the combination of the OPEN and IN_PROGRESS states. |
severities | Array of strings (Violated Rule) Items Enum: "CRITICAL" "HIGH" "MEDIUM" "LOW" "INFO" Severity of the alert to filter, not passing the field will fetch all. |
page required | integer (page) >= 1 Page to be fetched, starts at 1 |
pageSize required | integer (page size) >= 1 Size of the page to fetch |
lang | string (lang) Enum: "pt-BR" "en-US" Language result should be in |
openedAtStart | string <date-time> (Last Opened Date (starts at)) Search alerts by last opened date - greater or equals than |
openedAtEnd | string <date-time> (Last opened Date (ends at)) Search alerts by last opened date - less or equals than |
resolvedAtStart | string <date-time> (Last resolved Date (starts at)) Search alerts by last resolved date - greater or equals than |
resolvedAtEnd | string <date-time> (Last resolved Date (ends at)) Search alerts by last resolved date - less or equals than |
createdAtStart | string <date-time> (Creation Date (starts at)) Search alerts by creation date - greater or equals than |
createdAtEnd | string <date-time> (Creation Date (ends at)) Search alerts by creation date - less or equals than |
updatedAtStart | string <date-time> (Update Date (starts at)) Search alerts by update date - greater or equals than |
updatedAtEnd | string <date-time> (Update Date (ends at)) Search alerts by update date - less or equals than |
search | string (search) String to search for |
sort | string (sort) Enum: "desc" "asc" Sort order the results should be in |
order | string (order) Enum: "scanTargetId" "resource" "rule" "severity" "state" "createdAt" "updatedAt" Field to use for ordering |
{- "organizationId": "e0000000-a000-a000-a000-000000000001",
- "scanTargetIds": [
- "00000000-0000-4000-a000-000000000001"
], - "rules": [
- "GCP:IAM:serviceAccountAdmin"
], - "states": [
- "ACTIVE",
- "CLOSED"
], - "severities": [
- "HIGH",
- "MEDIUM"
], - "page": 2,
- "pageSize": 25,
- "lang": "en-US",
- "openedAtStart": "2019-08-24T14:15:22Z",
- "openedAtEnd": "2019-08-24T14:15:22Z",
- "resolvedAtStart": "2019-08-24T14:15:22Z",
- "resolvedAtEnd": "2019-08-24T14:15:22Z",
- "createdAtStart": "2019-08-24T14:15:22Z",
- "createdAtEnd": "2019-08-24T14:15:22Z",
- "updatedAtStart": "2019-08-24T14:15:22Z",
- "updatedAtEnd": "2019-08-24T14:15:22Z",
- "search": "dns",
- "sort": "desc",
- "order": "rule"
}
{- "data": [
- {
- "id": "d0000000-0000-0000-0000-000000000000",
- "version": 1,
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "scanTargetId": "00000000-0000-4000-a000-000000000001",
- "resource": "arn:aws:ec2:jp-higo-1:000000000001:instance/i-000a000b0001000d",
- "rule": "AZURE:SecurityCenter:securityConfigMonitoring",
- "severity": "MEDIUM",
- "tags": [
- "AWS",
- "SSM"
], - "compliances": [
- "PCIDSS=0.0.0=0.1",
- "PCIDSS=0.0.0=0.2"
], - "labels": [
- "TEST"
], - "metadata": {
- "region": "jp-higo-1",
- "status": "FAIL",
- "version": "0.1",
- "category": "SSM",
- "provider": "AWS"
}, - "enrichment": {
- "objectType": "string"
}, - "state": "OPEN",
- "openedAt": "2021-01-13T12:34:56.123Z",
- "resolvedAt": "2021-01-13T12:34:56.123Z",
- "createdAt": "2021-01-13T12:34:56.123Z",
- "updatedAt": "2023-01-13T12:34:56.123Z",
- "ruleTitle": "S3 Bucket does not enforce object cryptography."
}
], - "total": 1
}
List all alerts for organizations the user is following.
Alerts from Following Organization: Resources are redacted.
Alerts from your Organization: You can see everything.
Data to filter
organizationId required | string (Organization ID) Organization to filter the following alerts (OrganizationId) |
followingIds | Array of strings (Following ids) Organizations to filter following alerts (FollowingIds). All ids must belong to following organizations. Not passing the field will fetch all. |
rules | Array of strings (Rules) Rules to filter alerts from (rule), not passing the field will fetch all. |
states | Array of strings (Alert State) Items Enum: "OPEN" "ACTIVE" "IN_PROGRESS" "RISK_ACCEPTED" "MITIGATING_CONTROL" "FALSE_POSITIVE" "CLOSED" Alert states to filter, not passing the field will fetch all. Note: The ACTIVE state is the combination of the OPEN and IN_PROGRESS states. |
severities | Array of strings (Violated Rule) Items Enum: "CRITICAL" "HIGH" "MEDIUM" "LOW" "INFO" Severity of the alert to filter, not passing the field will fetch all |
page | integer (page) >= 1 Page to be fetched, starts at 1 |
pageSize | integer (page size) >= 1 Size of the page to fetch |
lang | string (lang) Enum: "pt-BR" "en-US" Language. |
openedAtStart | string <date-time> (Last opened Date (starts at)) Search alerts by last opened date - greater or equals than |
openedAtEnd | string <date-time> (Last opened Date (ends at)) Search alerts by last opened date - less or equals than |
resolvedAtStart | string <date-time> (Last resolved Date (starts at)) Search alerts by last resolved date - greater or equals than |
resolvedAtEnd | string <date-time> (Last resolved Date (ends at)) Search alerts by last resolved date - less or equals than |
createdAtStart | string <date-time> (Creation Date (starts at)) Search alerts by creation date - greater or equals than |
createdAtEnd | string <date-time> (Creation Date (ends at)) Search alerts by creation date - less or equals than |
updatedAtStart | string <date-time> (Update Date (starts at)) Search alerts by update date - greater or equals than |
updatedAtEnd | string <date-time> (Update Date (ends at)) Search alerts by update date - less or equals than |
search | string (search) String to search for |
sort | string (sort) Enum: "desc" "asc" Sort order the results should be in |
order | string (order) Enum: "scanTargetId" "resource" "rule" "severity" "state" "createdAt" "updatedAt" Field to use for ordering |
{- "organizationId": "e0000000-a000-a000-a000-000000000001",
- "followingIds": [
- "00000000-0000-4000-a000-000000000001"
], - "rules": [
- "GCP:IAM:serviceAccountAdmin"
], - "states": [
- "ACTIVE",
- "CLOSED"
], - "severities": [
- "HIGH",
- "MEDIUM"
], - "page": 2,
- "pageSize": 25,
- "lang": "en-US",
- "openedAtStart": "2019-08-24T14:15:22Z",
- "openedAtEnd": "2019-08-24T14:15:22Z",
- "resolvedAtStart": "2019-08-24T14:15:22Z",
- "resolvedAtEnd": "2019-08-24T14:15:22Z",
- "createdAtStart": "2019-08-24T14:15:22Z",
- "createdAtEnd": "2019-08-24T14:15:22Z",
- "updatedAtStart": "2019-08-24T14:15:22Z",
- "updatedAtEnd": "2019-08-24T14:15:22Z",
- "search": "dns",
- "sort": "desc",
- "order": "rule"
}
{- "data": [
- {
- "id": "d0000000-0000-0000-0000-000000000000",
- "version": 1,
- "scanTargetId": "00000000-0000-4000-a000-000000000001",
- "resource": "arn:aws:ec2:jp-higo-1:000000000001:instance/i-000a000b0001000d",
- "rule": "AWS:SSM:ssmActiveOnAllInstances",
- "severity": "MEDIUM",
- "tags": [
- "AWS",
- "SSM"
], - "compliances": [
- "PCIDSS=0.0.0=0.1",
- "PCIDSS=0.0.0=0.2"
], - "labels": [
- "TEST"
], - "metadata": {
- "region": "jp-higo-1",
- "status": "FAIL",
- "version": "0.1",
- "category": "SSM",
- "provider": "AWS"
}, - "enrichment": {
- "objectType": "string"
}, - "state": "ACTIVE",
- "openedAt": "2021-01-13T12:34:56.123Z",
- "resolvedAt": "2021-01-13T12:34:56.123Z",
- "createdAt": "2021-01-13T12:34:56.123Z",
- "updatedAt": "2021-01-13T12:34:56.123Z",
- "followingId": "e0000000-a000-a000-a000-000000000001",
- "ruleTitle": "AWS:S3:bucketEnforceEncryption"
}
], - "total": 1
}
List all alerts history that belong to an organization the requesting user is a member of.
Request body to filter alerts history
organizationId required | string (Organization ID) Organization to filter the alerts (OrganizationId) |
scanTargetIds | Array of strings (Scan Target ID) Scan targets to filter alerts from (ScanTargetIds), not passing the field will fetch all |
lang | string (lang) Enum: "pt-BR" "en-US" Language. |
pageSize required | integer (page size) >= 1 Size of the page to fetch |
cursor | string (Cursor) Alert Cursor of the last alert consumed, when this value is passed, subsequent alert histories will be returned. |
{- "organizationId": "e0000000-a000-a000-a000-000000000001",
- "scanTargetIds": [
- "00000000-0000-4000-a000-000000000001"
], - "lang": "pt-BR",
- "pageSize": 25,
- "cursor": "54123412"
}
{- "data": [
- {
- "id": "d0000000-0000-0000-0000-000000000000",
- "version": 1,
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "scanTargetId": "00000000-0000-4000-a000-000000000001",
- "resource": "arn:aws:ec2:jp-higo-1:000000000001:instance/i-000a000b0001000d",
- "rule": "S3 Bucket does not enforce object cryptography.",
- "severity": "MEDIUM",
- "labels": [
- "TEST"
], - "metadata": {
- "region": "jp-higo-1",
- "status": "FAIL",
- "version": "0.1",
- "category": "SSM",
- "provider": "AWS"
}, - "enrichment": {
- "objectType": "string"
}, - "state": "OPEN",
- "openedAt": "2021-01-13T12:34:56.123Z",
- "resolvedAt": "2021-01-13T12:34:56.123Z",
- "date": "2021-01-13T12:34:56.123Z",
- "operation": "I#",
- "cursor": "3dlkJ3Z1aAxKB0Q",
- "ruleTitle": "S3 Bucket does not enforce object cryptography."
}
], - "total": 1,
- "cursor": "3dlkJ3Z1aAxKB0Q"
}
List all alerts history following that belong to an organization the requesting user is a member of.
Request body to filter alerts history Following
organizationId required | string (Organization ID) Organization to filter the alerts (OrganizationId) |
followingIds | Array of strings (Following ids) Organizations to filter following alerts from (FollowingIds), all ids must belong to following organizations. not passing the field will fetch from all |
lang | string (lang) Enum: "pt-BR" "en-US" Language. |
pageSize required | integer (page size) >= 1 Size of the page to fetch |
cursor | string (Cursor) Alert cursor marks a specific point within the alert list, so we can control where the list starts |
{- "organizationId": "e0000000-a000-a000-a000-000000000001",
- "followingIds": [
- "00000000-0000-4000-a000-000000000001"
], - "lang": "pt-BR",
- "pageSize": 25,
- "cursor": "54123412"
}
{- "data": [
- {
- "id": "d0000000-0000-0000-0000-000000000000",
- "scanTargetId": "e0000000-a000-a000-a000-000000000002",
- "resource": "arn:aws:ec2:jp-higo-1:000000000001:instance/i-000a000b0001000d",
- "rule": "AWS:SSM:ssmActiveOnAllInstances",
- "severity": "MEDIUM",
- "metadata": {
- "region": "jp-higo-1",
- "status": "FAIL",
- "version": "0.1",
- "category": "SSM",
- "provider": "AWS"
}, - "labels": [ ],
- "enrichment": {
- "objectType": "string"
}, - "state": "ACTIVE",
- "date": "2023-01-13T12:34:56.123Z"
}
], - "total": 1,
- "cursor": "3dlkJ3Z1aAxKB0Q"
}
Lists all alerts grouped by rules.
Data to filter
organizationId required | string (Organization ID) Organization to filter the alerts (OrganizationId) |
scanTargetIds | Array of strings (Scan Target ID) Scan targets to filter alerts from (ScanTargetIds), not passing the field will fetch all |
states | Array of strings (Alert State) Items Enum: "OPEN" "ACTIVE" "IN_PROGRESS" "RISK_ACCEPTED" "MITIGATING_CONTROL" "FALSE_POSITIVE" "CLOSED" Alert states to filter, not passing the field will fetch all. Note: The ACTIVE state is the combination of the OPEN and IN_PROGRESS states. |
severities | Array of strings (Violated Rule) Items Enum: "CRITICAL" "HIGH" "MEDIUM" "LOW" "INFO" Severity of the alert to filter, not passing the field will fetch all |
page required | integer (page) >= 1 Page to be fetched, starts at 1 |
pageSize required | integer (page size) >= 1 Size of the page to fetch |
lang | string (lang) Enum: "pt-BR" "en-US" Language result should be in |
search | string (search) String to search for |
sort | string (sort) Enum: "desc" "asc" Sort order the results should be in |
order | string (order) Enum: "rule" "count" "severity" Field to use for ordering |
createdAtStart | string <date-time> (Creation Date (starts at)) Search alerts by creation date - greater or equals than |
createdAtEnd | string <date-time> (Creation Date (ends at)) Search alerts by creation date - less or equals than |
updatedAtStart | string <date-time> (Update Date (starts at)) Search alerts by update date - greater or equals than |
updatedAtEnd | string <date-time> (Update Date (ends at)) Search alerts by update date - less or equals than |
{- "organizationId": "e0000000-a000-a000-a000-000000000001",
- "scanTargetIds": [
- "00000000-0000-4000-a000-000000000001"
], - "states": [
- "ACTIVE",
- "CLOSED"
], - "severities": [
- "HIGH",
- "MEDIUM"
], - "page": 2,
- "pageSize": 25,
- "lang": "en-US",
- "search": "dns",
- "sort": "desc",
- "order": "rule",
- "createdAtStart": "2019-08-24T14:15:22Z",
- "createdAtEnd": "2019-08-24T14:15:22Z",
- "updatedAtStart": "2019-08-24T14:15:22Z",
- "updatedAtEnd": "2019-08-24T14:15:22Z"
}
[- {
- "rule": "AWS:ELB:elbNoInstances",
- "timelinessThreshold": 30,
- "severity": "HIGH",
- "count": 10
}
]
Lists all alerts grouped by rule from organizations that you follow, according to the data filters I want
Data to filter
organizationId required | string (Organization ID) Organization to filter the following alerts (OrganizationId) |
followingIds | Array of strings (Following ids) Organizations to filter following alerts from (FallowingIds), all ids must belong to following organizations. Not passing the field will fetch from all |
states | Array of strings (Alert State) Items Enum: "OPEN" "ACTIVE" "IN_PROGRESS" "RISK_ACCEPTED" "MITIGATING_CONTROL" "FALSE_POSITIVE" "CLOSED" Alert states to filter, not passing the field will fetch all. Note: The ACTIVE state is the combination of the OPEN and IN_PROGRESS states. |
severities | Array of strings (Violated Rule) Items Enum: "CRITICAL" "HIGH" "MEDIUM" "LOW" "INFO" Severity of the alert to filter, not passing the field will fetch all |
page required | integer (page) >= 1 Page to be fetched, starts at 1 |
pageSize required | integer (page size) >= 1 Size of the page to fetch |
lang | string (lang) Enum: "pt-BR" "en-US" Language result should be in |
search | string (search) String to search for |
sort | string (sort) Enum: "desc" "asc" Sort order the results should be in |
order | string (order) Enum: "rule" "count" "severity" Field to use for ordering |
{- "organizationId": "e0000000-a000-a000-a000-000000000001",
- "followingIds": [
- "00000000-0000-4000-a000-000000000001"
], - "states": [
- "ACTIVE",
- "CLOSED"
], - "severities": [
- "HIGH",
- "MEDIUM"
], - "page": 2,
- "pageSize": 25,
- "lang": "en-US",
- "search": "dns",
- "sort": "desc",
- "order": "rule"
}
{- "rule": "AWS:ELB:elbNoInstances",
- "timelinessThreshold": 30,
- "severity": "HIGH",
- "count": 10
}
Get detailed data on a specific alert given the alert and alert Ids. Requesting user must be a member or a follower of the organization. Data depth will vary depending on the requesting user relanshionship with the organization.
alertId required | string <uuid> The ID of an alert |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/alerts/{alertId}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
{- "id": "d0000000-0000-0000-0000-000000000000",
- "version": 1,
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "scanTargetId": "00000000-0000-4000-a000-000000000001",
- "resource": "arn:aws:ec2:jp-higo-1:000000000001:instance/i-000a000b0001000d",
- "rule": "S3 Bucket does not enforce object cryptography.",
- "severity": "MEDIUM",
- "tags": [
- "AWS",
- "SSM"
], - "compliances": [
- "PCIDSS=0.0.0=0.1",
- "PCIDSS=0.0.0=0.2"
], - "labels": [
- "TEST"
], - "metadata": {
- "region": "jp-higo-1",
- "status": "FAIL",
- "version": "0.1",
- "category": "SSM",
- "provider": "AWS"
}, - "enrichment": {
- "objectType": "string"
}, - "state": "OPEN",
- "timelinessThreshold": 30,
- "openedAt": "2021-01-13T12:34:56.123Z",
- "resolvedAt": "2021-01-13T12:34:56.123Z",
- "createdAt": "2021-01-13T12:34:56.123Z",
- "updatedAt": "2023-01-13T12:34:56.123Z"
}
List all historical versions of one alert that belong to an organization the requesting user is a member of.
alertId required | string <uuid> The ID of an alert |
page required | integer >= 1 |
pageSize required | integer >= 1 |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/alerts/{alertId}/history' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json' \
{- "data": [
- {
- "id": "d0000000-0000-0000-0000-000000000000",
- "scanTargetId": "e0000000-a000-a000-a000-000000000002",
- "resource": "arn:aws:ec2:jp-higo-1:000000000001:instance/i-000a000b0001000d",
- "rule": "AWS:SSM:ssmActiveOnAllInstances",
- "severity": "MEDIUM",
- "metadata": {
- "region": "jp-higo-1",
- "status": "FAIL",
- "version": "0.1",
- "category": "SSM",
- "provider": "AWS"
}, - "labels": [ ],
- "enrichment": {
- "objectType": "string"
}, - "state": "ACTIVE",
- "createdAt": "2023-01-13T12:34:56.123Z"
}
], - "total": 1
}
List all comments of a specific alert that belongs to an organization the requesting user is a member of.
alertId required | string <uuid> The ID of an alert |
page required | integer >= 1 |
size required | integer >= 1 |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/alerts/{alertId}/comments' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json' \
{- "data": [
- {
- "id": "d0000000-0000-0000-0000-000000000000",
- "organizationId": "e0000000-a000-a000-a000-000000000001",
- "alertId": "e0000000-a000-a000-a000-000000000002",
- "userId": "e0000000-a000-a000-a000-000000000003",
- "userName": "Niten Ichi-ryu",
- "userPicture": "<Image URL>",
- "comment": "<p>Hello World!</p>",
- "createdAt": "2021-01-13T12:34:56.123Z"
}
], - "total": 1
}
Edits data on a specific alert given the organization ID, the scan target ID, and the alert ID. Alert must belong to the given organization and scan target. Requesting user must be a administrator of the organization.
organizationId required | string <uuid> The ID of an organization |
scanTargetId required | string <uuid> The ID of an a scan target |
alertId required | string <uuid> The ID of an alert |
Request body to update alert
state | any Enum: "OPEN" "ACTIVE" "IN_PROGRESS" "RISK_ACCEPTED" "MITIGATING_CONTROL" "CLOSED" |
labels | Array of strings (Labels) Labels associated with this alert. |
comment | string (Comments) Obligatory when changing state to RISK_ACCEPTED, FALSE_POSITIVE, or MITIGATING_CONTROL |
{- "state": "RISK_ACCEPTED",
- "labels": [
- "AWS",
- "SSM"
], - "comment": "string"
}
{- "id": "d0000000-0000-0000-0000-000000000000",
- "version": 1,
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "scanTargetId": "00000000-0000-4000-a000-000000000001",
- "resource": "arn:aws:ec2:jp-higo-1:000000000001:instance/i-000a000b0001000d",
- "rule": "AZURE:SecurityCenter:securityConfigMonitoring",
- "severity": "MEDIUM",
- "tags": [
- "AWS",
- "SSM"
], - "compliances": [
- "PCIDSS=0.0.0=0.1",
- "PCIDSS=0.0.0=0.2"
], - "labels": [
- "TEST"
], - "metadata": {
- "region": "jp-higo-1",
- "status": "FAIL",
- "version": "0.1",
- "category": "SSM",
- "provider": "AWS"
}, - "enrichment": {
- "objectType": "string"
}, - "state": "OPEN",
- "openedAt": "2021-01-13T12:34:56.123Z",
- "resolvedAt": "2021-01-13T12:34:56.123Z",
- "createdAt": "2021-01-13T12:34:56.123Z",
- "updatedAt": "2023-01-13T12:34:56.123Z",
- "ruleTitle": "S3 Bucket does not enforce object cryptography."
}
Create a new comment for this alert.
organizationId required | string <uuid> The ID of an organization |
alertId required | string <uuid> The ID of an alert |
Create comment
comment | string (Comment) Leave a comment in text/HTML |
{- "comment": "<p>Hello World!</>"
}
true
Edit a batch of alerts based on a set of filters and a list of IDs. All alerts that match the filters and the alerts that are on the IDs list will be updated, if you wish to use only one of those simply pass an empty array in one filter or and empty list on the IDs list. Requesting user must be a member of the organization.
organizationId required | string <uuid> The ID of an organization |
Request body to batch update alerts
state | string (New State) Enum: "OPEN" "IN_PROGRESS" "RISK_ACCEPTED" "MITIGATING_CONTROL" "FALSE_POSITIVE" The state to change the alerts to |
comment | string (Comment) Sanitized text/HTML with comment, this field is mandatory if the state is RISK_ACCEPTED, MITIGATING_CONTROL or FALSE_POSITIVE |
object (Condition) Condition to use for selecting alerts to update, all fields are mandatory and combined with AND except for the selection field which is OR |
{- "state": "RISK_ACCEPTED",
- "comment": "<p>I should not be accepting those risks</p>",
- "condition": {
- "dryRun": true,
- "scanTargetIds": [
- "00000000-0000-4000-a000-000000000001"
], - "rules": [
- "GCP:IAM:serviceAccountAdmin",
- "DOMAIN:SSL:tls10inUse"
], - "states": [
- "OPEN",
- "IN_PROGRESS"
], - "severities": [
- "HIGH",
- "MEDIUM"
], - "selection": {
- "alertIds": [
- "aaaaaaaa-0000-4000-a000-000000000001",
- "aaaaaaaa-0000-4000-a000-000000000002",
- "aaaaaaaa-0000-4000-a000-000000000003"
]
}
}
}
{- "count": 754,
- "dryRun": true
}
Returns summarized data for the scans pertinent to the user. If scanTargetIds is empty or null, all of the scan targets are included.
Data to filter
organizationId required | string (Organization ID) Organization to filter the summary (OrganizationId) |
scanTargetIds | Array of strings (Scan Target ID) Scan targets to filter summaries from (ScanTargetIds), not passing the field will fetch all |
search | string (search) String to search for |
lang | string (lang) Enum: "pt-BR" "en-US" Language result should be in |
{- "organizationId": "e0000000-a000-a000-a000-000000000001",
- "scanTargetIds": [
- "00000000-0000-4000-a000-000000000001"
], - "search": "dns",
- "lang": "en-US"
}
{- "total": {
- "OPEN": {
- "CRITICAL": 50,
- "HIGH": 50,
- "MEDIUM": 50,
- "LOW": 50,
- "INFO": 50
}, - "CLOSED": {
- "CRITICAL": 60,
- "HIGH": 60,
- "MEDIUM": 60,
- "LOW": 60,
- "INFO": 60
}, - "RISK_ACCEPTED": {
- "CRITICAL": 10,
- "HIGH": 20,
- "MEDIUM": 30,
- "LOW": 40,
- "INFO": 2
}
}, - "scanTargets": {
- "00000000-0000-4000-a000-000000000001": {
- "OPEN": {
- "CRITICAL": 50,
- "HIGH": 50,
- "MEDIUM": 50,
- "LOW": 50,
- "INFO": 50
}, - "CLOSED": {
- "CRITICAL": 60,
- "HIGH": 60,
- "MEDIUM": 60,
- "LOW": 60,
- "INFO": 60
}, - "RISK_ACCEPTED": {
- "CRITICAL": 10,
- "HIGH": 20,
- "MEDIUM": 30,
- "LOW": 40,
- "INFO": 2
}, - "MITIGATING_CONTROL": {
- "CRITICAL": 10,
- "HIGH": 20,
- "MEDIUM": 30,
- "LOW": 40,
- "INFO": 2
}, - "IN_PROGRESS": {
- "CRITICAL": 10,
- "HIGH": 20,
- "MEDIUM": 30,
- "LOW": 40,
- "INFO": 2
}
}
}
}
Returns a summary of all the scan targets, with stats such as close alerts and more. The logged user must be a member of the given organization
organizationId required | string Organization unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/{orgId}/summary/scantarget' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \
[- {
- "id": "00000000-0000-4000-a000-000000000001",
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "name": "Kami Fujiwara",
- "kind": "AWS",
- "status": "ACTIVE",
- "account": "tenchisecurity.com",
- "credential": {
- "account": "000000000000"
}, - "schedule": "24h",
- "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z",
- "discovered": 200,
- "resolved": 150,
- "remaining": 50,
- "remainingBySeverity": {
- "critical": 0,
- "high": 0,
- "medium": 0,
- "low": 0,
- "info": 0
}, - "percentResolved": 0.75,
- "timeliness": 0.75
}
]
Returns a summary of all the followings, with stats such as close alerts, types of scan targets and more. The logged user must be a member of the given organization
organizationId required | string Organization unique identifier |
Request body to filter following summaries
scanTargetKinds | string (Scan Target Kinds) Enum: "AWS" "AZURE" "BITBUCKET" "DOMAIN" "GCP" "GITHUB" "GITLAB" "GWORKSPACE" "HUAWEI" "JIRA" "MS365" "ORACLE" "SALESFORCE" "SLACK" Scan Target Kinds that the following has, not passing the field will fetch all. |
alertSeverity | Array of strings (Alert Severities) Items Enum: "CRITICAL" "HIGH" "MEDIUM" "LOW" "INFO" Severity of the alerts to filter, not passing the field will fetch all. |
status | string (Current status) Enum: "ACTIVE" "SUSPENDED" Only followings with the informed status will be fetched, not passing the field will fetch all. |
search | string (Name Search) Name to be search among the following name, not passing the field will fetch all. |
tags | Array of strings (Tags) Tags applied to the organizations that one follows to filter. Not passing the field will fetch the ones without tag |
order | string (Order Field) Field to sort the data, not passing the field will order by name. |
sort | string (Sort Field) Enum: "asc" "desc" The data should be sorted ascending (asc) or descending (desc). |
{- "scanTargetKinds": [
- "AWS"
], - "alertSeverity": [
- "HIGH",
- "MEDIUM"
], - "status": [
- "ACTIVE"
], - "search": "ACME",
- "tags": [
- "security",
- "cloud"
], - "order": "name",
- "sort": "asc"
}
{- "data": [
- {
- "id": "00000000-0000-4000-a000-000000000001",
- "name": "Niten Ichi-ryu",
- "status": "ACTIVE",
- "scanTargetKinds": [
- "AWS",
- "GCP"
], - "percentResolved": 0.75,
- "timeliness": 0.75,
- "discovered": 200,
- "remaining": 50,
- "remaingBySeverity": {
- "critical": 0,
- "high": 0,
- "medium": 0,
- "low": 0,
- "info": 0
}, - "resolved": 150,
- "tags": [
- "development",
- "security"
], - "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}
]
}
Summarizes following data on all relevant scans for the user. This data is grouped by followings and severity. Only followers can access.
Data to filter
organizationId required | string (Organization ID) Organization to filter the following alert summary (OrganizationId) |
followingIds | Array of strings (Following ID) Organization ids of following to filter (FollowingIds) |
page | integer (page) >= 1 Page to be fetched, starts at 1 |
{- "organizationId": "e0000000-a000-a000-a000-000000000001",
- "followingIds": [
- "00000000-0000-4000-a000-000000000001"
], - "page": 2
}
{- "following": {
- "d0000000-3000-4000-9000-f00000000000": {
- "OPEN": {
- "CRITICAL": 25,
- "HIGH": 25,
- "MEDIUM": 25,
- "LOW": 25,
- "INFO": 25
}, - "IN_PROGRESS": {
- "CRITICAL": 10,
- "HIGH": 20,
- "MEDIUM": 30,
- "LOW": 40,
- "INFO": 50
}, - "MITIGATING_CONTROL": {
- "CRITICAL": 10,
- "HIGH": 20,
- "MEDIUM": 30,
- "LOW": 40,
- "INFO": 50
}, - "FALSE_POSITIVE": {
- "CRITICAL": 10,
- "HIGH": 20,
- "MEDIUM": 30,
- "LOW": 40,
- "INFO": 50
}, - "CLOSED": {
- "CRITICAL": 10,
- "HIGH": 20,
- "MEDIUM": 30,
- "LOW": 40,
- "INFO": 50
}, - "RISK_ACCEPTED": {
- "CRITICAL": 5,
- "HIGH": 10,
- "MEDIUM": 15,
- "LOW": 20,
- "INFO": 1
}
}, - "d0000000-d000-4000-8000-c00000000000": {
- "OPEN": {
- "CRITICAL": 25,
- "HIGH": 25,
- "MEDIUM": 25,
- "LOW": 25,
- "INFO": 25
}, - "IN_PROGRESS": {
- "CRITICAL": 10,
- "HIGH": 20,
- "MEDIUM": 30,
- "LOW": 40,
- "INFO": 50
}, - "MITIGATING_CONTROL": {
- "CRITICAL": 10,
- "HIGH": 20,
- "MEDIUM": 30,
- "LOW": 40,
- "INFO": 50
}, - "FALSE_POSITIVE": {
- "CRITICAL": 10,
- "HIGH": 20,
- "MEDIUM": 30,
- "LOW": 40,
- "INFO": 50
}, - "CLOSED": {
- "CRITICAL": 10,
- "HIGH": 20,
- "MEDIUM": 30,
- "LOW": 40,
- "INFO": 50
}, - "RISK_ACCEPTED": {
- "CRITICAL": 5,
- "HIGH": 10,
- "MEDIUM": 15,
- "LOW": 20,
- "INFO": 1
}
}
}
}
An endpoint to get summarized data on the scans relevant to the user, grouped by scan target type
Data to filter
organizationId required | string (Organization ID) Organization to filter the following alert summary (OrganizationId) |
followingIds | Array of strings (Following ID) Organization ids of following to filter (FollowingIds) |
severities | Array of strings (Alert Severities) Items Enum: "CRITICAL" "HIGH" "MEDIUM" "LOW" "INFO" Severity of the alert to filter, not passing the field will fetch all. |
sort | string (sort) Enum: "desc" "asc" Sort order the results should be in |
order | string (order) Enum: "kind" "percentResolved" "timeliness" "discovered" "remaining" "resolved" "organizationCount" Field to use for ordering |
page required | integer (page) >= 1 Page to be fetched, starts at 1 |
pageSize required | integer (page size) >= 1 Size of the page to fetch |
{- "organizationId": "e0000000-a000-a000-a000-000000000001",
- "followingIds": [
- "00000000-0000-4000-a000-000000000001"
], - "severities": [
- "HIGH",
- "MEDIUM"
], - "sort": "desc",
- "order": "percentResolved",
- "page": 2,
- "pageSize": 1
}
{- "kind": "AWS",
- "percentResolved": 0.75,
- "timeliness": 0.75,
- "discovered": 200,
- "remaining": 50,
- "resolved": 150,
- "organizationCount": 5
}
An endpoint to get summarized data on the scans relevant to the user, grouped by tag
Data to filter
organizationId required | string (Organization ID) Organization to filter the following alert summary (OrganizationId) |
followingIds | Array of strings (Following ID) Organization ids of following to filter (FollowingIds) |
severities | Array of strings (Alert Severities) Items Enum: "CRITICAL" "HIGH" "MEDIUM" "LOW" "INFO" Severity of the alert to filter, not passing the field will fetch all. |
sort | string (sort) Enum: "desc" "asc" Sort order the results should be in |
order | string (order) Enum: "tag" "percentResolved" "timeliness" "discovered" "remaining" "resolved" "organizationCount" Field to use for ordering |
{- "organizationId": "e0000000-a000-a000-a000-000000000001",
- "followingIds": [
- "00000000-0000-4000-a000-000000000001"
], - "severities": [
- "HIGH",
- "MEDIUM"
], - "sort": "desc",
- "order": "percentResolved"
}
{- "tag": "security",
- "percentResolved": 0.75,
- "timeliness": 0.75,
- "discovered": 200,
- "remaining": 50,
- "resolved": 150,
- "organizationCount": 5
}
An endpoint to get summarized data on the trend of resolved alerts by thhe followings over the specified dates.
Data to filter
organizationId required | string (Organization ID) Organization that the requester belongs to, data will be fetched from this organization followings |
followingIds | Array of strings (Following ids) Organizations to filter following alerts from (FollowingIds), all ids must belong to following organizations. not passing the field will fetch from all |
severities | Array of strings (Severities) Items Enum: "CRITICAL" "HIGH" "MEDIUM" "LOW" "INFO" Severities of the alerts to filter, not passing the field will fetch all. |
dates | Array of strings (Dates) Dates to gather the data for (YYYY-MM-DD format), not passing the field will fetch the data for the current day. A maximum of 12 dates can be passed. Passing dates for which the system has no data will result in that item not being included in the response. |
{- "organizationId": "e0000000-a000-a000-a000-000000000001",
- "followingIds": [
- "00000000-0000-4000-a000-000000000001"
], - "severities": [
- "HIGH",
- "MEDIUM"
], - "dates": [
- "2023-01-01",
- "2023-02-01",
- "2023-03-01",
- "2023-04-01",
- "2023-04-15"
]
}
{- "data": [
- {
- "date": "2023-01-01",
- "discovered": 100,
- "remaining": 50,
- "followingCount": 5,
- "updatedAt": "2023-01-01T00:00:00.000Z"
}, - {
- "date": "2023-02-01",
- "discovered": 150,
- "remaining": 100,
- "followingCount": 5,
- "updatedAt": "2023-02-01T00:00:00.000Z"
}, - {
- "date": "2023-03-01",
- "discovered": 150,
- "remaining": 78,
- "followingCount": 7,
- "updatedAt": "2023-03-01T00:00:00.000Z"
}, - {
- "date": "2023-04-01",
- "discovered": 150,
- "remaining": 22,
- "followingCount": 7,
- "updatedAt": "2023-04-01T00:00:00.000Z"
}, - {
- "date": "2023-04-15",
- "discovered": 165,
- "remaining": 5,
- "followingCount": 7,
- "updatedAt": "2023-05-01T00:00:00.000Z"
}
]
}
Returns summarized data for the organizations. Only members of the organization can access. Followers don't see summarized data on the scans. Keys that do not exist in the request body will be ignored.
Data to filter
organizationId required | string (Organization ID) Organization to filter the summary (OrganizationId) |
scanTargetIds | Array of strings (Scan Target ID) Scan targets to filter summaries from (ScanTargetIds), not passing the field will fetch all |
search | string (search) String to search for |
lang | string (lang) Enum: "pt-BR" "en-US" Language result should be in |
{- "organizationId": "e0000000-a000-a000-a000-000000000001",
- "scanTargetIds": [
- "00000000-0000-4000-a000-000000000001"
], - "search": "dns",
- "lang": "en-US"
}
{- "organization": {
- "all": {
- "2021-01-01": {
- "schema": {
- "infos": {
- "OPEN": {
- "CRITICAL": 30,
- "HIGH": 30,
- "MEDIUM": 30,
- "LOW": 30,
- "INFO": 30
}, - "CLOSED": {
- "CRITICAL": 40,
- "HIGH": 40,
- "MEDIUM": 40,
- "LOW": 40,
- "INFO": 40
}
}, - "states": {
- "OPEN": 150,
- "CLOSED": 150
}, - "severities": {
- "CRITICAL": 10,
- "HIGH": 20,
- "MEDIUM": 30,
- "LOW": 40,
- "INFO": 50
}
}
}
}
}
}
Returns summary data for the following organizations. Only members of the organization can access. Keys that do not exist in the request body will be ignored.
Data to filter
organizationId required | string (Organization ID) Organization to filter the summary (OrganizationId) |
followingIds | Array of strings (Following ID) Organization ids of following to filter (FollowingIds) |
daysBefore | integer (Days Before) How many days before the current day to fetch data from (default: 7) |
{- "organizationId": "e0000000-a000-a000-a000-000000000001",
- "followingIds": [
- "00000000-0000-4000-a000-000000000001"
], - "daysBefore": 5
}
{- "organization": {
- "e0000000-a000-a000-a000-000000000001": {
- "2021-01-01": {
- "schema": {
- "infos": {
- "OPEN": {
- "CRITICAL": 30,
- "HIGH": 30,
- "MEDIUM": 30,
- "LOW": 30,
- "INFO": 30
}, - "CLOSED": {
- "CRITICAL": 40,
- "HIGH": 40,
- "MEDIUM": 40,
- "LOW": 40,
- "INFO": 40
}
}, - "states": {
- "OPEN": 150,
- "CLOSED": 150
}, - "severities": {
- "CRITICAL": 10,
- "HIGH": 20,
- "MEDIUM": 30,
- "LOW": 40,
- "INFO": 50
}
}
}
}
}
}
Create document to export alerts of organizations (one or more). Only CSV format. Only members or followers can access.
language required | string (language) User Language |
service required | string (service) Document service |
formats required | Array of arrays (Email) Document type. Only CSV format |
required | object (Filter param) |
{- "language": "pt-BR",
- "service": "following.alert.list",
- "formats": [
- "CSV"
], - "filterParam": {
- "organizationId": [
- "000086d0-0000-0000-0000-00000023ea00"
], - "followingIds": [
- "000086d0-0000-0000-0000-00000023ea00"
], - "alertStates": [
- "OPEN",
- "IN_PROGRESS"
], - "alertSeverities": [
- "HIGH",
- "CRITICAL"
], - "detailed": false
}
}
{- "language": "pt-BR",
- "service": "following.alert.list",
- "formats": [
- "CSV"
], - "filterParam": {
- "organizationId": [
- "000086d0-0000-0000-0000-00000023ea00"
], - "followingIds": [
- "000086d0-0000-0000-0000-00000023ea00"
], - "alertStates": [
- "OPEN",
- "IN_PROGRESS"
], - "alertSeverities": [
- "HIGH",
- "CRITICAL"
], - "detailed": false
}, - "status": "PENDING",
- "createdAt": "2023-01-13T12:34:56.123Z",
- "expires": 1684093592.15,
- "userId": "000086d0-0000-0000-0000-00000023ea00",
- "id": "000086d0-0000-0000-0000-00000023ea00"
}
Deletes an generated document alerts. Only members or followers can access.
documentId required | string Document Identifier |
curl -X 'DELETE' \ 'https://api.zanshin.tenchisecurity.com/me/documents/{documentId}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
true
Create a new questionnaire for organization. Only members can create a questionnaire.
organizationId required | string Organization unique identifier |
Questionnaire Name
name | string (name) The questionnaire name |
description | string (description) The questionnaire description with markdown |
{- "name": "LGPD Questionnaire",
- "description": "Was enacted to protect the fundamental rights of freedom and privacy, and the free formation of the personality of each individual"
}
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "organizationId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "version": 0,
- "name": "LGPD Questionnaire",
- "description": "Was enacted to protect the fundamental rights of freedom and privacy",
- "status": "ACTIVE",
- "createdAt": "2023-12-01T12:34:56.123Z",
- "updatedAt": "2023-12-01T12:34:56.123Z"
}
Get all questionnaire for organization. Only organization members can get all questionnaires. Can be sorted by name, status, createdAt, updatedAt, version and filtered by status and name.
organizationId required | string Organization unique identifier |
order | string Enum: "name" "status" "version" "createdAt" "updatedAt" Example: order=version |
sort | string Enum: "asc" "desc" Example: sort=asc |
status | string Enum: "ACTIVE" "INACTIVE" Example: status=ACTIVE |
name | string Example: name=myQuestionnaire |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/questionnaires' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json' \
{- "data": [
- {
- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "organizationId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "version": 0,
- "name": "LGPD Questionnaire",
- "description": "Was enacted to protect the fundamental rights of freedom and privacy",
- "status": "ACTIVE",
- "createdAt": "2023-12-01T12:34:56.123Z",
- "updatedAt": "2023-12-01T12:34:56.123Z"
}
]
}
Get a specific questionnaire for organization. Only organization members can get all questionnaires.
organizationId required | string Organization unique identifier |
questionnaireId required | string Questionnaire unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/questionnaires/f1b6afa7-0000-1111-2222-66e2faf6488e' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json'
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "organizationId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "version": 0,
- "name": "LGPD Questionnaire",
- "description": "Was enacted to protect the fundamental rights of freedom and privacy",
- "status": "ACTIVE",
- "createdAt": "2023-12-01T12:34:56.123Z",
- "updatedAt": "2023-12-01T12:34:56.123Z"
}
Update a specific questionnaire for organization. Only organization member should get all questionnaires.
organizationId required | string Organization unique identifier |
questionnaireId required | string Questionnaire unique identifier |
curl -X 'PUT' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/questionnaires/f1b6afa7-0000-1111-2222-66e2faf6488e' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json' --data '{ "name": "Questionário 2 UPDATE - Teste", "description": "### description markdown SUPER ADMIN UPDATE" }'
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "organizationId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "version": 0,
- "name": "LGPD Questionnaire",
- "description": "Was enacted to protect the fundamental rights of freedom and privacy",
- "status": "ACTIVE",
- "createdAt": "2023-12-01T12:34:56.123Z",
- "updatedAt": "2023-12-01T12:34:56.123Z"
}
Publish a new questionnaire for organization. Only organization admin members can create a questionnaire.
organizationId required | string Organization unique identifier |
questionnaireId required | string Questionnaire unique identifier |
curl -X 'POST' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/questionnaires/00000000-ffff-4000-a000-000000000001/publish' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json' \
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "organizationId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "version": 0,
- "name": "LGPD Questionnaire",
- "description": "Was enacted to protect the fundamental rights of freedom and privacy",
- "status": "ACTIVE",
- "createdAt": "2023-12-01T12:34:56.123Z",
- "updatedAt": "2023-12-01T12:34:56.123Z"
}
Send a new questionnaire for organization. Only organization admin members can create a questionnaire.
organizationId required | string Organization unique identifier |
questionnaireId required | string Questionnaire unique identifier |
curl -X 'POST' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/questionnaires/00000000-ffff-4000-a000-000000000001/send' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json' \ -d '{ "receiverIds": ["00000000-ffff-4000-a000-000000000005"] "dueDate": "2023-11-10T14:30:19.232Z" }'
true
Get all questionnaire versions. Only members can create a questionnaire.
organizationId required | string Organization unique identifier |
questionnaireId required | string Questionnaire unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/questionnaires/00000000-ffff-4000-a000-000000000001/versions' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json'
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "organizationId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "version": 0,
- "name": "LGPD Questionnaire",
- "description": "Was enacted to protect the fundamental rights of freedom and privacy",
- "status": "ACTIVE",
- "createdAt": "2023-12-01T12:34:56.123Z",
- "updatedAt": "2023-12-01T12:34:56.123Z"
}
Get a specific questionnaire version. Only members can create a questionnaire.
organizationId required | string Organization unique identifier |
questionnaireId required | string Questionnaire unique identifier |
questionnaireVersion required | number Version unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/questionnaires/00000000-ffff-4000-a000-000000000001/versions/1' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json'
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "organizationId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "version": 0,
- "name": "LGPD Questionnaire",
- "description": "Was enacted to protect the fundamental rights of freedom and privacy",
- "status": "ACTIVE",
- "createdAt": "2023-12-01T12:34:56.123Z",
- "updatedAt": "2023-12-01T12:34:56.123Z"
}
Create a new question for questionnaire. Only members can create a questionnaire.
organizationId required | string Organization unique identifier |
questionnaireId required | string Questionnaire unique identifier |
curl -X 'POST' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/questionnaires/00000000-ffff-4000-a000-000000000001/questions' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json' \ -d '{ "order": "1", "title": "Question 1", "description": "Description 1", "params": ["SINGLE_CHOICE"], }'
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "organizationId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "version": 0,
- "name": "LGPD Questionnaire",
- "description": "Was enacted to protect the fundamental rights of freedom and privacy",
- "status": "ACTIVE",
- "createdAt": "2023-12-01T12:34:56.123Z",
- "updatedAt": "2023-12-01T12:34:56.123Z"
}
Only organization members can get all questions for questionnaire. Can be filtered by title, type and required.
organizationId required | string Organization unique identifier |
questionnaireId required | string Questionnaire unique identifier |
title | string Example: title=firstQuestion |
type | string Enum: "TEXT" "SINGLE_CHOICE" "MULTIPLE_CHOICE" Example: type=TEXT |
required | boolean Example: required=true |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/questionnaires/00000000-ffff-4000-a000-000000000001/questions' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json'
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "organizationId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "version": 0,
- "name": "LGPD Questionnaire",
- "description": "Was enacted to protect the fundamental rights of freedom and privacy",
- "status": "ACTIVE",
- "createdAt": "2023-12-01T12:34:56.123Z",
- "updatedAt": "2023-12-01T12:34:56.123Z"
}
Get all assessments for organization. Only organization members can get all assessments. Sortable by questionnaire name, due date, date sent and status. Filterable by questionnaire name, receiver id, sender id, questionnaire id, due date, status.
organizationId required | string Organization unique identifier |
order | string Enum: "status" "dueDate" "updatedAt" "name" Example: order=status |
sort | string Enum: "asc" "desc" Example: sort=asc |
name | string Example: name=myQuestionnaire |
status | string Enum: "NEW" "APPROVED" "REJECTED" "REQUESTED_REVIEW" "REQUESTED_CLARIFICATION" "REQUESTED_DEBATE" Example: status=NEW |
dueDateStart | string <date-time> Example: dueDateStart=2020-01-15T11:30:59.123Z |
dueDateEnd | string <date-time> Example: dueDateEnd=2020-01-15T11:30:59.123Z |
senderId | string <uuid> Example: senderId=f12345ab-6cd9-ab88-999e-bbdd2266f1b2 |
receiverId | string <uuid> Example: receiverId=f12345ab-6cd9-ab88-999e-bbdd2266f1b2 |
questionnaireId | string <uuid> Example: questionnaireId=f12345ab-6cd9-ab88-999e-bbdd2266f1b2 |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/assessments' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json'
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "questionnaireId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "questionnaireVersion": 0,
- "senderId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "receiverId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "name": "LGPD Questionnaire",
- "description": "Was enacted to protect the fundamental rights of freedom and privacy",
- "dueDate": "2023-12-01T12:34:56.123Z",
- "firstRequestedReviewAt": "2023-12-01T11:11:11.123Z",
- "status": "NEW",
- "createdAt": "2023-12-01T12:34:56.123Z",
- "updatedAt": "2023-12-01T12:34:56.123Z"
}
Get all assessments for organization. Only organization members can get all assessments.
organizationId required | string Organization unique identifier |
assessmentId required | string Assessment unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/assessments/00000000-ffff-4000-a000-000000000001' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json'
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "questionnaireId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "questionnaireVersion": 0,
- "senderId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "receiverId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "name": "LGPD Questionnaire",
- "description": "Was enacted to protect the fundamental rights of freedom and privacy",
- "dueDate": "2023-12-01T12:34:56.123Z",
- "firstRequestedReviewAt": "2023-12-01T11:11:11.123Z",
- "status": "NEW",
- "createdAt": "2023-12-01T12:34:56.123Z",
- "updatedAt": "2023-12-01T12:34:56.123Z"
}
Create a new question for questionnaire. Only organization members can create a question.
organizationId required | string Organization unique identifier |
questionnaireId required | string Questionnaire unique identifier |
questionId required | string Question unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/questionnaires/00000000-ffff-4000-a000-000000000001/questions/00000007-ffff-4000-a000-000000000007' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json' \
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "organizationId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "version": 0,
- "name": "LGPD Questionnaire",
- "description": "Was enacted to protect the fundamental rights of freedom and privacy",
- "status": "ACTIVE",
- "createdAt": "2023-12-01T12:34:56.123Z",
- "updatedAt": "2023-12-01T12:34:56.123Z"
}
Update question for questionnaire. Only organization members can create questions.
organizationId required | string Organization unique identifier |
questionnaireId required | string Questionnaire unique identifier |
questionId required | string Question unique identifier |
curl -X 'PUT' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/questionnaires/00000000-ffff-4000-a000-000000000001/questions' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json' \ -d '{ "order": "1", "title": "Question 1", "description": "Description 1", "params": ["SINGLE_CHOICE"], }'
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2"
}
Get all schedules for a questionnaire given both the organization and questionnaire Ids.
organizationId required | string Organization unique identifier |
questionnaireId required | string Questionnaire unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/questionnaires/f1b6afa7-0000-1111-2222-66e2faf6488e/schedules' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json'
{- "data": [
- {
- "id": "058d35d5-1e41-4ff9-8768-c76aa7009fed",
- "questionnaireId": "53c4706f-55c8-4f91-81ee-3fb773fc219b",
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "name": "Daily questionnaire schedule",
- "frequency": "MONTHLY",
- "dueDays": 5,
- "receiverTags": [
- "AnyTag"
], - "createdAt": "2021-01-01T12:34:56.123Z",
- "updatedAt": "2022-01-15T12:34:56.123Z"
}
]
}
Create a new schedule for the questionnaire.
organizationId required | string Organization unique identifier |
questionnaireId required | string Questionnaire unique identifier |
name | string (Name) Questionnaire schedule name |
frequency | string (Schedule) Enum: "MONTHLY" "QUARTERLY" "YEARLY" Questionnaire schedule |
dueDays | number (Due days) Questionnaire schedule due days |
receiverTags | Array of strings (Receiver tags) Questionnaire schedule receiver tags |
{- "name": "Daily questionnaire schedule",
- "frequency": "MONTHLY",
- "dueDays": 5,
- "receiverTags": [
- "AnyTag"
]
}
{- "id": "058d35d5-1e41-4ff9-8768-c76aa7009fed",
- "questionnaireId": "53c4706f-55c8-4f91-81ee-3fb773fc219b",
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "name": "Daily questionnaire schedule",
- "frequency": "MONTHLY",
- "dueDays": 5,
- "receiverTags": [
- "AnyTag"
], - "createdAt": "2021-01-01T12:34:56.123Z",
- "updatedAt": "2022-01-15T12:34:56.123Z"
}
Get a specific questionnaire schedule given the organization, questionnaire and questionnaire schedule Ids.
organizationId required | string Organization unique identifier |
questionnaireId required | string Questionnaire unique identifier |
questionnaireScheduleId required | string Questionnaire Schedule unique identifier |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/questionnaires/f1b6afa7-0000-1111-2222-66e2faf6488e/schedules/d95d5785-335e-472a-bd30-0b6c9164c49b' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json'
{- "id": "058d35d5-1e41-4ff9-8768-c76aa7009fed",
- "questionnaireId": "53c4706f-55c8-4f91-81ee-3fb773fc219b",
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "name": "Daily questionnaire schedule",
- "frequency": "MONTHLY",
- "dueDays": 5,
- "receiverTags": [
- "AnyTag"
], - "createdAt": "2021-01-01T12:34:56.123Z",
- "updatedAt": "2022-01-15T12:34:56.123Z"
}
Update a questionnaire schedule.
organizationId required | string Organization unique identifier |
questionnaireId required | string Questionnaire unique identifier |
questionnaireScheduleId required | string Questionnaire Schedule unique identifier |
name | string (Name) Questionnaire schedule name |
frequency | string (Schedule) Enum: "MONTHLY" "QUARTERLY" "YEARLY" Questionnaire schedule |
dueDays | number (Due days) Questionnaire schedule due days |
receiverTags | Array of strings (Receiver tags) Questionnaire schedule receiver tags |
{- "name": "Daily questionnaire schedule",
- "frequency": "MONTHLY",
- "dueDays": 5,
- "receiverTags": [
- "AnyTag"
]
}
{- "id": "058d35d5-1e41-4ff9-8768-c76aa7009fed",
- "questionnaireId": "53c4706f-55c8-4f91-81ee-3fb773fc219b",
- "organizationId": "00000000-0000-4000-a000-000000000001",
- "name": "Daily questionnaire schedule",
- "frequency": "MONTHLY",
- "dueDays": 5,
- "receiverTags": [
- "AnyTag"
], - "createdAt": "2021-01-01T12:34:56.123Z",
- "updatedAt": "2022-01-15T12:34:56.123Z"
}
Remove a questionnaire schedule given the organization, questionnaire and questionnaire schedule Ids.
organizationId required | string Organization unique identifier |
questionnaireId required | string Questionnaire unique identifier |
questionnaireScheduleId required | string Questionnaire Schedule unique identifier |
curl -X 'DELETE' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/questionnaires/f1b6afa7-0000-1111-2222-66e2faf6488e/schedules/d95d5785-335e-472a-bd30-0b6c9164c49b' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \
true
Updates the status for the questionnaire.
organizationId required | string Organization unique identifier |
questionnaireId required | string Questionnaire unique identifier |
status required | string (Status) Enum: "ACTIVE" "INACTIVE" Questionnaire Status |
{- "status": "ACTIVE"
}
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "organizationId": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "version": 0,
- "name": "LGPD Questionnaire",
- "description": "Was enacted to protect the fundamental rights of freedom and privacy",
- "status": "ACTIVE",
- "createdAt": "2023-12-01T12:34:56.123Z",
- "updatedAt": "2023-12-01T12:34:56.123Z"
}
Get questions and answers for an assessment. Can be sorted by answer status and filtered by answer status and question title.
organizationId required | string Organization unique identifier |
assessmentId required | string Assessment unique identifier |
order | string Value: "status" Example: order=status |
sort | string Enum: "asc" "desc" Example: sort=asc |
title | string Example: title=myQuestion |
status | string Enum: "NEW" "APPROVED" "REJECTED" "REQUESTED_REVIEW" "REQUESTED_DEBATE" "REQUESTED_CLARIFICATION" Example: status=NEW |
curl -X 'GET' \ 'https://api.zanshin.tenchisecurity.com/organizations/00000000-ffff-4000-a000-000000000001/assessments/00000000-ffff-4000-a000-000000000001/questions' \ -H 'accept: */*' \ -H 'Authorization: Bearer {AUTH_TOKEN}' \ -H 'Content-Type: application/json'
{- "data": [
- {
- "id": "d95f5beb-5c3c-4ee0-96ba-a769c25496fe",
- "order": "a",
- "title": "My Question",
- "description": "Question description",
- "params": {
- "type": "TEXT",
- "required": true
}, - "answer": {
- "assessmentId": "a8fb2f5b-34d7-4457-a9ac-2010c7e8c8fc",
- "questionId": "d95f5beb-5c3c-4ee0-96ba-a769c25496fe",
- "questionnaireId": "99fa643d-45fb-4bf6-9208-3d7319a8ab21",
- "questionnaireVersion": 0,
- "senderId": "00000000-0000-4000-a000-000000000001",
- "receiverId": "00000000-0000-4000-a000-000000000002",
- "content": {
- "type": "TEXT",
- "text": "Text Answer"
}, - "status": "NEW",
- "createdAt": "2021-01-01T12:34:56.123Z",
- "updatedAt": "2022-01-15T12:34:56.123Z"
}
}
]
}
Update for the following.
organizationId required | string Organization unique identifier |
followingId required | string A following organization unique identifier |
curl -X 'PUT' \ 'https://api.zanshin.tenchisecurity.com/organizations/{organizationId}/following/{followingId}' \ -H 'accept: application/json' \ -H 'Authorization: Bearer {AUTH_TOKEN}'
{- "id": "f12345ab-6cd9-ab88-999e-bbdd2266f1b2",
- "name": "Niten Ichi-ryu",
- "email": "example@org.com",
- "roles": [ ],
- "status": "ACTIVE",
- "tags": [
- [
- "design",
- "financial"
]
], - "updatedAt": "2022-01-15T12:34:56.123Z",
- "createdAt": "2021-01-01T12:34:56.123Z"
}