@builtwith/sdk 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +163 -0
- package/package.json +1 -1
- package/src/index.js +6 -0
package/README.md
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# BuiltWith AI First SDK
|
|
2
|
+
|
|
3
|
+
Official SDK for the [BuiltWith](https://builtwith.com) MCP API. Available for **Node.js** and **.NET**.
|
|
4
|
+
|
|
5
|
+
## API Key
|
|
6
|
+
|
|
7
|
+
Get your API key at [https://api.builtwith.com](https://api.builtwith.com).
|
|
8
|
+
|
|
9
|
+
Set it as an environment variable:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
export BUILTWITH_API_KEY=your-key-here
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Node.js
|
|
18
|
+
|
|
19
|
+
### Requirements
|
|
20
|
+
|
|
21
|
+
- Node.js >= 22.0.0
|
|
22
|
+
|
|
23
|
+
### Installation
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install @builtwith/sdk
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Quick Start
|
|
30
|
+
|
|
31
|
+
```js
|
|
32
|
+
const { BuiltWithClient } = require('@builtwith/sdk');
|
|
33
|
+
|
|
34
|
+
const client = new BuiltWithClient(process.env.BUILTWITH_API_KEY);
|
|
35
|
+
|
|
36
|
+
const result = await client.domain_lookup_live({ domain: 'spotify.com' });
|
|
37
|
+
if (result.ok) {
|
|
38
|
+
console.log(result.data);
|
|
39
|
+
} else {
|
|
40
|
+
console.log(result.error);
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Available Methods
|
|
45
|
+
|
|
46
|
+
| Method | Parameter | Description |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| `domain_lookup_live({ domain })` | Root domain | Live technology lookup |
|
|
49
|
+
| `domain_lookup({ lookup })` | Root domain | Full domain API data |
|
|
50
|
+
| `relationships({ lookup })` | Root domain | Related websites |
|
|
51
|
+
| `free_summary({ lookup })` | Root domain | Free category/group counts |
|
|
52
|
+
| `company_to_url({ company })` | Company name | Domains from a company name |
|
|
53
|
+
| `tags_lookup({ lookup })` | IP or attribute | Related domains from IP or attributes |
|
|
54
|
+
| `recommendations({ lookup })` | Root domain | Technology recommendations |
|
|
55
|
+
| `redirects({ lookup })` | Root domain | Live and historical redirects |
|
|
56
|
+
| `keywords({ lookup })` | Root domain | Keyword data |
|
|
57
|
+
| `trends({ tech })` | Technology name | Technology trend data |
|
|
58
|
+
| `product_search({ query })` | Search query | Ecommerce product search |
|
|
59
|
+
| `trust({ lookup })` | Root domain | Trust scoring |
|
|
60
|
+
| `financial({ lookup })` | Root domain | Financial data |
|
|
61
|
+
| `social({ lookup })` | Root domain | Social profile related domains |
|
|
62
|
+
|
|
63
|
+
### Response Format
|
|
64
|
+
|
|
65
|
+
Every method returns:
|
|
66
|
+
|
|
67
|
+
```js
|
|
68
|
+
{
|
|
69
|
+
ok: true | false,
|
|
70
|
+
data: { ... }, // parsed result (null on error)
|
|
71
|
+
raw: { ... }, // raw JSON-RPC response
|
|
72
|
+
error: { ... }, // error details (null on success)
|
|
73
|
+
meta: { request_id, tool, cached }
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Running Examples
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
cd node
|
|
81
|
+
BUILTWITH_API_KEY=your-key npm run example
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## .NET (C#)
|
|
87
|
+
|
|
88
|
+
### Requirements
|
|
89
|
+
|
|
90
|
+
- .NET 8.0 or .NET Framework 4.8
|
|
91
|
+
|
|
92
|
+
### Quick Start
|
|
93
|
+
|
|
94
|
+
```csharp
|
|
95
|
+
using BuiltWith.Sdk;
|
|
96
|
+
|
|
97
|
+
var apiKey = Environment.GetEnvironmentVariable("BUILTWITH_API_KEY");
|
|
98
|
+
using var client = new BuiltWithClient(apiKey);
|
|
99
|
+
|
|
100
|
+
var result = await client.domain_lookup_live("spotify.com");
|
|
101
|
+
if (result.Ok)
|
|
102
|
+
Console.WriteLine(result.Data);
|
|
103
|
+
else
|
|
104
|
+
Console.WriteLine(result.Error.Message);
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Available Methods
|
|
108
|
+
|
|
109
|
+
All methods accept a `CancellationToken` as an optional last parameter.
|
|
110
|
+
|
|
111
|
+
| Method | Parameter | Description |
|
|
112
|
+
|---|---|---|
|
|
113
|
+
| `domain_lookup_live(domain)` | `string` | Live technology lookup |
|
|
114
|
+
| `domain_lookup(lookup)` | `string` | Full domain API data |
|
|
115
|
+
| `relationships(lookup)` | `string` | Related websites |
|
|
116
|
+
| `free_summary(lookup)` | `string` | Free category/group counts |
|
|
117
|
+
| `company_to_url(company)` | `string` | Domains from a company name |
|
|
118
|
+
| `tags_lookup(lookup)` | `string` | Related domains from IP or attributes |
|
|
119
|
+
| `recommendations(lookup)` | `string` | Technology recommendations |
|
|
120
|
+
| `redirects(lookup)` | `string` | Live and historical redirects |
|
|
121
|
+
| `keywords(lookup)` | `string` | Keyword data |
|
|
122
|
+
| `trends(tech)` | `string` | Technology trend data |
|
|
123
|
+
| `product_search(query)` | `string` | Ecommerce product search |
|
|
124
|
+
| `trust(lookup)` | `string` | Trust scoring |
|
|
125
|
+
| `financial(lookup)` | `string` | Financial data |
|
|
126
|
+
| `social(lookup)` | `string` | Social profile related domains |
|
|
127
|
+
|
|
128
|
+
### Response Format
|
|
129
|
+
|
|
130
|
+
Every method returns an `SdkResult`:
|
|
131
|
+
|
|
132
|
+
```csharp
|
|
133
|
+
result.Ok // bool
|
|
134
|
+
result.Data // object - parsed result
|
|
135
|
+
result.Raw // object - raw JSON-RPC response
|
|
136
|
+
result.Error // SdkError - error details (null on success)
|
|
137
|
+
result.Meta // SdkMeta - request_id, tool, cached
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### Running Examples
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
cd csharp/Examples
|
|
144
|
+
BUILTWITH_API_KEY=your-key dotnet run
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Prompt Helpers
|
|
150
|
+
|
|
151
|
+
Both SDKs include prompt helper methods for use with AI agents:
|
|
152
|
+
|
|
153
|
+
- `prompt_analyze_tech_stack(domain)`
|
|
154
|
+
- `prompt_find_related_websites(domain)`
|
|
155
|
+
- `prompt_get_technology_recommendations(domain)`
|
|
156
|
+
- `prompt_research_company(company)`
|
|
157
|
+
- `prompt_check_domain_trust(domain)`
|
|
158
|
+
|
|
159
|
+
These return structured prompt objects for MCP-compatible AI workflows.
|
|
160
|
+
|
|
161
|
+
## License
|
|
162
|
+
|
|
163
|
+
MIT
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -322,6 +322,12 @@ class BuiltWithClient {
|
|
|
322
322
|
return this._request('social-api', { lookup });
|
|
323
323
|
}
|
|
324
324
|
|
|
325
|
+
async vector_search(params) {
|
|
326
|
+
const { query, limit } = params || {};
|
|
327
|
+
_validate_string('query', query);
|
|
328
|
+
return this._request('vector-search', { query, ...(limit != null ? { limit } : {}) });
|
|
329
|
+
}
|
|
330
|
+
|
|
325
331
|
// ── Prompt helpers ─────────────────────────────────────────────────────────
|
|
326
332
|
|
|
327
333
|
prompt_analyze_tech_stack(params) {
|