openapi: 3.0.1 info: title: Odin description: "ODIN APIs to search across IP Services, CVEs, Exposed Files/Buckets,\ \ Domains and more" contact: {} license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html version: "1.0" servers: - url: https://api.odin.io/ paths: /v1/cves/all/{ip}/{page}: get: tags: - Hosts summary: Get cve details description: Get the detailed cve details for ip based on page parameters: - name: ip in: path description: get the ip required: true schema: type: string - name: page in: path description: get the page required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ipservices.IpCveResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "402": description: Payment Required content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "408": description: Request Timeout content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" security: - ApiKeyAuth: [] /v1/domain/count: post: tags: - domain summary: Get domains count description: Get count of domain records based on query requestBody: description: Query content: "*/*": schema: $ref: "#/components/schemas/dns.DNSCountRequest" required: true responses: "200": description: OK content: application/json: schema: allOf: - $ref: "#/components/schemas/dns.APIResponse" - type: object properties: data: $ref: "#/components/schemas/dns.Data" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/dns.ErrorResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/dns.ErrorResponse" x-codegen-request-body-name: query /v1/domain/search: post: tags: - domain summary: Search domains description: Search domains based on the query requestBody: description: Query content: "application/json": schema: $ref: "#/components/schemas/dns.DomainRequest" required: true responses: "200": description: OK content: application/json: schema: allOf: - type: object properties: data: type: array items: $ref: "#/components/schemas/eshandler.DNS" pagination: $ref: "#/components/schemas/dns.SearchPagination" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/dns.ErrorResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/dns.ErrorResponse" x-codegen-request-body-name: query /v1/domain/subdomain/count: post: tags: - domain summary: Fetch the total no. of subdomain records description: Returns the count of subdomain records based on domain requestBody: description: Query content: "*/*": schema: $ref: "#/components/schemas/dns.DNSCountRequest" required: true responses: "200": description: OK content: application/json: schema: allOf: - $ref: "#/components/schemas/dns.APIResponse" - type: object properties: data: $ref: "#/components/schemas/dns.Data" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/dns.ErrorResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/dns.ErrorResponse" security: - ApiKeyAuth: [] x-codegen-request-body-name: query /v1/domain/subdomain/search: post: tags: - domain summary: Fetch the subdomain record description: Returns the subdomain records based on query requestBody: description: Query content: "application/json": schema: $ref: "#/components/schemas/dns.DomainRequest" required: true responses: "200": description: OK content: application/json: schema: allOf: - type: object properties: data: type: array items: type: string pagination: $ref: "#/components/schemas/dns.SearchPagination" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/dns.ErrorResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/dns.ErrorResponse" security: - ApiKeyAuth: [] x-codegen-request-body-name: query /v1/domain/whois/{domain-name}: get: tags: - domain summary: Fetch the domain whois record details description: "Provides extensive details about the domain whois record like\ \ name servers, domain status, registrar, etc." parameters: - name: domain-name in: path description: domain required: true schema: type: string responses: "200": description: OK content: application/json: schema: allOf: - $ref: "#/components/schemas/schema.APIResponse" - type: object properties: data: $ref: "#/components/schemas/schema.DomainWhoisResponse" "400": description: Bad Request content: application/json: schema: type: object "402": description: Payment Required content: application/json: schema: type: object "408": description: Request Timeout content: application/json: schema: type: object "500": description: Internal Server Error content: application/json: schema: type: object security: - ApiKeyAuth: [] /v1/domain/whois/{domain-name}/historical: get: tags: - domain summary: Fetch all the domain whois historical records description: "Provides historical details about the domain whois record like\ \ name servers, domain status, registrar, etc" parameters: - name: domain-name in: path description: domain required: true schema: type: string responses: "200": description: OK content: application/json: schema: allOf: - type: object properties: " meta": $ref: "#/components/schemas/schema.PaginationMeta" data: type: array items: $ref: "#/components/schemas/schema.DomainWhoisResponse" "400": description: Bad Request content: application/json: schema: type: object "402": description: Payment Required content: application/json: schema: type: object "408": description: Request Timeout content: application/json: schema: type: object "500": description: Internal Server Error content: application/json: schema: type: object security: - ApiKeyAuth: [] /v1/domain/whois/{domain-name}/is-expired: get: tags: - domain summary: Get the expiry for a particular domain description: "Provides historical details about the domain whois record like\ \ name servers, domain status, registrar, etc" parameters: - name: domain-name in: path description: domain required: true schema: type: string responses: "200": description: OK content: application/json: schema: allOf: - type: object properties: data: type: array items: $ref: "#/components/schemas/schema.DomainWhoisResponse" meta: $ref: "#/components/schemas/schema.PaginationMeta" "400": description: Bad Request content: application/json: schema: type: object "402": description: Payment Required content: application/json: schema: type: object "408": description: Request Timeout content: application/json: schema: type: object "500": description: Internal Server Error content: application/json: schema: type: object security: - ApiKeyAuth: [] /v1/domain/whois/{domain-name}/is-registered: get: tags: - domain summary: Fetch all the domain whois historical records description: "Provides historical details about the domain whois record like\ \ name servers, domain status, registrar, etc" parameters: - name: domain-name in: path description: domain required: true schema: type: string responses: "200": description: OK content: application/json: schema: allOf: - type: object properties: data: type: array items: $ref: "#/components/schemas/schema.DomainWhoisResponse" meta: $ref: "#/components/schemas/schema.PaginationMeta" "400": description: Bad Request content: application/json: schema: type: object "402": description: Payment Required content: application/json: schema: type: object "408": description: Request Timeout content: application/json: schema: type: object "500": description: Internal Server Error content: application/json: schema: type: object security: - ApiKeyAuth: [] /v1/exposed/buckets/count: post: tags: - ExposedBuckets summary: Get exposed bucket count description: Get exposed bucket count according to provided filters requestBody: description: Count Request content: "*/*": schema: $ref: "#/components/schemas/exposed.CountRequest" required: true responses: "200": description: OK content: application/json: schema: allOf: - $ref: "#/components/schemas/exposed.APIResponse" - type: object properties: data: $ref: "#/components/schemas/exposed.SearchCount" "400": description: Bad Request content: application/json: schema: type: object additionalProperties: true "500": description: Internal Server Error content: application/json: schema: type: object additionalProperties: true security: - ApiKeyAuth: [] x-codegen-request-body-name: query /v1/exposed/buckets/search: post: tags: - ExposedBuckets operationId: searchExposedBuckets summary: Search exposed buckets description: |- Search exposed buckets according to provided filters Search across categories "img, aud, vid, font, doc, src, web, bkup, dbdump" Search across labels "credential, financial, pii, legal, ip, medical, hr, report, confidential, backup, compromised, vulnerable" Search across providers "aws, gcp, do, linode" requestBody: description: Search Query content: application/json: schema: $ref: "#/components/schemas/exposed.SearchRequest" required: true responses: "200": description: OK content: application/json: schema: type: object properties: data: type: array items: $ref: "#/components/schemas/exposed.SearchResponse" success: type: boolean pagination: type: object properties: total: type: integer limit: type: integer start: type: array items: type: object last: type: array items: type: object "400": description: Bad Request content: application/json: schema: type: object additionalProperties: true "500": description: Internal Server Error content: application/json: schema: type: object additionalProperties: true security: - ApiKeyAuth: [] x-codegen-request-body-name: query /v1/exposed/buckets/summary: post: tags: - ExposedBuckets summary: Get exposed buckets summary description: Get Returns exposed buckets aggregated count according to filters requestBody: description: Summary Request content: "*/*": schema: $ref: "#/components/schemas/exposed.SummaryRequest" required: true responses: "200": description: OK content: application/json: schema: allOf: - $ref: "#/components/schemas/exposed.APIResponse" - type: object properties: data: $ref: "#/components/schemas/exposed.Aggregate" "400": description: Bad Request content: application/json: schema: type: object additionalProperties: true "500": description: Internal Server Error content: application/json: schema: type: object additionalProperties: true security: - ApiKeyAuth: [] x-codegen-request-body-name: query /v1/exposed/files/count: post: tags: - ExposedFiles summary: Get file count description: Returns overall count of exposed bucket files according to filters requestBody: description: Count Request content: "*/*": schema: $ref: "#/components/schemas/exposed.CountRequest" required: true responses: "200": description: OK content: application/json: schema: allOf: - $ref: "#/components/schemas/exposed.APIResponse" - type: object properties: data: $ref: "#/components/schemas/exposed.SearchCount" "400": description: Bad Request content: application/json: schema: type: object additionalProperties: true "500": description: Internal Server Error content: application/json: schema: type: object additionalProperties: true security: - ApiKeyAuth: [] x-codegen-request-body-name: query /v1/exposed/files/search: post: tags: - ExposedFiles summary: Search exposed files description: |- Search exposed files using advanved filters Search across categories "img, aud, vid, font, txt, doc, src, db, march, arch, 3d, exec, key, cert" Search across labels "credential, financial, pii, legal, ip, medical, hr, report, confidential, backup, compromised, vulnerable" Search across providers "aws, gcp, do, linode" requestBody: description: Search Query content: "*/*": schema: $ref: "#/components/schemas/exposed.SearchRequest" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/exposed.FileAPIResponse" "400": description: Bad Request content: application/json: schema: type: object additionalProperties: true "402": description: Payment Required content: application/json: schema: type: object additionalProperties: true "500": description: Internal Server Error content: application/json: schema: type: object additionalProperties: true security: - ApiKeyAuth: [] x-codegen-request-body-name: query /v1/exposed/files/summary: post: tags: - ExposedFiles summary: Get file summary description: Returns a summary of exposed bucket files according to provided filters requestBody: description: Summary Request content: "*/*": schema: $ref: "#/components/schemas/exposed.SummaryRequest" required: true responses: "200": description: OK content: application/json: schema: allOf: - $ref: "#/components/schemas/exposed.APIResponse" - type: object properties: data: $ref: "#/components/schemas/exposed.Aggregate" "400": description: Bad Request content: application/json: schema: type: object additionalProperties: true "500": description: Internal Server Error content: application/json: schema: type: object additionalProperties: true security: - ApiKeyAuth: [] x-codegen-request-body-name: query /v1/fields/exposed/buckets: get: tags: - Fields summary: Get the fields for exposed buckets description: Get the list of fields that can be used to query on exposed buckets responses: "200": description: OK content: application/json: schema: allOf: - $ref: "#/components/schemas/APIResponse" - type: object properties: Data: type: array items: $ref: "#/components/schemas/Field" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "402": description: Payment Required content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "408": description: Request Timeout content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /v1/fields/exposed/files: get: tags: - Fields summary: Get the fields for exposed files description: Returns the exposed files fields data responses: "200": description: OK content: application/json: schema: allOf: - $ref: "#/components/schemas/APIResponse" - type: object properties: Data: type: array items: $ref: "#/components/schemas/Field" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "402": description: Payment Required content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "408": description: Request Timeout content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /v1/fields/hosts/{category}: get: tags: - Fields summary: Get the fields for hosts description: Get the list of fields to query on host parameters: - name: category in: path description: get the category required: true schema: type: string responses: "200": description: OK content: application/json: schema: allOf: - type: object properties: data: type: array items: $ref: "#/components/schemas/Field" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "402": description: Payment Required content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "408": description: Request Timeout content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" /v1/hosts/count: post: tags: - Hosts summary: Get the record count description: Returns the total no of records based on query requestBody: description: Count Query content: "*/*": schema: $ref: "#/components/schemas/CountRequest" required: true responses: "200": description: OK content: application/json: schema: allOf: - $ref: "#/components/schemas/APIResponse" - type: object properties: " meta": $ref: "#/components/schemas/PaginationStruct" data: $ref: "#/components/schemas/CertCount" "400": description: Bad Request content: application/json: schema: allOf: - $ref: "#/components/schemas/ErrorResponse" - type: object properties: " error": type: string success: type: boolean "402": description: Payment Required content: application/json: schema: allOf: - $ref: "#/components/schemas/ErrorResponse" - type: object properties: " error": type: string success: type: boolean "408": description: Request Timeout content: application/json: schema: allOf: - $ref: "#/components/schemas/ErrorResponse" - type: object properties: " error": type: string success: type: boolean "500": description: Internal Server Error content: application/json: schema: allOf: - $ref: "#/components/schemas/ErrorResponse" - type: object properties: " error": type: string success: type: boolean security: - ApiKeyAuth: [] x-codegen-request-body-name: query /v1/hosts/cve/{ip}: get: tags: - Hosts summary: Get ip cve details description: Get detailed lost of cve ips parameters: - name: ip in: path description: get the ip required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ipservices.IpCveResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "402": description: Payment Required content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "408": description: Request Timeout content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" security: - ApiKeyAuth: [] /v1/hosts/cves/{ip}/{cve}: get: tags: - Hosts summary: Get cve description: Get the detailed cve based on ip and cve parameters: - name: ip in: path description: host ip ip required: true schema: type: string - name: cve in: path description: cve id required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ipservices.IpCveResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "408": description: Request Timeout content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" security: - ApiKeyAuth: [] /v1/hosts/exploits/{ip}: get: tags: - Hosts summary: Get exploits for ip description: Get the detailed list of exploits for the ip parameters: - name: ip in: path description: get the ip required: true schema: type: string responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ipservices.IpCveResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "402": description: Payment Required content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "408": description: Request Timeout content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" security: - ApiKeyAuth: [] /v1/hosts/exploits/{ip}/{cve}: get: tags: - Hosts summary: Get exploits for ip and cve description: Get the detailed exploit details for ip and cve parameters: - name: ip in: path description: ip address of the host required: true schema: type: string - name: cve in: path description: cve id required: true schema: type: string responses: "200": description: OK content: application/json: schema: allOf: - $ref: "#/components/schemas/APIResponse" - type: object properties: data: type: array items: $ref: "#/components/schemas/vision.ExploitDetails" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "408": description: Request Timeout content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" security: - ApiKeyAuth: [] /v1/hosts/search: post: tags: - Hosts summary: Search hosts description: Get the detailed list of hosts based on query requestBody: description: Search Query content: "*/*": schema: $ref: "#/components/schemas/SearchRequest" required: true responses: "200": description: OK content: application/json: schema: allOf: - $ref: "#/components/schemas/APIResponse" - type: object properties: " data": type: array items: $ref: "#/components/schemas/ipservices.IPSummaryData" pagination: $ref: "#/components/schemas/SearchPagination" "400": description: Bad Request content: application/json: schema: allOf: - $ref: "#/components/schemas/ErrorResponse" - type: object properties: " error": type: string success: type: boolean "402": description: Payment Required content: application/json: schema: allOf: - $ref: "#/components/schemas/ErrorResponse" - type: object properties: " error": type: string success: type: boolean "408": description: Request Timeout content: application/json: schema: allOf: - $ref: "#/components/schemas/ErrorResponse" - type: object properties: " error": type: string success: type: boolean "500": description: Internal Server Error content: application/json: schema: allOf: - $ref: "#/components/schemas/ErrorResponse" - type: object properties: " error": type: string success: type: boolean security: - ApiKeyAuth: [] x-codegen-request-body-name: query /v1/hosts/summary: post: tags: - Hosts summary: Get summary description: Get the summary of hosts based on the field requestBody: description: Summary content: "*/*": schema: $ref: "#/components/schemas/SummaryRequest" required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/ipservices.HostsSummaryResponse" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "402": description: Payment Required content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "408": description: Request Timeout content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" security: - ApiKeyAuth: [] x-codegen-request-body-name: query /v1/hosts/{ip}: get: tags: - Hosts summary: Get the latest ip details description: Get the complete and latest ip details parameters: - name: ip in: path description: get the ip required: true schema: type: string responses: "200": description: OK content: application/json: schema: allOf: - $ref: "#/components/schemas/APIResponse" - type: object properties: data: $ref: "#/components/schemas/ipservices.IPSummaryData" "400": description: Bad Request content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "402": description: Payment Required content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "408": description: Request Timeout content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" "500": description: Internal Server Error content: application/json: schema: $ref: "#/components/schemas/ErrorResponse" security: - ApiKeyAuth: [] /v1/ping: get: tags: - Health summary: Health check description: Returns the pong as response responses: "200": description: OK content: text/plain: schema: type: string components: schemas: Field: type: object properties: category: type: string display_category: type: string is_locked: type: boolean description: requires user subscription upgrade to access name: type: string APIResponse: type: object properties: data: type: object message: type: string pagination: type: object success: type: boolean CertCount: type: object properties: count: type: integer CountRequest: type: object properties: query: type: string Encoding: type: object properties: raw: type: string ErrorResponse: type: object properties: message: type: string success: type: boolean IPASN: type: object properties: country_code: type: string number: type: string organization: type: string IPCVE: type: object properties: exploit: type: array items: $ref: "#/components/schemas/IPExploitDetails" id: type: string references: type: array items: type: string score: type: number services: type: array items: type: string severity: type: string summary: type: string vector_string: type: string weakness: type: string IPDomain: type: object properties: country: type: string dns_servers: type: array items: type: string emails: type: array items: type: string last_updated_at: type: string name: type: string web_server: type: string IPExploitDetails: type: object properties: description: type: string file: type: string id: type: string platform: type: string type: type: string url: type: string IPHostname: type: object properties: last_updated_at: type: string name: type: string IPLocation: type: object properties: city: type: string continent: type: string coordinates: type: object country_code: type: string country_name: type: string geo_point: type: string locale_code: type: string network: type: string postal_code: type: string IPService: type: object properties: _meta: $ref: "#/components/schemas/IPServiceMeta" cve: type: array items: $ref: "#/components/schemas/IPCVE" extra_info: type: string last_updated_at: type: string modules: type: object additionalProperties: true name: type: string port: type: integer product: type: string protocol: type: string softwares: type: array items: $ref: "#/components/schemas/IPServiceSoftware" tunnel: type: string url: type: string version: type: string IPServiceMeta: type: object properties: category: type: string desc: type: string name: type: string tags: type: array items: type: string IPServiceSoftware: type: object properties: edition: type: object language: type: object part: type: object product: type: object update: type: object uri: type: string vendor: type: object version: type: object IPTag: type: object properties: last_updated_at: type: string name: type: string pretty_name: type: string value: type: boolean IPWhois: type: object properties: _encoding: $ref: "#/components/schemas/Encoding" descr: type: string network: type: string organization: type: string raw: type: string PaginationStruct: type: object properties: current: type: string total: type: integer SearchPagination: type: object properties: last: type: array items: type: number limit: type: integer start: type: array items: type: number total: type: integer SearchRequest: required: - limit type: object properties: limit: type: integer query: type: string start: type: array items: type: number SummaryRequest: required: - field - limit type: object properties: field: type: string limit: type: integer query: type: string dns.APIResponse: type: object properties: data: type: object pagination: type: object success: type: boolean dns.DNSCountRequest: type: object properties: domain: type: string keyword: type: string publishedAfter: type: string publishedBefore: type: string dns.Data: type: object properties: count: type: integer dns.DomainRequest: required: - limit type: object properties: domain: type: string keyword: type: string limit: type: integer publishedAfter: type: string publishedBefore: type: string start: type: array items: type: object dns.ErrorResponse: type: object properties: message: type: string success: type: boolean dns.SearchPagination: type: object properties: last: type: array items: type: object limit: type: integer start: type: array items: type: object total: type: integer eshandler.Aggregate: type: object properties: buckets: type: array items: type: object doc_count_error_upper_bound: type: integer sum_other_doc_count: type: integer eshandler.DNS: type: object properties: added_at: type: string domain: type: string ext_dns_name: $ref: "#/components/schemas/eshandler.EXTDNSName" subdomain: type: string eshandler.EXTDNSName: type: object properties: domain: type: string fld: type: string subdomain: type: string tld: type: string exposed.APIResponse: type: object properties: data: type: object pagination: type: object success: type: boolean exposed.Aggregate: type: object properties: buckets: type: array items: type: object doc_count_error_upper_bound: type: integer sum_other_doc_count: type: integer exposed.Bucket: type: object properties: age_in_days: type: integer categories: type: array items: type: string deleted: type: boolean ef_mod_at: type: string file_cat_count: type: object additionalProperties: type: integer files: type: integer ins_at: type: string labels: type: array items: type: string last_found_at: type: string last_open_at: type: string lf_mod_at: type: string name: type: string new_files: type: integer open: type: boolean owner_id: type: string prev_scan_at: type: string provider: type: string region: type: string scan_at: type: string sensitive_files: type: integer exposed.BucketAPIResponse: type: object properties: data: type: array items: $ref: "#/components/schemas/exposed.Bucket" pagination: $ref: "#/components/schemas/exposed.SearchPagination" success: type: boolean exposed.CountRequest: type: object properties: query: type: string exposed.File: type: object properties: accessible: type: boolean bucket: type: string category: type: string etag: type: string ext: type: string ext_desc: type: string ins_at: type: string label: type: string mod_at: type: string name: type: string path: type: string provider: type: string region: type: string scan_at: type: string sensitive: type: boolean size: type: integer type: type: string url: type: string exposed.FileAPIResponse: type: object properties: data: type: array items: $ref: "#/components/schemas/exposed.File" pagination: $ref: "#/components/schemas/exposed.SearchPagination" success: type: boolean exposed.SearchCount: type: object properties: count: type: integer exposed.SearchPagination: type: object properties: last: type: array items: type: object limit: type: integer start: type: array items: type: object total: type: integer exposed.SearchRequest: required: - limit type: object properties: limit: type: integer query: type: string sort_by: type: string sort_dir: type: string start: type: array items: type: object exposed.SummaryRequest: required: - field - limit type: object properties: field: type: string limit: type: integer query: type: string ipservices.HostsSummaryResponse: type: object properties: data: type: object properties: buckets: type: array items: type: object properties: doc_count: type: integer key: type: object doc_count_error_upper_bound: type: integer sum_other_doc_count: type: integer message: type: string success: type: boolean ipservices.IPSummaryData: type: object properties: asn: $ref: "#/components/schemas/IPASN" asn_updated_at: type: string banner: type: array items: type: string domains: type: array items: $ref: "#/components/schemas/IPDomain" hostnames: type: array items: $ref: "#/components/schemas/IPHostname" ip: type: string is_ipv4: type: boolean is_ipv6: type: boolean is_vuln: type: boolean last_updated_at: type: string location: $ref: "#/components/schemas/IPLocation" location_updated_at: type: string scan_id: type: integer services: type: array items: $ref: "#/components/schemas/IPService" services_hash: type: string tags: type: array items: $ref: "#/components/schemas/IPTag" whois: $ref: "#/components/schemas/IPWhois" whois_updated_at: type: string ipservices.IpCveDetails: type: object properties: exploit: type: array items: type: object properties: description: type: string file: type: string id: type: string platform: type: string type: type: string url: type: string id: type: string references: type: array items: type: string score: type: number services: type: array items: type: string severity: type: string summary: type: string vector_string: type: string weakness: type: string ipservices.IpCveResponse: type: object properties: data: type: object additionalProperties: $ref: "#/components/schemas/ipservices.IpCveDetails" message: type: string success: type: boolean schema.APIResponse: type: object properties: data: type: object message: type: string meta: type: object success: type: boolean schema.Audit: type: object properties: created_at: type: string expires_date: type: string is_modified: type: boolean description: is audit logic applied (update in dates to fix invalid values) updated_at: type: string schema.Contact: type: object properties: address: type: string city: type: string company: type: string country: type: string country_code: type: string email: type: string email_domain: type: string fax: type: string name: type: string phone: type: string state: type: string zip: type: string schema.DomainWhoisResponse: type: object properties: administrative_contact: $ref: "#/components/schemas/schema.Contact" audited_fields: $ref: "#/components/schemas/schema.Audit" billing_contact: $ref: "#/components/schemas/schema.Contact" created_date: type: string domain_name: type: string domain_status: type: array items: type: string expires_date: type: string name_servers: type: array items: type: string raw_data: type: string description: IngestedAt time.Time `json:"ingested_at"` registrant_contact: $ref: "#/components/schemas/schema.Contact" registrar: $ref: "#/components/schemas/schema.Registrar" technical_contact: $ref: "#/components/schemas/schema.Contact" tld: type: string updated_date: type: string schema.PaginationMeta: type: object properties: limit: type: integer pageState: type: string schema.Registrar: type: object properties: id: type: string description: Adjusted field name for clarity name: type: string url: type: string whois: type: string service.Coordinates: type: object properties: latitude: type: string longitude: type: string service.Encoding: type: object properties: raw: type: string service.FullCveData: type: object properties: id: type: string score: type: number severity: type: string service.IPASN: type: object properties: country_code: type: string number: type: string organization: type: string service.IPDomain: type: object properties: country: type: string dns_servers: type: array items: type: string emails: type: array items: type: string last_updated_at: type: string name: type: string web_server: type: string service.IPHostname: type: object properties: last_updated_at: type: string name: type: string service.IPLocation: type: object properties: city: type: string continent: type: string coordinates: $ref: "#/components/schemas/service.Coordinates" country_code: type: string country_name: type: string geo_point: type: string locale_code: type: string network: type: string postal_code: type: string service.IPServiceMeta: type: object properties: category: type: string desc: type: string name: type: string tags: type: array items: type: string service.IPServiceSoftware: type: object properties: edition: type: object language: type: object part: type: object product: type: object update: type: object uri: type: string vendor: type: object version: type: object service.IPTag: type: object properties: last_updated_at: type: string name: type: string pretty_name: type: string value: type: boolean service.IPWhois: type: object properties: _encoding: $ref: "#/components/schemas/service.Encoding" descr: type: string network: type: string organization: type: string raw: type: string service.Service: type: object properties: _meta: $ref: "#/components/schemas/service.IPServiceMeta" asn: $ref: "#/components/schemas/service.IPASN" asn_updated_at: type: string banners: type: array items: type: string cve: type: array items: $ref: "#/components/schemas/service.FullCveData" domains: type: array items: $ref: "#/components/schemas/service.IPDomain" extra_info: type: string hostnames: type: array items: $ref: "#/components/schemas/service.IPHostname" ip: type: string is_ipv4: type: boolean is_ipv6: type: boolean is_vuln: type: boolean last_updated_at: type: string location: $ref: "#/components/schemas/service.IPLocation" location_updated_at: type: string modules: type: object additionalProperties: true description: |- services.tls -> services.modules.tls key names - if you mess up the key names name: type: string port: type: integer product: type: string protocol: type: string scan_id: type: integer softwares: type: array items: $ref: "#/components/schemas/service.IPServiceSoftware" tags: type: array items: $ref: "#/components/schemas/service.IPTag" tunnel: type: string version: type: string whois: $ref: "#/components/schemas/service.IPWhois" whois_updated_at: type: string tokens.DetailStat: type: object properties: data: type: object left: type: integer plan: type: integer tokens.ErrorResponse: type: object properties: message: type: string success: type: boolean tokens.FinalStats: type: object properties: left: type: integer plan: type: integer tokens.SearchStat: type: object properties: bucket_file: $ref: "#/components/schemas/tokens.FinalStats" data: type: object host_cert: $ref: "#/components/schemas/tokens.FinalStats" tokens.UserTokenStats: type: object properties: details: $ref: "#/components/schemas/tokens.DetailStat" expires_on: type: integer search: $ref: "#/components/schemas/tokens.SearchStat" vision.ExploitDetails: type: object properties: description: type: string file: type: string id: type: string platform: type: string type: type: string url: type: string securitySchemes: ApiKeyAuth: type: apiKey name: X-API-Key in: header x-original-swagger-version: "2.0"