diff --git a/independent-publisher-connectors/Host.io/apiDefinition.swagger.json b/independent-publisher-connectors/Host.io/apiDefinition.swagger.json new file mode 100644 index 000000000..7f68b9866 --- /dev/null +++ b/independent-publisher-connectors/Host.io/apiDefinition.swagger.json @@ -0,0 +1,730 @@ +{ + "swagger": "2.0", + "info": { + "title": "Host.io", + "description": "Host.io collects data on every known domain name from every TLD and update it every month, including DNS records and website data for each of the domains.", + "version": "1.0.0", + "contact": { + "name": "Troy Taylor", + "url": "https://www.hitachisolutions.com", + "email": "ttaylor@hitachisolutions.com" + } + }, + "host": "host.io", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/api/web/{domain}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "The domain.", + "title": "Domain" + }, + "rank": { + "type": "integer", + "format": "int32", + "description": "The rank.", + "title": "Rank" + }, + "url": { + "type": "string", + "description": "The URL address.", + "title": "URL" + }, + "ip": { + "type": "string", + "description": "The IP address.", + "title": "IP" + }, + "date": { + "type": "string", + "description": "The date.", + "title": "Date" + }, + "length": { + "type": "integer", + "format": "int32", + "description": "The length.", + "title": "Length" + }, + "encoding": { + "type": "string", + "description": "The encoding.", + "title": "Encoding" + }, + "copyright": { + "type": "string", + "description": "The copyright.", + "title": "Copyright" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "links": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The links.", + "title": "Links" + } + } + } + } + }, + "summary": "Get homepage metadata", + "description": "Retrieves the metadata scraped from a domain homepage.", + "operationId": "HomepageGet", + "parameters": [ + { + "name": "domain", + "in": "path", + "x-ms-summary": "Domain", + "x-ms-url-encoding": "single", + "description": "The domain.", + "required": true, + "type": "string" + } + ] + } + }, + "/api/dns/{domain}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "The domain.", + "title": "Domain" + }, + "a": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The A records.", + "title": "A" + }, + "aaaa": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The AAAA records.", + "title": "AAAA" + }, + "mx": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The MX records.", + "title": "MX" + }, + "ns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The NS records.", + "title": "NS" + } + } + } + } + }, + "summary": "Get domain DNS", + "description": "Retrieve all DNS records for a domain.", + "operationId": "DomainGet", + "parameters": [ + { + "name": "domain", + "in": "path", + "x-ms-summary": "Domain", + "x-ms-url-encoding": "single", + "description": "The domain.", + "required": true, + "type": "string" + } + ] + } + }, + "/api/related/{domain}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "ip": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The value.", + "title": "Value" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count.", + "title": "Count" + } + } + }, + "title": "IP" + }, + "redirects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The value.", + "title": "Value" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count.", + "title": "Count" + } + } + }, + "title": "Redirects" + }, + "backlinks": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The value.", + "title": "Value" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count.", + "title": "Count" + } + } + }, + "title": "Backlinks" + }, + "asn": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The value.", + "title": "Value" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count.", + "title": "Count" + } + } + }, + "title": "ASN" + } + } + } + } + }, + "summary": "Get related domains", + "description": "Retrieve a count of the number of related domains for all supported lookups.", + "operationId": "RelatedGet", + "parameters": [ + { + "name": "domain", + "in": "path", + "x-ms-summary": "Domain", + "x-ms-url-encoding": "single", + "description": "The domain.", + "required": true, + "type": "string" + } + ] + } + }, + "/api/full/{domain}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "The domain.", + "title": "Domain" + }, + "web": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "The domain.", + "title": "Domain" + }, + "rank": { + "type": "integer", + "format": "int32", + "description": "The rank.", + "title": "Rank" + }, + "url": { + "type": "string", + "description": "The URL address.", + "title": "URL" + }, + "ip": { + "type": "string", + "description": "The IP address.", + "title": "IP" + }, + "date": { + "type": "string", + "description": "The date.", + "title": "Date" + }, + "length": { + "type": "integer", + "format": "int32", + "description": "The length.", + "title": "Length" + }, + "encoding": { + "type": "string", + "description": "The encoding.", + "title": "Encoding" + }, + "copyright": { + "type": "string", + "description": "The copyright.", + "title": "Copyright" + }, + "title": { + "type": "string", + "description": "The title.", + "title": "Title" + }, + "links": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The links.", + "title": "Links" + } + }, + "title": "Web" + }, + "dns": { + "type": "object", + "properties": { + "domain": { + "type": "string", + "description": "The domain.", + "title": "Domain" + }, + "a": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The A records.", + "title": "A" + }, + "aaaa": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The AAAA records.", + "title": "AAAA" + }, + "mx": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The MX records.", + "title": "MX" + }, + "ns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The NS records.", + "title": "NS" + } + }, + "title": "DNS" + }, + "ipinfo": { + "type": "object", + "properties": { + "ip_address": { + "type": "object", + "properties": { + "city": { + "type": "string", + "description": "The .", + "title": "City" + }, + "region": { + "type": "string", + "description": "The region.", + "title": "Region" + }, + "country": { + "type": "string", + "description": "The country.", + "title": "Country" + }, + "loc": { + "type": "string", + "description": "The location.", + "title": "Location" + }, + "postal": { + "type": "string", + "description": "The postal code.", + "title": "Postal" + }, + "timezone": { + "type": "string", + "description": "The timezone.", + "title": "Timezone" + }, + "asn": { + "type": "object", + "properties": { + "asn": { + "type": "string", + "description": "The ASN.", + "title": "ASN" + }, + "name": { + "type": "string", + "description": "The name.", + "title": "Name" + }, + "domain": { + "type": "string", + "description": "The domain.", + "title": "Domain" + }, + "route": { + "type": "string", + "description": "The route.", + "title": "Route" + }, + "type": { + "type": "string", + "description": "The type.", + "title": "Type" + } + }, + "title": "ASN" + } + }, + "title": "Info" + } + }, + "title": "IP" + }, + "related": { + "type": "object", + "properties": { + "ip": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The value.", + "title": "Value" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count.", + "title": "Count" + } + } + }, + "title": "IP" + }, + "asn": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The value.", + "title": "Value" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count.", + "title": "Count" + } + } + }, + "title": "ASN" + }, + "ns": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The value.", + "title": "Value" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count.", + "title": "Count" + } + } + }, + "title": "NS" + }, + "mx": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The value.", + "title": "Value" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count.", + "title": "Count" + } + } + }, + "title": "MX" + }, + "backlinks": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The value.", + "title": "Value" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count.", + "title": "Count" + } + } + }, + "title": "Backlinks" + }, + "redirects": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string", + "description": "The value.", + "title": "Value" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "The count.", + "title": "Count" + } + } + }, + "title": "Redirects" + } + }, + "title": "Related" + } + } + } + } + }, + "summary": "Get domain", + "x-ms-visibility": "important", + "description": "Retrieve all information about a domain.", + "operationId": "FullGet", + "parameters": [ + { + "name": "domain", + "in": "path", + "x-ms-summary": "Domain", + "x-ms-url-encoding": "single", + "description": "The domain.", + "required": true, + "type": "string" + } + ] + } + }, + "/api/domains/{field}/{value}": { + "get": { + "responses": { + "200": { + "description": "default", + "schema": { + "type": "object", + "properties": { + "ns": { + "type": "string", + "description": "The NS records.", + "title": "NS" + }, + "page": { + "type": "integer", + "format": "int32", + "description": "The page.", + "title": "Page" + }, + "total": { + "type": "integer", + "format": "int32", + "description": "The total.", + "title": "Total" + }, + "domains": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The domains.", + "title": "Domains" + } + } + } + } + }, + "summary": "Get domains associated with field", + "description": "Retrieve all domains associated with a field, and a count of the total.", + "operationId": "FieldGet", + "parameters": [ + { + "name": "field", + "in": "path", + "x-ms-summary": "Field", + "x-ms-url-encoding": "single", + "description": "The field.", + "required": true, + "type": "string" + }, + { + "name": "value", + "in": "path", + "x-ms-summary": "Value", + "x-ms-url-encoding": "single", + "description": "The value.", + "required": true, + "type": "string" + }, + { + "name": "limit", + "in": "query", + "x-ms-summary": "Limit", + "description": "The limit.", + "required": false, + "type": "integer", + "default": 25, + "enum": [ + 25, + 0, + 1, + 5, + 10, + 100, + 250, + 1000 + ] + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "API Key": { + "type": "apiKey", + "in": "query", + "name": "token" + } + }, + "security": [ + { + "API Key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://host.io/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://host.io/privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Website;Data" + } + ] +} diff --git a/independent-publisher-connectors/Host.io/apiProperties.json b/independent-publisher-connectors/Host.io/apiProperties.json new file mode 100644 index 000000000..632723af6 --- /dev/null +++ b/independent-publisher-connectors/Host.io/apiProperties.json @@ -0,0 +1,23 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "displayName": "API Token", + "description": "The API Token for this api", + "tooltip": "Provide your API Token", + "constraints": { + "tabIndex": 2, + "clearText": false, + "required": "true" + } + } + } + }, + "iconBrandColor": "#da3b01", + "capabilities": [], + "publisher": "Troy Taylor", + "stackOwner": "Host.io" + } +} diff --git a/independent-publisher-connectors/Host.io/readme.md b/independent-publisher-connectors/Host.io/readme.md new file mode 100644 index 000000000..da99f0c59 --- /dev/null +++ b/independent-publisher-connectors/Host.io/readme.md @@ -0,0 +1,25 @@ +# Host.io +Host.io collects data on every known domain name from every TLD and update it every month, including DNS records and website data for each of the domains. + +## Publisher: Troy Taylor, Hitachi Solutions + +## Prerequisites +You must sign up for an account with [Host.io](https://host.io/signup). + +## Obtaining Credentials +Once logged in to your account, you will see your token on your dashboard. + +## Supported Operations +### Get homepage metadata +Retrieves the metadata scraped from a domain homepage. +### Get domain DNS +Retrieve all DNS records for a domain. +### Get related domains +Retrieve a count of the number of related domains for all supported lookups. +### Get domain +Retrieve all information about a domain. +### Get domains associated with field +Retrieve all domains associated with a field, and a count of the total. + +## Known Issues and Limitations +There are no known issues at this time.