Skip to content

Push Security REST API (v1)

Overview

The Push Security REST API provides programmatic access to the administrative functionality of the Push platform. This API adheres to RESTful principles, featuring resource-oriented URLs that are predictable and easy to navigate.

The API uses JSON-formatted request bodies and responses along with standard HTTP response codes, authentication methods, and HTTP verbs.

Rate limits are in place to ensure consistent performance for all users.

Authentication

To interact with the Push Security API, you'll need an API key for authentication. To create or manage your API keys, go to the Settings page in the Push admin console.

When generating a new key, you have two permission levels to choose from: Read only and Full access. A Read only key lets you make GET requests, while Full access allows for all types of requests.

To authenticate your API requests, include a header named x-api-key and set its value to your API key.

All API calls must be made over HTTPS.

Rate limits

The Push Security API enforces rate limiting to ensure equitable access and maintain performance. Each user is permitted up to 10 API requests per second, with a temporary burst capacity that allows an additional 10 requests for brief intervals.

If you surpass these limits, the API will return a 429 status code as an indication.

Errors

The Push Security API uses standard HTTP response codes to signal the outcome of an API call. Here's what you need to know:

2xx codes: These indicate that your request was successful.

4xx codes: A client-side issue, usually because something is missing or incorrect in your request.

5xx codes: These suggest a problem on our end, although these occurrences are infrequent.

Common Response Codes

HTTP CodeDescription
200 OKYour request was successfully processed.
400 Bad RequestYour request is missing something or is incorrect. Double-check your parameters.
429 Too Many RequestsYou've exceeded the rate limits. Consider implementing exponential backoffs in your API calls.
500 Server ErrorSomething's not right on our end.

Versioning

You're currently working with version 1 of the Push Security API. Should there be any breaking changes in the future, we'll bump up the API version number. If you hold an active API key, we'll send you notifications over email about the deprecation date for the older version.

Download OpenAPI description
Languages
Servers
https://api.pushsecurity.com/

Accounts

These objects represent the accounts (owned by employees) in your organization.

Operations

Accounts (Other)

These objects represent the accounts (other) (owned by employees) in your organization.

Operations

Apps

These objects represent the apps that have been found in your organization.

Operations

Apps (Other)

These objects represent the apps (other) that have been found in your organization.

Operations

Browsers

These objects represent the browsers (used by employees) in your organization.

Operations

Browser Extensions

Operations

Detections

Operations

Employees

These objects represent the employees in your organization.

Operations

Findings

These objects represent the findings that have been found in your organization.

Operations

List findings

Request

Security
x-api-key
Query
statestring

Filter by finding state.

typestring

Filter by the type of finding.

employeeIdstring

Filter by the employee associated with the finding.

appTypestring

Filter by the app that is associated with the finding.

accountIdstring

Filter by the account that is associated with the finding.

passwordIdstring

Filter by the password identifier that is associated with the finding.

creationTimestampAfterstring

Filter by when the finding was first observed - start time. This is a UNIX timestamp (in seconds).

creationTimestampBeforeinteger

Filter by when the finding was first observed - end time. This is a UNIX timestamp (in seconds).

limitinteger[ 1 .. 500 ]

Used for pagination. Number of objects to return.

Default 500
nextTokenstring

Used for pagination. Token to be used for the next request. Cannot be set when offset is also set.

offsetintegerDeprecated

Used for pagination. Number of objects to skip. Cannot be set when nextToken is also set.

curl -i -X GET \
  https://api.pushsecurity.com/v1/findings \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
resultArray of objects(Finding)
result[].​idstring

Unique identifier for the finding

Example: "d6a32ba5-0532-4a66-8137-48cdf409c972"
result[].​typestring(FindingType)

The type of finding

Enum ValueDescription
MFA_NOT_REGISTERED

This account does not have MFA.

REUSED_PASSWORD

The password used on the account is being reused.

SHARED_ACCOUNT

The account credentials are being shared with another employee.

UNUSED_THIRD_PARTY_APP

The third-party integration has not been used in 90 days or more.

WEAK_PASSWORD

The password used on the account is weak.

LEAKED_PASSWORD

The password used on the account has been leaked in a data breach.

PASSWORD_MANAGER_NOT_USED

The employee typically uses manually typed passwords, rather than a password manager.

STOLEN_CREDENTIALS

The credentials used on the account have been identified as stolen.

result[].​statestring(FindingState)

The state of the finding

Enum ValueDescription
OPEN

The finding has been confirmed and is open.

RESOLVED

The finding has been resolved and is no longer an issue.

result[].​employeeIdstring or null

ID of the employee this finding is linked to, null if finding is not linked to an employee.

Example: "379ac7ea-ff2a-42ef-af37-06d2020dc46a"
result[].​passwordIdstring or null

ID of the password this finding is linked to, null if finding is not linked to a password.

Example: "c4a045a1-5331-4714-af83-6a361e98960d"
result[].​accountIdstring or null

ID of the account this finding is linked to, null if finding is not linked to an account.

result[].​appTypestring or null

The type of app this finding is linked to, null if finding is not linked to an app.

Example: "PUSH_SECURITY"
result[].​appIdstring or null

ID of the app this finding is linked to, null if finding is not linked to an app.

Example: "2a2197de-ad2c-47e4-8dcb-fb0f04cf83e0"
result[].​weakPasswordReasonsArray of strings or null(FindingType)

Reasons a password is weak, null if not a WEAK_PASSWORD finding.

Enum ValueDescription
COMMON_BASE_WORD

The base word is a derivative of top 10000 most used passwords.

BANNED_BASE_WORD

The password is a derivative of a custom banned word.

result[].​creationTimestampinteger

When this finding was first observed, formatted as a UNIX timestamp (in seconds)

Example: 1698064423
pagingobject
paging.​moreResultsboolean

Whether there are more results available

Example: true
paging.​nextTokenstring or null

Start of the next page that can be used as the nextToken for the next request.

Example: "0b9972aa-fe8d-4095-82d3-2e13cf3cfd43"
paging.​nextstring or nullDeprecated

Start of the next page that can be used as the offset for the next request

Example: "501"
Response
application/json
{ "result": [ { "id": "d6a32ba5-0532-4a66-8137-48cdf409c972", "type": "MFA_NOT_REGISTERED", "state": "OPEN", "employeeId": "379ac7ea-ff2a-42ef-af37-06d2020dc46a", "passwordId": "c4a045a1-5331-4714-af83-6a361e98960d", "accountId": "string", "appType": "PUSH_SECURITY", "appId": "2a2197de-ad2c-47e4-8dcb-fb0f04cf83e0", "weakPasswordReasons": [ "COMMON_BASE_WORD" ], "creationTimestamp": 1698064423 } ], "paging": { "moreResults": true, "next": "501", "nextToken": "0b9972aa-fe8d-4095-82d3-2e13cf3cfd43" } }

Retrieve a finding

Request

Security
x-api-key
Path
idstringrequired

Unique identifier for the finding

curl -i -X GET \
  'https://api.pushsecurity.com/v1/findings/{id}' \
  -H 'x-api-key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
idstring

Unique identifier for the finding

Example: "d6a32ba5-0532-4a66-8137-48cdf409c972"
typestring(FindingType)

The type of finding

Enum ValueDescription
MFA_NOT_REGISTERED

This account does not have MFA.

REUSED_PASSWORD

The password used on the account is being reused.

SHARED_ACCOUNT

The account credentials are being shared with another employee.

UNUSED_THIRD_PARTY_APP

The third-party integration has not been used in 90 days or more.

WEAK_PASSWORD

The password used on the account is weak.

LEAKED_PASSWORD

The password used on the account has been leaked in a data breach.

PASSWORD_MANAGER_NOT_USED

The employee typically uses manually typed passwords, rather than a password manager.

STOLEN_CREDENTIALS

The credentials used on the account have been identified as stolen.

statestring(FindingState)

The state of the finding

Enum ValueDescription
OPEN

The finding has been confirmed and is open.

RESOLVED

The finding has been resolved and is no longer an issue.

employeeIdstring or null

ID of the employee this finding is linked to, null if finding is not linked to an employee.

Example: "379ac7ea-ff2a-42ef-af37-06d2020dc46a"
passwordIdstring or null

ID of the password this finding is linked to, null if finding is not linked to a password.

Example: "c4a045a1-5331-4714-af83-6a361e98960d"
accountIdstring or null

ID of the account this finding is linked to, null if finding is not linked to an account.

appTypestring or null

The type of app this finding is linked to, null if finding is not linked to an app.

Example: "PUSH_SECURITY"
appIdstring or null

ID of the app this finding is linked to, null if finding is not linked to an app.

Example: "2a2197de-ad2c-47e4-8dcb-fb0f04cf83e0"
weakPasswordReasonsArray of strings or null(FindingType)

Reasons a password is weak, null if not a WEAK_PASSWORD finding.

Enum ValueDescription
COMMON_BASE_WORD

The base word is a derivative of top 10000 most used passwords.

BANNED_BASE_WORD

The password is a derivative of a custom banned word.

creationTimestampinteger

When this finding was first observed, formatted as a UNIX timestamp (in seconds)

Example: 1698064423
Response
application/json
{ "id": "d6a32ba5-0532-4a66-8137-48cdf409c972", "type": "MFA_NOT_REGISTERED", "state": "OPEN", "employeeId": "379ac7ea-ff2a-42ef-af37-06d2020dc46a", "passwordId": "c4a045a1-5331-4714-af83-6a361e98960d", "accountId": "string", "appType": "PUSH_SECURITY", "appId": "2a2197de-ad2c-47e4-8dcb-fb0f04cf83e0", "weakPasswordReasons": [ "COMMON_BASE_WORD" ], "creationTimestamp": 1698064423 }

URL blocking

These objects represent the blocked URLs configured in your organization.

Operations

Stolen credential detection

Manage custom stolen credentials that you have added to your organization for monitoring and enforcement.

Operations