Authentication
API Base URL
https://apidiscovery.teejlab.com/edsn/api/
The TeejLab APIDiscovery API uses api-key to authenticate all API requests.
Please log in and check your api_key
Endpoint Request
# Here is a curl example
curl -X POST \
'https://apidiscovery.teejlab.com/edsn/api/
gateway?endpoint_id=ZMVbc' \
-H 'api-key: *************************'
-d '{"i":"canada","timeout":"5"}'
This endpoint allows the user to call an endpoint in the platform.
POSThttps://apidiscovery.teejlab.com/edsn/api/gateway
Result example :
"Canada is a country in the northern part of North America."
PARAMETERS
Field |
Placement |
Description |
Required |
endpoint_id |
Query String |
Endpoint ID |
True |
[Parameters of the target API] |
Body |
Parameters in JSON format |
True |
Endpoint list
# Here is a curl example
curl -X GET \
'https://apidiscovery.teejlab.com/edsn/api/
benchmark/endpoint_list' \
-H 'api-key: *************************'
This endpoint retrieves all the endpoint information accessible in the platform.
GEThttps://apidiscovery.teejlab.com/edsn/api/benchmark/endpoint_list
Result example :
[
{
"id": 21,
"endpoint": "http://api.openweathermap.org/data/2.5/weather",
"method": "get",
"description": "Access current weather data for any location on Earth including over 200,000 cities."
},
{
"id": 16,
"endpoint": "http://api.wolframalpha.com/v1/result",
"method": "get",
"description": "The Short Answers API returns a single plain text result directly from Wolfram|Alpha. In general, this text is taken directly from the Result pod of Wolfram|Alpha output. This API type is designed to deliver brief answers in the most basic format possible."
}
]
Endpoint Parameter
# Here is a curl example
curl -X GET \
'https://apidiscovery.teejlab.com/edsn/api/
benchmark/endpoint_parameter?endpoint_id=ZMVbc' \
-H 'api-key: *************************'
This endpoint returns the parameters needed to make a request of an endpoint.
GEThttps://apidiscovery.teejlab.com/edsn/api/benchmark/endpoint_parameter
Result example :
{
"parameter": [
{
"parameter_example_value": "5",
"is_required": false,
"parameter_default_value": "5",
"parameter_placement": "query",
"parameter_name": "timeout",
"parameter_description": "Specifies the maximum amount of time (in seconds) allowed to process the query, with a default value of \"5\". Although it is primarily used to optimize response times in applications, the timeout parameter may occasionally affect what value is returned by the Short Answers API."
}
],
"description": "The Short Answers API returns a single plain text result directly from Wolfram|Alpha. In general, this text is taken directly from the Result pod of Wolfram|Alpha output. This API type is designed to deliver brief answers in the most basic format possible.",
"endpoint_name": "http://api.wolframalpha.com/v1/result",
"method": "get"
}
PARAMETERS
Field |
Placement |
Description |
Required |
endpoint_id |
Query String |
the id of the endpoint |
True |
Endpoint Example
# Here is a curl example
curl -X GET \
'https://apidiscovery.teejlab.com/edsn/api/
benchmark/data_example?endpoint_id=ZMVbc' \
-H 'api-key: *************************'
This endpoint returns an example response of an endpoint.
GEThttps://apidiscovery.teejlab.com/edsn/api/benchmark/data_example
Result example :
{
"output_response": "Canada is a country in the northern part of North America." ,
"endpoint_id": "ZMVbc",
"input_parameters": {
"i": "Canada",
"timeout": "5"
}
}
PARAMETERS
Field |
Placement |
Description |
Required |
endpoint_id |
Query String |
Endpoint ID |
True |
Upload Swagger
# Here is a curl example
curl -X POST \
'https://apidiscovery.teejlab.com/edsn/api/
benchmark/upload_swagger' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'api-key: *************************' \
-H 'vendor=Test_org_vendor' \
-H 'category=Finance & Banking' \
-F 'file=@/Users/Downloads/swagger.json'
This endpoint imports an API by uploading a swagger file containing existing vendor and category information.
POSThttps://apidiscovery.teejlab.com/edsn/api/benchmark/upload_swagger
Result example :
{"info": "", "result": "Success"}
PARAMETERS
Field |
Placement |
Description |
Required |
Content-Type |
Request Header |
This value should be application/x-www-form-urlencoded |
True |
file |
Request Body |
The swagger file (form-data) |
True |
vendor |
Request Header |
Vendor name |
True |
category |
Request Header |
Category name |
True |
NIST CVE Search
# Here is a curl example
curl -X POST \
'https://apidiscovery.teejlab.com/edsn/api/
cvesearch/' \
-H 'api-key: ************************' \
--data-raw '{
"search_term": "microsoft",
"cvssv2_filter": "<3",
"cvssv3_filter": "<3",
"year_published": ">2010"
}'
POSThttps://apidiscovery.teejlab.com/edsn/api/cvesearch/
Result example :
{
"Content-Type": "application/json",
"mapping": {
"num_results": "42",
"processed_search_term": "microsoft ",
"search_term": "microsoft",
"vulnerabilities": [
{
"cve_description": "The GDI component in the kernel-mode drivers in Microsoft Windows Vista SP2, Windows Server 2008 SP2 and R2 SP1, Windows 7 SP1, Windows 8.1, Windows Server 2012 Gold and R2, Windows RT 8.1, and Windows 10 Gold and 1511 allows local users to obtain sensitive kernel-address information via a crafted application, aka \"Win32k Information Disclosure Vulnerability.\"",
"cve_id": "CVE-2016-3251",
"vendor": "microsoft",
"cvssv2_score": "2.1",
"version": "-",
"cvssv3_severity": "LOW",
"cvssv2_severity": "LOW",
"cvssv3_score": "2.8",
"year_published": 2016,
"product": "windows_10"
},
.....
]
},
"Content-Length": 107
}
PARAMETERS
Field |
Placement |
Description |
Required |
search_term |
Request Body |
Search term used in the NIST CVE database
|
True |
cvssv2_filter |
Request Body |
Optional numeric [float] parameter for cvssv2_score filtering Include operator [>, <] before the number, e.g. >7.2, <4 If no operator [>, <] it is treated as an equality operator, e.g. 7 will return results with cvssv2_score = 7.0 |
False |
cvssv3_filter |
Request Body |
Optional numeric [float] parameter for cvssv3_score filtering Include operator [>, <] before the number, e.g. >7.2, <4 If no operator [>, <] it is treated as an equality operator, e.g. 7 will return results with cvssv3_score = 7.0 |
False |
year_published |
Request Body |
Optional numeric [int] parameter for year_published filtering Include operator [>, <] before the number, e.g. >2010, <2018 If no operator [>, <] it is treated as an equality operator, e.g. 2012 will return results with year_published = 2012 |
False |
CVE Vendors
# Here is a curl example
curl -X GET \
'https://apidiscovery.teejlab.com/edsn/api/
cvesearch/vendors/' \
-H 'api-key: ************************'
GEThttps://apidiscovery.teejlab.com/edsn/api/cvesearch/vendors/
Result example :
{
"vendors": [
"priorswood",
"clever_components",
"todoomasters",
"overlay_weaver",
"dominic_gamble",
"foxmail",
"niushop",
"redirection",
.....
]
}
This endpoint returns all the vendors in the NIST CVE.
CVE Products by Vendor
# Here is a curl example
curl -X GET \
'https://apidiscovery.teejlab.com/edsn/api/
cvesearch/vendor/products?vendor=Microsoft' \
-H 'api-key: ************************'
GEThttps://apidiscovery.teejlab.com/edsn/api/cvesearch/vendor/products
Result example :
{
"products": [
"office",
"wins",
"active_directory_lightweight_directory_service",
"adam",
"organization_chart",
"windows_2003_server",
"sql_server_2016",
"security_essentials",
"microsoft.aspnetcore.mvc.webapicompatshim",
"office_communicator",
"sharepoint_enterprise_server",
"forefront_endpoint_protection",
"office_word_viewer",
"digital_image",
"web_applications",
"windows_data_access_components",
"host_integration_server_2000",
.......
]
}
This endpoint returns all the CVE products for a vendor.
PARAMETERS
Field |
Placement |
Description |
Required |
vendor |
Query String |
Vendor name |
True |
Products by CVE ID
# Here is a curl example
curl -X GET \
'https://apidiscovery.teejlab.com/edsn/api/
cvesearch/cve/products?cve_id=CVE-2019-10140' \
-H 'api-key: ************************'
GEThttps://apidiscovery.teejlab.com/edsn/api/cvesearch/cve/products
Result example :
{
"associated_products": [
"linux linux_kernel 2.6.16.60",
"linux linux_kernel 2.6.16.19",
"linux linux_kernel 3.0.94",
"linux linux_kernel 3.0.49",
"linux linux_kernel 3.0.4",
"linux linux_kernel 2.6.14",
"linux linux_kernel 2.5.66",
"linux linux_kernel 2.5.60",
"linux linux_kernel 2.5.21",
"linux linux_kernel 2.4.22",
"linux linux_kernel 2.3.31",
"linux linux_kernel 2.6.25.12",
"linux linux_kernel 2.6.20.8",
"linux linux_kernel 2.2.16",
"linux linux_kernel 2.2.2",
"linux linux_kernel 2.0.14",
.....
]
}
This endpoint returns all the products associated with a CVE ID.
PARAMETERS
Field |
Placement |
Description |
Required |
cve_id |
Query String |
CVE ID |
True |
Gateway Scan Details
# Here is a curl example
curl -X GET \
'https://apidiscovery.teejlab.com/edsn/api/
networkscan/user_scans/' \
-H 'api-key: ************************'
GEThttps://apidiscovery.teejlab.com/edsn/api/networkscan/user_scans/
Result example :
{
"scan_details": [
{
"instance_id": "gAAAAABkmi4aMBfcdnuzFurEE8ZmxhSR3Qj5a90BZZVLtoEDcAAZ21krhjuiI-oXJ12AhyPL-ebyVvzvniP8S6X7bKpiDidzCg==",
"repo_id": "gAAAAABkmi4a6xhHTxTZpmavLwPADbR8tjN9MqfZgelFRik9z7Po-_XeFibdQtaw9UCmSu3i46EIEc_7S2cgQhHxB2zj4zdf7w==",
"start_time": "2023-06-27 00:02:08.259053+00:00",
"end_time": "2023-06-27 00:04:56+00:00",
"network_name": "TestGateway",
"project_name": "TestProject",
"organization": "test-org-admin",
"nic_ip": "/fe80:0:0:0:c7f:d052:b6a6:27af /2001:569:76f6:7c00:f8:5149:a1d9:f90c /2001:569:76f6:7c00:5d67:d573:58b9:eb31 /192.168.1.77 ",
"nic_name": "en0",
"mac_address": "a4:83:e7:7c:ae:8b ",
"scan_status": "interrupted",
"scan_data_send_freq": "00:01:00",
"review_status": "not_started",
"is_approved": "not_analyzed"
},
.....
]
}
This endpoint returns the details of the scanned gateway scanned by the scanner client.
Gateway Scan Mappings
# Here is a curl example
curl -X GET \
'https://apidiscovery.teejlab.com/edsn/api/
networkscan/user_scan_mappings/' \
-H 'api-key: ************************' \
-H 'Content-Type: application/form-data' \
-F 'instance_id=iiib'
GEThttps://apidiscovery.teejlab.com/edsn/api/networkscan/user_scan_mappings/
Result example :
{
"scan_mappings": {
"network_name": "TestGateway",
"project_name": "TestProject",
"repo_id": "gAAAAABkmi_lQyFYWQRhyEznnXcDTHlW0UbxVYJmT-CCXFoTsrUB13aiSOc-tj92CRoiky_hIacHPQAltkVGywBhI_BGYhgnkg==",
"instance_id": "gAAAAABkmi_lByzQKPitUeF22KID34NGgI0vtndHD3xyu5bGHEYi_XZwjCBaZ4882Oy_2JXx2-8wat2vWxstqoFI5yZXxtCa8w==",
"start_time": "2023-06-26 23:54:06.736457+00:00",
"end_time": "2023-06-26 23:58:44+00:00",
"nic_ip": "/fe80:0:0:0:c7f:d052:b6a6:27af /2001:569:76f6:7c00:f8:5149:a1d9:f90c /2001:569:76f6:7c00:5d67:d573:58b9:eb31 /192.168.1.77 ",
"nic_name": "en0",
"mac_address": "a4:83:e7:7c:ae:8b ",
"scan_status": "complete",
"scan_data_send_freq": "00:01:00",
"review_status": "not_started",
"is_approved": "not_analyzed",
"analyzed_datetime": "2023-06-26 23:56:24.261498+00:00",
"mappings": [
{
"captured_ip": "15.156.111.204",
"direction": "Outgoing",
"capture_datetime": "2023-06-26 23:54:09+00:00",
"endpoint_geolocation": "Unavailable Unavailable [Unavailable]"
},
{
"captured_ip": "142.251.33.106",
"direction": "Outgoing",
"capture_datetime": "2023-06-26 23:54:23+00:00",
"api_name": "Google Books Volume API",
"api_url": "https://developers.google.com/books/docs/v1/reference/volumes#resource",
"vendor_name": "Google",
"vendor_url": "https://www.google.com",
"endpoint": "get https://www.googleapis.com/books/v1/volumes",
"endpoint_auth_type": "query",
"endpoint_geolocation": "Toronto Canada [Unavailable]"
},
.....
}
}
}
This endpoint returns the mappings of a gateway scan instance.
PARAMETERS
Field |
Placement |
Description |
Required |
instance_id |
Request Body |
Scan instance ID (form-data) |
True |
Rate Limit Test
# Here is a curl example
curl -X POST \
'https://apidiscovery.teejlab.com/edsn/api/
benchmark/rate_limiting_test' \
-H 'api-key: ************************' \
-H 'content-type: multipart/form-data;' \
--form endpoint_id=ZMVbc
This test is designed to check whether an API is protected against excessive amount of calls or being choked by excessive payload sizes.
This test can take a while to perform.
This endpoint performs the rate limiting test on an endpoint.
POSThttps://apidiscovery.teejlab.com/edsn/api/benchmark/rate_limiting_test
Result example :
{
"result": "Added successfully. Please check the result later.",
"info": 22
}
PARAMETERS
Field |
Placement |
Description |
Required |
endpoint_id |
Request Body |
Endpoint ID |
True |
Rate Limit Results
# Here is a curl example
curl -X POST \
'https://apidiscovery.teejlab.com/edsn/api/
benchmark/rate_limiting_result' \
-H 'api-key: ************************' \
-H 'content-type: multipart/form-data;' \
-F endpoint_id=ZMVbc
This endpoint returns the rate limit test result of an endpoint.
POST
https://apidiscovery.teejlab.com/edsn/api/benchmark/rate_limiting_result
Result example :
{
"datetime": "06/02/2020",
"result": "the API server does not have a limitation",
"test_case": "5 requests in total , 58.32 requests per second"
}
PARAMETERS
Field |
Placement |
Description |
Required |
endpoint_id |
Request Body |
Endpoint ID |
True |
Projects
# Here is a curl example
curl -X GET \
'https://apidiscovery.teejlab.com/edsn/api/
benchmark/projects?project_id=iiib' \
-H 'api-key: ************************'
This endpoint returns the details of the scanned project scanned by the scanner client.
GET
https://apidiscovery.teejlab.com/edsn/api/benchmark/projects
Result example :
{
"project_id": "gAAAAABkmhm5Bm1jwLk7zNTj_RtSsLfdRBaVqFlqrFcu2L5_N0LiIC5t-z4zhIRamhQna6PEyaQ34jekFXsUtd6yUi35pGei1Q==",
"project_name": "laravel",
"datetime_created": "2023-06-26 22:56",
"scan_details": [
{
"endpoint_url": "https://laravel-news.com/",
"api_name": "Laravel-News API",
"api_version": "1.0",
"vendor_name": "Laravel-News",
"endpoint_method": "get",
"response_metadata": {
"Via": "1.1 vegur",
"Date": "Mon, 07 Mar 2022 19:24:05 GMT",
"Allow": "GET, HEAD, OPTIONS",
"Server": "gunicorn",
"Connection": "keep-alive",
"Content-Type": "application/json",
"Content-Length": "52",
"Referrer-Policy": "same-origin",
"X-Frame-Options": "DENY",
"X-Content-Type-Options": "nosniff"
},
"agreements": [
{
"name": "license2",
"link": "https://laravel.com/docs/11.x"
},
{
"name": "license",
"link": "https://laravel.com/docs/10.x"
},
{
"name": "license3",
"link": "https://laravel.com/docs/12.x"
}
],
"server_info": {
"server": "gunicorn",
"hostcity": "Ashburn",
"hostcountry": "United States",
"hostregion": "Virginia",
"hostisp": "Amazon.com, Inc.",
"timezone": "America/New_York"
}
},
{
"endpoint_url": "https://www.w3.org/",
"api_name": "W3C Payment Request API",
"api_version": "N/A",
"vendor_name": "w3",
"endpoint_method": "get",
"response_metadata": {},
"agreements": [],
"server_info": {
"server": "unavailable",
"hostcity": "unavailable",
"hostcountry": "unavailable",
"hostregion": "unavailable",
"hostisp": "unavailable",
"timezone": "unavailable"
}
},
{
"endpoint_url": "http://sqs.us-east-2.amazonaws.com",
"api_name": "Amazon Queue Service API",
"api_version": "N/A",
"vendor_name": "Amazon Web Services, Inc.",
"endpoint_method": "get",
"response_metadata": {},
"agreements": [],
"server_info": {
"server": "unavailable",
"hostcity": "unavailable",
"hostcountry": "unavailable",
"hostregion": "unavailable",
"hostisp": "unavailable",
"timezone": "unavailable"
}
},
.....
],
"review status": "not_started"
}
PARAMETERS
Field |
Placement |
Description |
Required |
project_id |
Query String |
Project ID |
False |
name |
Query String |
Project name |
False |
vendor |
Query String |
Vendor name |
False |
version |
Query String |
Version |
False |
num_projects |
Query String |
Number of projects to return (default: 5) |
False |
Categories
# Here is a curl example
curl -X GET \
'https://apidiscovery.teejlab.com/edsn/api/
benchmark/categories' \
-H 'api-key: ************************'
This endpoint returns the information about the API categories in our platform.
GET
https://apidiscovery.teejlab.com/edsn/api/benchmark/categories
Result example :
[
"Artificial Intelligence & Data Science",
"Business & Technology",
"eCommerce & Trade",
"Environment & Weather",
"Finance & Banking",
"GeoInformatics & Navigation",
"Government & Public Services",
"Health Science & Medicine",
"Information & Science",
"Justice & Public Safety",
"Logistics & Infrastrcture",
"Natural Resources & Energy",
"News & Media",
"Religion & spirituality",
"Research & Education",
"Sales & Marketing",
"Security & Technology",
"Skills & Career Development",
"Social Media & Technology",
"Software & Services",
"Sports & Entertainment",
"Transportation & Automobile",
"Work & Personal Assistance"
]
Agreements
# Here is a curl example
curl -X GET \
'https://apidiscovery.teejlab.com/edsn/api/
benchmark/agreements?api_id=iiBab' \
-H 'api-key: ************************'
This endpoint returns the agreements of the given API.
GET
https://apidiscovery.teejlab.com/edsn/api/benchmark/agreements
Result example :
[
{
"license_name": "User Data Policy",
"license_url": "https://developers.google.com/terms/api-services-user-data-policy"
},
{
"license_name": "Yahoo APIs Terms of Use",
"license_url": "https://info.yahoo.com/legal/us/yahoo/api/api-2140.html"
},
{
"license_name": "Terms of Service",
"license_url": "https://developers.google.com/terms/site-terms"
}
]
PARAMETERS
Field |
Placement |
Description |
Required |
api_id |
Query String |
API ID |
True |