Malwarebytes Authentication API
The Authentication API from Malwarebytes — 2 operation(s) for authentication.
The Authentication API from Malwarebytes — 2 operation(s) for authentication.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/malwarebytes:malwarebytes-authentication-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Malwarebytes Authentication API
version: 1.0.0
x-logo:
altText: ThreatDown logo
url: https://assets.threatdown.com/hermes/ThreatDown_Horizontal_Navy.png
backgroundColor: '#FFFFFF'
description: 'Operations tagged Authentication across 2 of this provider''s published API definitions: malwarebytes-threatdown-nebula-openapi.json, malwarebytes-threatdown-oneview-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.threatdown.com
tags:
- name: Authentication
paths:
/oauth2/token:
post:
description: 'Use this endpoint to retrieve an authentication token that allows you to send authenticated requests to all the API endpoints. First, you need to get a valid `client_id`, `client_secret` pair to retrieve an authentication token. See notes below for obtaining a credential pair**. Once you have obtained the `access_token`, by adhering to the following specification, you must include it for all the requests to the public APIs along with the `Authorization` header:
```
Authorization: Bearer
```
## Request
### Headers
Add the following headers to your request. | Name | Description | Type | Required | Default |
|------|-------------|-------|-----------|----------|
| Authorization | base64 encoded credential pair* as basic authorization `Basic base64(:)`| string | yes | '''' |
| Content-Type | Set to ''application/x-www-form-urlencoded'' | string | yes | '''' |
*You need to concatenate `client_id` and `client_secret` and encode in base64. Refer to the following Javascript example to get the correct header''s value:
**In the browser**:
```
`Basic ${window.btoa(`${clientId}:${clientSecret}`)}`
```
**NodeJS**:
```
`Basic ${Buffer.from(`${clientId}:${clientSecret}`).toString(''base64'')}`
```
### Body
Send the following body with the request. | Name | Description | Type | Required | Default |
|------|-------------|-------|-----------|----------|
| scope | The scope of the token. Can be ```read write execute``` or any subset of those space-separated scopes | string | yes | '''' |
| grant\_type | The grant\_type. Set it to `client_credentials` | string | yes | '''' |
**\*\*Note**: To obtain a client ID/client secret pair, open the Nebula
console, go to Settings -> APIs & Integrations. On that
page, click the "Add" button and submit the form. Use the resulting client
ID/client secret pair in your base64 string. ## Response
If your request successfully processed, our server will respond with a 200 status code and send a JSON body, which will include:
| Name | Description | Type | Can be blank |
|------|-------------|-------|-----------|
| access_token | The access token. You need this token to access all other API endpoints | string | no |
| expires_in | Expiry time in seconds of the access\_token | number | no |
| scope | The scope. Can be `read write execute` or a subset of those. Space separate the scope you want to request | string | no |
| token_type | The type of the token | string | no |
You can use the `access_token` to send requests to all the other HTTP endpoints. # Notes
You can send a raw HTTP request to retrieve the `access_token` following the specification above, but we strongly recommend to using one of the existing `oauth2` libraries. Libraries will usually handle refreshing the `access_token`, and generally implements best practices for that authentication protocol.'
summary: Get an access token
status:
outage:
- oauth2
responses:
'200':
description: response schema
content:
application/json:
schema:
type: object
title: PostDetectionsSearchRes200
properties:
access_token:
type: string
title: Access token to be used to authenticate in API requests
expires_in:
type: number
title: Time in seconds before the token expires
scope:
type: string
title: The granted scope for this access token
token_type:
type: string
title: The type of the token
refresh_token:
type: string
title: With grant type authorization code refresh token gets also returned.
id_token:
type: string
title: With grant type authorization code id token gets also returned.
tags:
- Authentication
operationId: api.oauth2.token
servers:
- url: https://api.threatdown.com
/oneview/oauth2/token:
post:
description: 'First, you need to get a valid `client_id`, `client_secret` pair to retrieve an authentication token. See notes below for obtaining a credential pair*. Once you have obtained the `access_token`, by adhering to the following specification, you must include it for all the requests to the public APIs along with the `Authorization` header:
```
Authorization: Bearer
```
## Request
### Headers
Add the following headers to your request. | Name | Description | Type | Required | Default |
|------|-------------|-------|-----------|----------|
| Authorization | base64 encoded credential pair* as basic authorization `Basic base64(:)`| string | yes | '''' |
| Content-Type | Set to ''application/x-www-form-urlencoded'' | string | yes | '''' |
*You need to concatenate `client_id` and `client_secret` and encode in base64. Refer to the following Javascript example to get the correct header''s value:
**In the browser**:
```
`Basic ${window.btoa(`${clientId}:${clientSecret}`)}`
```
**NodeJS**:
```
`Basic ${Buffer.from(`${clientId}:${clientSecret}`).toString(''base64'')}`
```
### Body
Send the following body with the request. | Name | Description | Type | Required | Default |
|------|-------------|-------|-----------|----------|
| scope | The scope of the token. Can be ```read write execute create:accounts``` or any subset of those space-separated scopes | string | yes | '''' |
| grant\_type | The grant\_type. Set it to `client_credentials` | string | yes | '''' |
## Response
If your request successfully processed, our server will respond with a 200 status code and send a JSON body, which will include:
| Name | Description | Type | Can be blank |
|------|-------------|-------|-----------|
| access_token | The access token. You need this token to access all other API endpoints | string | no |
| expires_in | Expiry time in seconds of the access\_token | number | no |
| scope | The scope. Can be `read write execute create:accounts` or a subset of those. Space separate the scope you want to request | string | no |
| token_type | The type of the token | string | no |
You can use the `access_token` to send requests to all the other HTTP endpoints. # Notes
You can send a raw HTTP request to retrieve the `access_token` following the specification above, but we strongly recommend to using one of the existing `oauth2` libraries. Libraries will usually handle refreshing the `access_token`, and generally implements best practices for that authentication protocol.'
summary: Get an access token
status:
outage:
- oauth2
responses:
'200':
description: response schema
content:
application/json:
schema:
type: object
title: PostDetectionsSearchRes200
properties:
access_token:
type: string
title: Access token to be used to authenticate in API requests
expires_in:
type: number
title: Time in seconds before the token expires
scope:
type: string
title: The granted scope for this access token
token_type:
type: string
title: The type of the token
tags:
- Authentication
operationId: api.oneview.oauth2.token
servers:
- url: https://api.threatdown.com
components:
securitySchemes:
client_credentials:
type: oauth2
flows:
clientCredentials:
tokenUrl: /token
scopes:
read: Read data of your Nebula account
write: Write data, such as groups, policies, exclusions. Create Webhook subscriptions
execute: Issue jobs on your endpoints, like Scan, Reboot or Isolate.
user_permissions:
type: http
scheme: bearer
x-refined-from:
- malwarebytes-threatdown-nebula-openapi.json
- malwarebytes-threatdown-oneview-openapi.json