Social API

API Credit Usage

You need to login or signup to use the BuiltWith API. After logging in your actual API key will be shown here.

Introduction

Get XML and JSON results of websites associated with social media URLs.

The general access method is as follows -
https://api.builtwith.com/social1/api.[xml|json]?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=[social-media-profile-url]

Authentication

You must provide your API key in each lookup. Our endpoints are HTTPS only, providing key encryption. Never expose your API key.

Your API Key is
00000000-0000-0000-0000-000000000000

Get Social Example

XML Get Based on Single Social Profile
https://api.builtwith.com/social1/api.xml?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=linkedin.com/builtwith

JSON Get Based on Single Social Profile
https://api.builtwith.com/social1/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=linkedin.com/builtwith

Get Broad Social Example

By providing a more broad identifier for lookup we will search all social media profiles.

XML Get Based on Single Social Profile
https://api.builtwith.com/social1/api.xml?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=builtwith

JSON Get Based on Single Social Profile
https://api.builtwith.com/social1/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=builtwith

Supported Social Media URLs
  • Twitter
    Example: twitter.com/builtwith
  • Facebook
    Example: facebook.com/builtwith
  • LinkedIn
    Example: linkedin.com/company/builtwith
  • Google
    Example: google.com/+builtwith
  • Pinterest
    Example: pinterest.com/builtwith
  • GitHub
    Example: github.com/builtwith
  • Instagram
    Example: instagram.com/builtwith
  • Vk
    Example: vk.com/builtwith
  • Vimeo
    Example: vimeo.com/builtwith
  • Youtube
    Example: youtube.com/user/builtwith
  • TikTok
    Example: tiktok.com/@builtwith
  • Threads
    Example: threads.net/@builtwith
  • X
    Example: x.com/builtwith
  • Weibo
    Example: weibo.com/builtwith
Code Examples

Here are implementation examples in different programming languages for making API requests:

var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Get,
    RequestUri = new Uri("https://api.builtwith.com/social1/api.json" +
                        "?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=facebook.com/wayfair"),
};
using (var response = await client.SendAsync(request))
{
    response.EnsureSuccessStatusCode();
    var body = await response.Content.ReadAsStringAsync();
    Console.WriteLine(body);
}
import requests
url = "https://api.builtwith.com/social1/api.json"
params = {
    'KEY': '00000000-0000-0000-0000-000000000000',
    'LOOKUP': 'facebook.com/wayfair'
}
response = requests.get(url, params=params)
print(response.json())
<?php
$url = "https://api.builtwith.com/social1/api.json";
$params = array(
    'KEY' => '00000000-0000-0000-0000-000000000000',
    'LOOKUP' => 'facebook.com/wayfair'
);
$url_with_params = $url . '?' . http_build_query($params);
$response = file_get_contents($url_with_params);
$data = json_decode($response, true);
print_r($data);
?>
const https = require('https');
const url = 'https://api.builtwith.com/social1/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=facebook.com/wayfair';
https.get(url, (res) => {
    let data = '';
    res.on('data', (chunk) => {
        data += chunk;
    });
    res.on('end', () => {
        console.log(JSON.parse(data));
    });
}).on('error', (err) => {
    console.log('Error: ' + err.message);
});
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class BuiltWithAPI {
    public static void main(String[] args) throws Exception {
        String url = "https://api.builtwith.com/social1/api.json" +
                    "?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=facebook.com/wayfair";
        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        con.setRequestMethod("GET");
        BufferedReader in = new BufferedReader(
            new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuffer response = new StringBuffer();
        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();
        System.out.println(response.toString());
    }
}
require 'net/http'
require 'uri'
require 'json'
uri = URI('https://api.builtwith.com/social1/api.json')
uri.query = URI.encode_www_form({
    'KEY' => '00000000-0000-0000-0000-000000000000',
    'LOOKUP' => 'facebook.com/wayfair'
})
response = Net::HTTP.get_response(uri)
data = JSON.parse(response.body)
puts data
package main
import (
    "fmt"
    "io/ioutil"
    "net/http"
)
func main() {
    url := "https://api.builtwith.com/social1/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=facebook.com/wayfair"
    resp, err := http.Get(url)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }
    fmt.Println(string(body))
}
curl -X GET "https://api.builtwith.com/social1/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=facebook.com/wayfair"
Reference
Parameters
The following GET parameters can be supplied for lookups
NameExamplesRequired
KEY00000000-0000-0000-0000-000000000000
This is your key, use this for lookups.
Yes
LOOKUPlinkedin.com/builtwith
builtwith
Social Media Profile or Broad match that you'd like to lookup
Multi-Lookup Option:
You can lookup 16 attributes at a time - seperate them with a comma. For example overstock,builtwith - this dramatically improves throughput.
Yes
Responses
Format: Root[Socials->Social->Results[Result]]
Social
Identifier is the sub-option in the identifers array.
NameExampleDescription
NameoverstockThe social link that was looked up (excluding link).
ResultsResults explained below.Explained below.
Result
A social URL matcher result.
NameExampleDescription
SocialUrlhttps://instagram.com/overstockThe social network match we found.
DomainsDomains explained below.Explained below.
Domain
The domains that match the social profile.
NameExampleDescription
Rootwayfair.comThe root domain linked to the social network.
BuiltWithRank769
-1 for out of top 1m sites
A rank that can help filter out any junk domains in the result set.
Special Domains

We maintain two lists of use for you when looking up domains. Ignore lists and BuiltWith Suffix lists.

Ignore List
This is our own internal list of domains we do not index. They are either blocked, contains too many misleading technologies or too many subdomains with user generated content.

BuiltWith Suffix List
This is based on the Public Suffix List but includes many additional entries for companies with subdomains that should be considered top level domains. This list provides us with better visibility for internal websites for example it brings northernbeaches.nsw.gov.au to the top level over nsw.gov.au.

Ignore Domains (XML, JSON or TXT)
https://api.builtwith.com/ignoresv1/api.json
Suffix Domains (XML, JSON or TXT)
https://api.builtwith.com/suffixv1/api.json
Error Codes

Note error messages in this format cannot be guaranteed, your implementation should also consider non-200 response codes as errors. The Lookup property will be null (json) or not provided (xml) if the error is server related. View all potential well-formed error codes.

Terms of Use

Our standard terms cover the use all of our APIs.

In general, you can use the API to enhance your product in many ways. The only limitation is you cannot resell the data as-is or provide duplicate functionality to builtwith.com and its associated services.