برمجة تطبيقات (API) البنية التحتية للعلاقات

استخدام رصيد API

انت بحاجة الى تسجيل الدخول أو اشتراك لاستخدام واجهة برمجة التطبيقات BuiltWith. بعد تسجيل الدخول، سيتم عرض مفتاح API الفعلي الخاص بك هنا.

مقدمة

احصل على نتائج XML وJSON للعلاقات بين مواقع الويب التي تُظهر المواقع المرتبطة ببعضها البعض، وبماذا، ولفترة كم من الوقت.

تستخدم واجهة برمجة التطبيقات للعلاقات نقطة ائتمان API واحدة لكل 500 علاقة.

طريقة الوصول العامة هي كما يلي -
https://api.builtwith.com/rv4/api.[xml|json|csv]?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=[DOMAIN]

المصادقة

يجب عليك تقديم مفتاح API الخاص بك في كل عملية بحث. نقاط النهاية لدينا تعمل بتقنية HTTPS فقط، مما يوفر تشفيرًا للمفتاح. لا تعرض مفتاح API الخاص بك أبدًا.

مفتاح API الخاص بك هو
00000000-0000-0000-0000-000000000000

الحصول على مثال للمجال

JSON احصل على نطاق واحد
https://api.builtwith.com/rv4/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=builtwith.com

XML احصل على نطاق واحد
https://api.builtwith.com/rv4/api.xml?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=hotelscombined.com

CSV احصل على نطاق واحد
https://api.builtwith.com/rv4/api.csv?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=builtwith.com

TSV احصل على نطاق واحد
https://api.builtwith.com/rv4/api.Tsv?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=builtwith.com

مرجع
حدود
يمكن توفير معلمات GET التالية لعمليات البحث
اسمأمثلةمطلوب
KEY00000000-0000-0000-0000-000000000000
هذا هو مفتاحك، استخدمه للبحث.
نعم
LOOKUPcnn.com
news.ycombinator.com
تعمل النطاقات والنطاقات الفرعية مع واجهة برمجة التطبيقات للعلاقات (وليس الصفحات الداخلية)
خيار البحث المتعدد
عند إجراء عمليات بحث عن نطاق RAW، يمكنك تحليل ما يصل إلى 16 نطاقًا مرة واحدة كملف CSV. على سبيل المثال cnn.com,about.com,builtwith.com - يؤدي هذا إلى تحسين الإنتاجية بشكل كبير.
نعم
OFFSET500
إزاحة الصفحات لنتائج العلاقة. next_offset في الاستجابة لديه الإزاحة و more_results سيكون صحيحا.
لا
IPyes
قم بتحميل بيانات IP الخاصة بالموقع الإلكتروني، مما يؤدي إلى زيادة كمية النتائج بشكل كبير.
لا
واجهة برمجة التطبيقات ميتا
اسممثالوصف
results24إجمالي عدد نتائج العلاقة لهذا البحث
max_per_page500الحد الأقصى لعدد النتائج التي سنحصل عليها لكل عملية بحث.
next_skip1500الرقم الذي سيتم تقديمه كمعلمة OFFSET للصفحة التالية من النتائج إذا كانت more_results صحيحة.
more_resultstrueسيكون هذا صحيحًا إذا كانت هناك نتائج أكثر.
الاستجابات
شكل: Relationships[Relationship->Identifiers[Identifer]]
علاقة
النتائج هي الاستجابة ذات المستوى الأعلى التي تحدد البحث.
اسممثالوصف
Domainhotelscombined.comالمجال الذي تم البحث عنه.
Identifiersسيتم شرح المعرف أدناه.موضح أدناه.
المعرف
المعرفات هي الرموز الفريدة الموجودة على المجال والمجالات الأخرى التي تحتوي عليها أيضًا.
اسممثالوصف
Typegoogle-analyticsنوع المعرف شاهد جميع الأنواع
Value454517قيمة المعرف - عادةً رمز المعرف مثل عنوان IP أو معرف الحساب.
First1368860400000التاريخ الذي اكتشفنا فيه هذا المعرف لأول مرة في العصر مللي ثانية.
Last1398860400000تاريخ آخر اكتشاف لهذا المعرف في العصر مللي ثانية.
Matchesسيتم شرح المباراة أدناه.اشرح أدناه.
مباراة
المطابقات هي المجالات الأخرى التي تحتوي على هذا المعرف.
اسممثالوصف
Domaincom-hotel.comاسم المجال للمباراة.
First1398860400000التاريخ الذي اكتشفنا فيه هذا لأول مرة على المجال المطابق في العصر مللي ثانية.
Last1418860400000التاريخ الذي اكتشفنا فيه هذا آخر مرة على المجال المطابق في العصر مللي ثانية.
Overlaptrueإذا استخدم هذا المجال المعرف في نفس وقت البحث عن المجال.
مكتبات API
Node.js NPM

https://www.npmjs.com/package/builtwith-api
NPM الحزمة بواسطة Zach Caceres - https://github.com/zcaceres/builtwith-api

Microsoft .NET Nuget

https://www.nuget.org/packages/BuiltWith/
C# الحزمة بواسطة BuiltWith Pty Ltd - https://github.com/builtwith/BuiltWith-C-Client-API

أمثلة التعليمات البرمجية

فيما يلي أمثلة تنفيذية بلغات برمجة مختلفة لإنشاء طلبات واجهة برمجة التطبيقات:

var client = new HttpClient();
var request = new HttpRequestMessage
{
    Method = HttpMethod.Get,
    RequestUri = new Uri("https://api.builtwith.com/rv4/api.json" +
                        "?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com"),
};
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/rv4/api.json"
params = {
    'KEY': '00000000-0000-0000-0000-000000000000',
    'LOOKUP': 'wayfair.com'
}
response = requests.get(url, params=params)
print(response.json())
<?php
$url = "https://api.builtwith.com/rv4/api.json";
$params = array(
    'KEY' => '00000000-0000-0000-0000-000000000000',
    'LOOKUP' => 'wayfair.com'
);
$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/rv4/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com';
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/rv4/api.json" +
                    "?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com";
        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/rv4/api.json')
uri.query = URI.encode_www_form({
    'KEY' => '00000000-0000-0000-0000-000000000000',
    'LOOKUP' => 'wayfair.com'
})
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/rv4/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com"
    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/rv4/api.json?KEY=00000000-0000-0000-0000-000000000000&LOOKUP=wayfair.com"
المجالات الخاصة

نحتفظ بقائمتين لاستخدامك عند البحث عن النطاقات: قوائم التجاهل وقوائم اللاحقات المبنية.

قائمة التجاهل
Tهذه قائمتنا الداخلية للنطاقات التي لا نفهرسها. إما أنها محظورة، أو تحتوي على تقنيات مضللة، أو نطاقات فرعية كثيرة جدًا بمحتوى من إنشاء المستخدمين.

BuiltWith قائمة اللواحق
وهذا يعتمد على قائمة اللواحق العامة لكنها تتضمن العديد من الإدخالات الإضافية للشركات التي لديها نطاقات فرعية يجب اعتبارها نطاقات المستوى الأعلى. توفر لنا هذه القائمة رؤية أفضل لمواقع الويب الداخلية، على سبيل المثال، فهي ترفع موقع northernbeaches.nsw.gov.au إلى المستوى الأعلى مقارنة بـ nsw.gov.au.

تجاهل المجالات (XML, JSON or TXT)
https://api.builtwith.com/ignoresv1/api.json
نطاقات اللواحق (XML, JSON or TXT)
https://api.builtwith.com/suffixv1/api.json
رموز الخطأ

لاحظ أن رسائل الخطأ بهذا التنسيق لا يمكن ضمانها، ويجب على تطبيقك أيضًا أن يأخذ في الاعتبار أكواد الاستجابة غير 200 كأخطاء. ستكون خاصية البحث فارغة (json) أو غير متوفرة (xml) إذا كان الخطأ متعلقًا بالخادم. عرض جميع رموز الأخطاء المحتملة ذات التكوين الجيد.

شروط الاستخدام

ملكنا الشروط القياسية تغطية استخدام كافة واجهات برمجة التطبيقات لدينا.

بشكل عام، يمكنك استخدام واجهة برمجة التطبيقات (API) لتحسين منتجك بطرق عديدة. القيد الوحيد هو عدم إمكانية إعادة بيع البيانات كما هي أو توفير وظائف مكررة لـbuiltwith.com والخدمات المرتبطة بها.