{"id":50799747,"url":"https://github.com/builtwith/builtwith-csharp-api","last_synced_at":"2026-06-12T18:04:20.931Z","repository":{"id":38092842,"uuid":"241032434","full_name":"builtwith/builtwith-csharp-api","owner":"builtwith","description":"BuiltWith C# Client API on Nuget","archived":false,"fork":false,"pushed_at":"2026-05-08T04:17:54.000Z","size":72,"stargazers_count":9,"open_issues_count":0,"forks_count":7,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-05-08T06:25:02.680Z","etag":null,"topics":["builtwith","csharp","technology","web"],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/builtwith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-02-17T06:08:02.000Z","updated_at":"2026-05-08T04:17:58.000Z","dependencies_parsed_at":"2026-02-12T14:02:27.201Z","dependency_job_id":null,"html_url":"https://github.com/builtwith/builtwith-csharp-api","commit_stats":null,"previous_names":["builtwith/builtwith-csharp-api"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/builtwith/builtwith-csharp-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/builtwith%2Fbuiltwith-csharp-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/builtwith%2Fbuiltwith-csharp-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/builtwith%2Fbuiltwith-csharp-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/builtwith%2Fbuiltwith-csharp-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/builtwith","download_url":"https://codeload.github.com/builtwith/builtwith-csharp-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/builtwith%2Fbuiltwith-csharp-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34256188,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["builtwith","csharp","technology","web"],"created_at":"2026-06-12T18:04:20.224Z","updated_at":"2026-06-12T18:04:20.916Z","avatar_url":"https://github.com/builtwith.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BuiltWith C# Client SDK\n\nC# client SDK for the [BuiltWith API](https://api.builtwith.com). ![.NET](https://github.com/builtwith/BuiltWith-C-Client-API/workflows/.NET/badge.svg?branch=master)\n\n## Getting Started\n\n```csharp\nusing var client = new BuiltWith.BuiltWithClient(\"YOUR_API_KEY\");\n\n// Domain API - get technologies used on a domain\nvar domain = await client.GetDomainAsync(\"example.com\");\n\n// Free API - get technology group summary\nvar free = await client.GetFreeAsync(\"example.com\");\n```\n\nGet your API key by creating a free account at [api.builtwith.com](https://api.builtwith.com).\n\n## Installing\n\n```\ndotnet add package BuiltWith\n```\n\nhttps://www.nuget.org/packages/BuiltWith/\n\n## Supported Endpoints\n\n- [x] [Domain API](https://api.builtwith.com/domain-api) - Technology detection for domains (v22)\n- [x] [Change API](https://api.builtwith.com/change-api) - Technology additions and removals\n- [x] [Free API](https://api.builtwith.com/free-api) - Free technology group summary\n- [x] [Lists API](https://api.builtwith.com/lists-api) - Find sites using a technology\n- [x] [Relationships API](https://api.builtwith.com/relationships-api) - Domain relationship mapping\n- [x] [Keywords API](https://api.builtwith.com/keywords-api) - Domain keyword extraction\n- [x] [Trends API](https://api.builtwith.com/trends-api) - Technology adoption trends\n- [x] [Company to URL API](https://api.builtwith.com/company-to-url) - Map company names to domains\n- [x] [Tags API](https://api.builtwith.com/tag-api) - IP and attribute lookups\n- [x] [Redirects API](https://api.builtwith.com/redirect-api) - Domain redirect tracking\n- [x] [Trust API](https://api.builtwith.com/trust-api) - Trust and fraud signals\n- [x] [Recommendations API](https://api.builtwith.com/recommendations-api) - Technology recommendations\n- [x] [Product API](https://api.builtwith.com/product-api) - E-commerce product search\n- [x] [Vector Search API](https://api.builtwith.com/vector-api) - Semantic technology and category search\n- [x] [Ask API](https://api.builtwith.com/ask-api) - Natural language website list lookup\n- [x] Agent Device-Code Authorization - Obtain a temporary API token via browser approval (no API key required)\n\n## Usage Examples\n\n### Domain API\n\n```csharp\nusing var client = new BuiltWith.BuiltWithClient(\"YOUR_API_KEY\");\n\n// Single domain\nvar result = await client.GetDomainAsync(\"shopify.com\");\nforeach (var tech in result.Results[0].Result.Paths[0].Technologies)\n{\n    Console.WriteLine($\"{tech.Name} ({tech.Tag})\");\n}\n\n// Multiple domains (max 16)\nvar multi = await client.GetDomainAsync(new[] { \"shopify.com\", \"builtwith.com\" });\n```\n\n### Change API\n\n```csharp\nvar changes = await client.GetChangeAsync(\"builtwith.com\", since: \"last month\");\nforeach (var item in changes.Results)\n{\n    Console.WriteLine(item.Changes?.Summary);\n}\n\nvar multiChanges = await client.GetChangeAsync(new[] { \"shopify.com\", \"builtwith.com\" });\n```\n\n### Lists API\n\n```csharp\n// Find sites using Shopify\nvar list = await client.GetListsAsync(\"Shopify\");\nvar gaAndPixel = await client.GetListsAsync(\"Google-Analytics\", otherTechs: \"Meta-Pixel\");\nvar filtered = await client.GetListsAsync(\"Shopify\", filters: new Dictionary\u003cstring, string\u003e\n{\n    [\"REVENUE\"] = \"100000|GT\",\n    [\"SPEND\"] = \"100|GTE\",\n    [\"EMPLOYEES\"] = \"50|GTE\"\n});\nforeach (var site in list.Results)\n{\n    Console.WriteLine(site.Domain);\n}\n\n// Paginate with offset\nvar next = await client.GetListsAsync(\"Shopify\", list.NextOffset);\n```\n\n### Relationships API\n\n```csharp\nvar rel = await client.GetRelationshipsAsync(\"builtwith.com\");\nforeach (var r in rel.Relationships)\n{\n    foreach (var id in r.Identifiers)\n    {\n        Console.WriteLine($\"{id.Type}: {id.Value} ({id.Matches?.Length} matches)\");\n    }\n}\n```\n\n### Company to URL API\n\n```csharp\nvar companies = await client.GetCompanyToUrlAsync(\"BuiltWith\");\nforeach (var c in companies)\n{\n    Console.WriteLine($\"{c.Domain} - {c.CompanyName} ({c.Country})\");\n}\n```\n\n### Trends API\n\n```csharp\nvar trends = await client.GetTrendsAsync(\"Shopify\");\nConsole.WriteLine($\"{trends.Tech.Name}: {trends.Tech.Coverage.Live} live sites\");\n```\n\n### Trust API\n\n```csharp\nvar trust = await client.GetTrustAsync(\"example.com\");\nConsole.WriteLine($\"Spend: {trust.DBRecord?.Spend}, Parked: {trust.DBRecord?.Parked}\");\n```\n\n### Redirects API\n\n```csharp\nvar redirects = await client.GetRedirectsAsync(\"builtwith.com\");\nConsole.WriteLine($\"Inbound: {redirects.Inbound?.Length}, Outbound: {redirects.Outbound?.Length}\");\n```\n\n### Tags API\n\n```csharp\nvar tags = await client.GetTagsAsync(\"IP-104.18.44.82\");\nforeach (var tag in tags)\n{\n    Console.WriteLine($\"{tag.Value}: {tag.Matches?.Length} domains\");\n}\n```\n\n### Product API\n\n```csharp\nvar products = await client.GetProductAsync(\"bluetooth speaker\");\nforeach (var shop in products.Shops)\n{\n    foreach (var p in shop.Products)\n    {\n        Console.WriteLine($\"{p.Title} - ${p.Price} at {shop.Domain}\");\n    }\n}\n```\n\n### Recommendations API\n\n```csharp\nvar recs = await client.GetRecommendationsAsync(\"builtwith.com\");\nforeach (var r in recs[0].Recommendations)\n{\n    Console.WriteLine($\"{r.Name} ({r.Tag}) - {r.Stars} stars, {r.Match:P0} match\");\n}\n```\n\n### Keywords API\n\n```csharp\nvar kw = await client.GetKeywordsAsync(\"builtwith.com\");\nConsole.WriteLine(string.Join(\", \", kw.Keywords[0].Keywords));\n```\n\n### Vector Search API\n\n```csharp\nvar results = await client.GetVectorSearchAsync(\"react framework\");\nforeach (var r in results.Results)\n{\n    Console.WriteLine($\"{r.Name} ({r.Type}) - score: {r.Score:F2}\");\n}\n\n// With limit\nvar limited = await client.GetVectorSearchAsync(\"ecommerce platform\", limit: 5);\n```\n\n### Ask API\n\nNatural language website list lookup. Without `commit`, returns a sample (1 API credit). Set `commit: true` for a full report of up to 1,000 results. Paginate using `nextOffset` from the previous response; `\"END\"` means no more pages.\n\n```csharp\n// Quick sample\nvar result = await client.GetAskAsync(\"Magento websites in Spain\");\nConsole.WriteLine(result.Explanation);\nforeach (var r in result.Results)\n{\n    Console.WriteLine($\"{r.D} ({r.Country})\");\n}\n\n// Full report\nvar full = await client.GetAskAsync(\"Shopify stores in the US\", commit: true);\n\n// Paginate\nvar page2 = await client.GetAskAsync(\"Shopify stores in the US\", commit: true, nextOffset: full.NextOffset);\n```\n\n### Agent Device-Code Authorization\n\nObtain a temporary `bw-` prefixed API token via browser approval. These are **static methods** — no `BuiltWithClient` instance or API key required.\n\n```csharp\n// Step 1: start the flow\nvar start = await BuiltWithClient.AgentAuthStartAsync();\n// start.VerificationUri =\u003e URL to open in browser\n// start.DeviceCode      =\u003e code to poll with\n\nConsole.WriteLine($\"Open in browser: {start.VerificationUri}\");\n\n// Step 2: poll every 5 seconds\nAgentAuthTokenResponse token;\ndo {\n    await Task.Delay(5000);\n    token = await BuiltWithClient.AgentAuthTokenAsync(start.DeviceCode);\n} while (token.Status == \"pending\");\n\nif (token.Status == \"approved\") {\n    using var client = new BuiltWithClient(token.AccessToken);\n    // use client normally\n}\n```\n\nSynchronous equivalents are also available:\n\n```csharp\nvar start = BuiltWithClient.AgentAuthStart();\nvar token = BuiltWithClient.AgentAuthToken(start.DeviceCode);\n```\n\n### Synchronous Usage\n\nAll async methods have synchronous counterparts:\n\n```csharp\nvar domain = client.GetDomain(\"example.com\");\nvar free = client.GetFree(\"example.com\");\nvar trust = client.GetTrust(\"example.com\");\n```\n\n### Custom HttpClient\n\n```csharp\nvar httpClient = new HttpClient();\nhttpClient.Timeout = TimeSpan.FromSeconds(60);\n\nusing var client = new BuiltWith.BuiltWithClient(\"YOUR_API_KEY\", httpClient);\n```\n\n## Dependencies\n\n* .NET 8.0 / .NET Standard 2.0\n* System.Text.Json\n\n## Migrating from v1\n\nv2 is a complete rewrite. Key changes:\n\n- **Instance-based client** - Use `new BuiltWithClient(key)` instead of `BuiltWithClient.Init(key)` + static methods\n- **IDisposable** - Wrap in `using` statement\n- **Async-first** - All methods have `Async` variants with `CancellationToken` support\n- **System.Text.Json** - Replaced Newtonsoft.Json\n- **Domain API v22** - Updated from v14\n- **All endpoints** - Full coverage of the BuiltWith API\n\n## Licence\n\nMIT\n\n## Authors\n\nGary Brewer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuiltwith%2Fbuiltwith-csharp-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbuiltwith%2Fbuiltwith-csharp-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuiltwith%2Fbuiltwith-csharp-api/lists"}