openapi: 3.0.1
info:
title: Check Point Reputation Service API
description: |
## Introduction
Leverage the Check Point’s threat intelligence to enrich your SIEM and SOAR solutions and secure your business applications and websites using simple RESTful APIs.
| **Input** | **Output** |
|-------|--------|
| **URL, IP, File digest (md5/sha1/sha256)** | Reputation, Risk and Context |
## Getting Started with the Reputation Service API
### 1. Get your API Key
[Contact us](mailto:TCAPI_SUPPORT@checkpoint.com) to get an API key
### 2. Request a session token
* Use the provided client key to get a session token
* The session token is **valid for 30min**.
Request example:
```linux
curl -X GET "https://rep.checkpoint.com/rep-auth/service/v1.0/request" -H "Client-Key: XXXXXXXXXXXXX"
```
Response example:
```
exp=XXXXXXX~acl=XXXX/*~hmac=XXXXXXXXX
```
### 3. Reputation Service Query
* With your API Key and the generated session token you can query Reputation Service
* Fill in the required service [url-rep / file-rep / ip-rep]
* Fill in the requested resource
* **Important**: The resource should be inserted in 2 places:
* **Paylod** [Json / Request Body]
* **Request parameter** [after ?resource=].
Request example:
```linux
curl -X POST "https://rep.checkpoint.com/url-rep/service/v2.0/query?resource=ynet.co.il" -H "accept: application/json" -H "Client-Key: XXXXXXX" -H "token: exp=XXXXXXX~acl=XXXX/*~hmac=XXXXXXXXX -H "Content-Type: application/json" -d "{\"request\":[{\"resource\":\"ynet.co.il\"}]}"
```
Response example:
```json
{
"response": [
{
"status": {
"code": 2001,
"label": "SUCCESS",
"message": "Succeeded to generate reputation"
},
"resource": "ynet.co.il",
"reputation": {
"classification": "Benign",
"confidence": "High",
"severity": "N/A"
},
"risk": 0,
"context": {
"categories": [
{
"id": 24,
"name": "News / Media"
}
],
"indications": [
"The URL is known benign by Check Point's Threat Cloud",
"The domain is popular in the world",
"Domain is classified as News / Media"
],
"safe": true
}
}
]
}
```
version: 1.0.0
servers:
- url: 'https://rep.checkpoint.com'
paths:
/rep-auth/service/v1.0/request:
get:
summary: Request a session token
tags:
- Authentication
parameters:
- name: Client-Key
in: header
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Sucess - the response is a token valild for 30 minutes
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'/{service}-rep/service/v2.0/query':
post:
summary: Query your resource
tags:
- Query
parameters:
- name: Client-Key
in: header
required: true
schema:
type: string
format: uuid
- name: token
in: header
required: true
schema:
type: string
- name: service
in: path
description: The service you want to query
required: true
schema:
type: string
enum:
- url
- ip
- file
- name: resource
in: query
description: The resource you want to query
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ReputationRequest'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ReputationResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
components:
responses:
Unauthorized:
description: Invalid Client-Key header
BadRequest:
description: Bad Request - Check the request paremters
Forbidden:
description: Invalid token header
TooManyRequests:
description: Quota exceeded
NotFound:
description: The requested URL was not found
schemas:
ReputationSingleRequest:
properties:
resource:
type: string
ReputationRequest:
properties:
request:
type: array
items:
$ref: '#/components/schemas/ReputationSingleRequest'
required:
- request
ReputationResponse:
properties:
risk:
type: number
example: 0
resource:
type: string
example: 'http://google.com'
reputation:
$ref: '#/components/schemas/ReputationClassification'
status:
$ref: '#/components/schemas/ReputationStatus'
context:
$ref: '#/components/schemas/ReputationResponseContext'
ReputationClassification:
properties:
classification:
type: string
example: Benign
severity:
type: string
enum:
- N/A
- Low
- Medium
- High
- Critical
Confidence:
type: string
enum:
- Low
- Medium
- High
ReputationStatus:
properties:
code:
type: integer
enum:
- 2001
- 2002
label:
type: string
enum:
- SUCCESS
- PARTIAL_SUCCESS
message:
type: string
enum:
- Succeeded to generate reputation
- Some vendors are unavailable
ReputationResponseContext:
type: object
properties:
asn:
type: number
description: ASN of the IP (IP)
as_owner:
type: string
description: ASN owner of the IP (IP)
safe:
type: boolean
description: exists and true if certified safe (URL)
malware_family:
type: string
description: the malware family associated with the resource (URL/FILE/IP)
protection_name:
type: string
description: The protection name returned from Malware Service / AntiVirus
(URL/FILE)
redirections:
type: array
description: The redirections of the resource (URL)
items:
type: string
malware_types:
type: array
description: The malware types based on VT scans (FILE)
items:
type: string
categories:
type: array
description: URLF categories (URL)
items:
type: string
location:
type: object
description: geo location information (IP)
properties:
region:
type: string
city:
type: string
postalCode:
type: string
latitude:
type: number
longitude:
type: number
dma_code:
type: integer
area_code:
type: integer
metro_code:
type: integer
related_resources:
type: object
description: (FILE)
properties:
similar_files_found:
description: How many similar files found
type: number
similar_files_details:
description: Information about the similar file
type: object
properties:
md5:
type: string
ssdeep:
type: string
ssdeep_similarity:
type: string
file_type:
type: string
classification:
type: string
malware_family:
type: string
confidence:
type: string