Get Company
IP to Company
The IP to Company API identifies the company associated with an IPv4 address.
Pass an IP address from your website visitor logs, server request data, or analytics platform, and get back the domain of the organisation behind that traffic. It’s best suited to B2B use cases: consumer ISP addresses will typically not resolve to a named company.
Use this endpoint to:
- De-anonymise B2B website traffic
- Trigger account-based marketing and sales workflows
- Feed a website visitor identification pipeline
Fair Use Policy: This API is subject to our Fair Use Policy for Enrichment.
POST
/
ip_to_company
IP to Company
curl --request POST \
--url https://api.moltsets.com/api/v1/tools/ip_to_company \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ip_address": "8.8.8.8"
}
'import requests
url = "https://api.moltsets.com/api/v1/tools/ip_to_company"
payload = { "ip_address": "8.8.8.8" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({ip_address: '8.8.8.8'})
};
fetch('https://api.moltsets.com/api/v1/tools/ip_to_company', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.moltsets.com/api/v1/tools/ip_to_company",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'ip_address' => '8.8.8.8'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.moltsets.com/api/v1/tools/ip_to_company"
payload := strings.NewReader("{\n \"ip_address\": \"8.8.8.8\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.moltsets.com/api/v1/tools/ip_to_company")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ip_address\": \"8.8.8.8\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.moltsets.com/api/v1/tools/ip_to_company")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ip_address\": \"8.8.8.8\"\n}"
response = http.request(request)
puts response.read_body{
"results": {
"companies": [
{
"domain": "acme.com",
"percentage": "1.0"
}
]
},
"status": "ok",
"metadata": {
"fair_use": {
"records_remaining_5h": 179999,
"records_reset_5h": "2026-07-15T18:53:16Z",
"records_remaining_1w": 899999,
"records_reset_1w": "2026-07-22T13:53:16Z"
}
}
}{
"error": "Bad Request",
"message": "The server cannot process the request due to a client error (400 Bad Request)."
}{
"error": "Unauthorized",
"message": "Invalid API key."
}{
"error": "Not Found",
"message": "No match was found for the data provided."
}{
"error": "Invalid Input",
"message": "Message describing the nature of the invalid input."
}{
"error": "Too Many Requests",
"message": "Rate limit exceeded. Maximum 100 requests per second."
}{
"error": {
"code": "internal_error",
"message": "Unexpected connection error."
},
"metadata": {}
}⌘I
IP to Company
curl --request POST \
--url https://api.moltsets.com/api/v1/tools/ip_to_company \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ip_address": "8.8.8.8"
}
'import requests
url = "https://api.moltsets.com/api/v1/tools/ip_to_company"
payload = { "ip_address": "8.8.8.8" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({ip_address: '8.8.8.8'})
};
fetch('https://api.moltsets.com/api/v1/tools/ip_to_company', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.moltsets.com/api/v1/tools/ip_to_company",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'ip_address' => '8.8.8.8'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.moltsets.com/api/v1/tools/ip_to_company"
payload := strings.NewReader("{\n \"ip_address\": \"8.8.8.8\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.moltsets.com/api/v1/tools/ip_to_company")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"ip_address\": \"8.8.8.8\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.moltsets.com/api/v1/tools/ip_to_company")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"ip_address\": \"8.8.8.8\"\n}"
response = http.request(request)
puts response.read_body{
"results": {
"companies": [
{
"domain": "acme.com",
"percentage": "1.0"
}
]
},
"status": "ok",
"metadata": {
"fair_use": {
"records_remaining_5h": 179999,
"records_reset_5h": "2026-07-15T18:53:16Z",
"records_remaining_1w": 899999,
"records_reset_1w": "2026-07-22T13:53:16Z"
}
}
}{
"error": "Bad Request",
"message": "The server cannot process the request due to a client error (400 Bad Request)."
}{
"error": "Unauthorized",
"message": "Invalid API key."
}{
"error": "Not Found",
"message": "No match was found for the data provided."
}{
"error": "Invalid Input",
"message": "Message describing the nature of the invalid input."
}{
"error": "Too Many Requests",
"message": "Rate limit exceeded. Maximum 100 requests per second."
}{
"error": {
"code": "internal_error",
"message": "Unexpected connection error."
},
"metadata": {}
}