{"id":51579335,"url":"https://github.com/ipverse/as-metadata","last_synced_at":"2026-07-11T04:02:51.600Z","repository":{"id":56758906,"uuid":"524696259","full_name":"ipverse/as-metadata","owner":"ipverse","description":"Download autonomous system list organized by ASN","archived":false,"fork":false,"pushed_at":"2026-06-28T02:13:26.000Z","size":264787,"stargazers_count":93,"open_issues_count":0,"forks_count":17,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-06-28T04:12:28.311Z","etag":null,"topics":["asn","asn-lookup","autonomous-system-numbers","autonomous-systems","bgp","osint"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ipverse.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2022-08-14T14:36:39.000Z","updated_at":"2026-06-28T02:13:32.000Z","dependencies_parsed_at":"2026-05-20T04:02:08.144Z","dependency_job_id":null,"html_url":"https://github.com/ipverse/as-metadata","commit_stats":null,"previous_names":["ipverse/as-metadata"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ipverse/as-metadata","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipverse%2Fas-metadata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipverse%2Fas-metadata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipverse%2Fas-metadata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipverse%2Fas-metadata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ipverse","download_url":"https://codeload.github.com/ipverse/as-metadata/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ipverse%2Fas-metadata/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35350133,"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-07-11T02:00:05.354Z","response_time":104,"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":["asn","asn-lookup","autonomous-system-numbers","autonomous-systems","bgp","osint"],"created_at":"2026-07-11T04:02:50.978Z","updated_at":"2026-07-11T04:02:51.595Z","avatar_url":"https://github.com/ipverse.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"# as-metadata (formerly asn-info)\n\n## 🔍 Try it online\n\nExplore AS metadata interactively at **[Lens by ipverse](https://lens.ipverse.net)** — search IP addresses, prefixes, and autonomous systems without downloading anything.\n\n## Overview\n\nA comprehensive dataset of autonomous system metadata for all assigned ASNs (autonomous system numbers). \nIncludes handle, organization name, and country code sourced from regional internet registries (RIR). \nUpdated automatically when source data changes (checked daily).\n\nPerfect for offline lookups, network analysis, threat intelligence, or any project where you need to map ASNs to organizations—no API rate limits, no external dependencies.\n\n## Update notes\n\n- **2026-03-04**: Added `metadata.lastModified` and `stats.prefixesLastModified` change-tracking timestamps; all timestamp fields now use date-only format (`yyyy-MM-dd`) to reduce file size\n- **2026-02-08**: Added `category` (e.g. `isp`, `hosting`, `government_admin`) and `networkRole` (e.g. `tier1_transit`, `stub`) fields to AS metadata\n- **2026-01-27**: Added `providerAsns` field with list of upstream transit provider ASNs\n- **2026-01-18**: **Breaking change:** Replaced `upstreams`/`downstreams` with `providers`/`customers`/`peers` to accurately distinguish transit relationships from peering. Added `degree` and `reach` fields.\n- **2026-01-08**: Added `registered` field (RIR registration date), `stats` section (prefix and connectivity statistics), and moved `lastAnnounced` to top level.\n- **2026-01-03**: Repository renamed to `as-metadata`, CSV format changed to 4 columns (added country-code), JSON format added.\n- **2025-08-03**: Removed opinionated handle cleanup and removed quotes around descriptions to improve RFC4180 compliance\n- **2023-09-03**: Removed PEM certificates from description field\n\n## Available formats\n\nJSON (~55-60 MB) and CSV (~6 MB)\n\n**JSON format:**\n```json\n[\n  {\n    \"asn\": 4711,\n    \"metadata\": {\n      \"handle\": \"INTEC\",\n      \"description\": \"INTEC Inc.\",\n      \"countryCode\": \"JP\",\n      \"country\": \"Japan\",\n      \"origin\": \"authoritative\",\n      \"category\": \"business\",\n      \"networkRole\": \"stub\",\n      \"registered\": \"1997-03-14\",\n      \"lastModified\": \"2026-03-01\"\n    },\n    \"stats\": {\n      \"ipv4\": {\n        \"prefixes\": 12,\n        \"prefixesAggregated\": 8,\n        \"largestPrefix\": 20\n      },\n      \"ipv6\": {\n        \"prefixes\": 3,\n        \"prefixesAggregated\": 2,\n        \"largestPrefix\": 32\n      },\n      \"connectivity\": {\n        \"providers\": 2,\n        \"providerAsns\": [174, 3356],\n        \"customers\": 5,\n        \"peers\": 3,\n        \"degree\": 10,\n        \"reach\": 12\n      },\n      \"prefixesLastModified\": \"2026-03-04\"\n    },\n    \"lastAnnounced\": \"2026-01-04\"\n  },\n  {\n    \"asn\": 4712,\n    \"metadata\": {\n      \"handle\": \"JT-NET\",\n      \"description\": \"JAPAN TOBACCO INC.\",\n      \"countryCode\": \"JP\",\n      \"country\": \"Japan\",\n      \"origin\": \"authoritative\",\n      \"category\": null,\n      \"networkRole\": null,\n      \"registered\": \"1997-03-14\",\n      \"lastModified\": null\n    },\n    \"stats\": null,\n    \"lastAnnounced\": null\n  }\n]\n```\n\n**CSV format:**\n```csv\nasn,handle,description,country-code\n0,IANA-RSVD-0,Internet Assigned Numbers Authority,US\n1,LVLT-1,Level 3 Parent LLC,US\n2,UDEL-DCN,University of Delaware,US\n3,MIT-GATEWAYS,Massachusetts Institute of Technology,US\n4,ISI-AS,University of Southern California,US\n5,SYMBOLICS,WFA Group LLC,US\n6,BULL-HN,ATOS IT Solutions and Services Inc.,US\n7,DSTL,The Defence Science and Technology Laboratory,GB\n.\n.\n.\n```\n\n## Field descriptions\n\n### CSV fields\n\n| Field | Description |\n|---|---|\n| `asn` | Autonomous System Number |\n| `handle` | Registry handle/identifier |\n| `description` | Organization name or description |\n| `country-code` | ISO 3166-1 alpha-2 country code (`XX` if unknown) |\n\n### JSON fields\n\n| Field | Description |\n|---|---|\n| `asn` | Autonomous System Number |\n| `metadata.handle` | Registry handle/identifier |\n| `metadata.description` | Organization name or description |\n| `metadata.countryCode` | ISO 3166-1 alpha-2 country code |\n| `metadata.country` | Full country name |\n| `metadata.origin` | Metadata source (see [origin values](#origin-values)) |\n| `metadata.category` | AS classification; `null` if unclassified (see [AS category and network role](#as-category-and-network-role)) |\n| `metadata.networkRole` | Network role; `null` if unknown (see [AS category and network role](#as-category-and-network-role)) |\n| `metadata.registered` | RIR registration date (`yyyy-MM-dd`); `null` for inferred ASNs |\n| `metadata.lastModified` | Date (`yyyy-MM-dd`) when any metadata field last changed (includes RIR data, category, network role, etc.); `null` if never announced |\n| `stats` | Prefix and connectivity statistics; `null` for ASNs without route collector data |\n| `stats.ipv4.prefixes` | Number of IPv4 prefixes announced |\n| `stats.ipv4.prefixesAggregated` | Number of IPv4 prefixes after aggregation |\n| `stats.ipv4.largestPrefix` | Largest IPv4 prefix announced (e.g. `/13` — smaller number = larger block) |\n| `stats.ipv6.prefixes` | Number of IPv6 prefixes announced |\n| `stats.ipv6.prefixesAggregated` | Number of IPv6 prefixes after aggregation |\n| `stats.ipv6.largestPrefix` | Largest IPv6 prefix announced (e.g. `/29` — smaller number = larger block) |\n| `stats.connectivity.providers` | Number of transit provider ASNs |\n| `stats.connectivity.providerAsns` | List of transit provider ASNs (enables upstream quality analysis) |\n| `stats.connectivity.customers` | Number of transit customer ASNs |\n| `stats.connectivity.peers` | Number of settlement-free peer ASNs |\n| `stats.connectivity.degree` | Total unique neighbor ASNs (providers + customers + peers) |\n| `stats.connectivity.reach` | Customer cone size (ASNs reachable via customer relationships) |\n| `stats.prefixesLastModified` | Date (`yyyy-MM-dd`) when announced prefixes last changed; only present when `stats` is non-null |\n| `lastAnnounced` | Date (`yyyy-MM-dd`) when AS was last seen announcing prefixes; `null` if never seen |\n\n### Origin values\n\n| Value | Description |\n|---|---|\n| `authoritative` | From authoritative source |\n| `inferred` | Inferred from routing information; may be inaccurate |\n| `overlaid` | Metadata overlay from [as-overlay](https://github.com/ipverse/as-overlay) applied |\n| `none` | No metadata available |\n\n## AS category and network role\n\n### Category\n\nClassifies the primary function of an autonomous system.\n\n| Value | Description |\n|---|---|\n| `isp` | Internet service provider (broadband, DSL, cable, fiber, mobile) |\n| `hosting` | Hosting, cloud, or content provider |\n| `business` | Enterprise or non-profit organization |\n| `education_research` | Educational or research institution |\n| `government_admin` | Government entity or public administration |\n\n`null` when unclassified.\n\nCategorization is based on multiple signals and reflects the AS's *primary* function. It won't always be correct — many networks defy clean categorization (e.g. an ISP that also runs a hosting business, or a university with its own transit infrastructure). Take it as a useful default, not gospel. An overlay mechanism for user-supplied corrections may be added in the future.\n\n### Network role\n\nDescribes the connectivity role of an autonomous system based on BGP topology.\n\n| Value | Description |\n|---|---|\n| `tier1_transit` | Tier 1 transit provider with settlement-free global reach |\n| `major_transit` | Major transit provider |\n| `midsize_transit` | Mid-size transit provider |\n| `access_provider` | Access or eyeball network |\n| `content_network` | Content delivery network |\n| `stub` | Stub AS with no transit customers |\n\n`null` when unknown.\n\nRole assignment is based on BGP connectivity metrics with opinionated thresholds. Reasonable people may disagree on where exactly to draw the line between \"major\" and \"mid-size\" transit, or when a network stops being a stub.\n\n## How to use\n\nDownload the data directly:\n\n**JSON:**\n```bash\ncurl -O https://raw.githubusercontent.com/ipverse/as-metadata/master/as.json\n```\n\n**CSV:**\n```bash\ncurl -O https://raw.githubusercontent.com/ipverse/as-metadata/master/as.csv\n```\n\nOr just clone the repo if that's your thing.\n\n**Quick example (Python):**\n```python\nimport json\nwith open('as.json') as f:\n    data = {entry['asn']: entry for entry in json.load(f)}\nprint(data[4711]['metadata']['description'])  # INTEC Inc.\n```\n\n## Use cases\n- Figure out who owns an ASN\n- Enrich your IP intelligence tools\n- Threat hunting and security research\n- BGP analysis and network research\n- Building dashboards or monitoring tools\n- Offline lookups (no API rate limits to deal with)\n- Pretty much anything where you need to map ASNs to operators\n\n## Related projects\n\n- **[as-overlay](https://github.com/ipverse/as-overlay)**: Autonomous system metadata overlays that supplement and enhance the authoritative data in this repository. When overlay data is applied, entries will have an `origin` value of `overlaid` in the JSON format.\n\n## Questions or issues?\n\nHead over to the [feedback repository](https://github.com/ipverse/feedback) if you have questions, issues, or suggestions.\n\n## License\n\nThis data is released under [CC0 1.0 Universal](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipverse%2Fas-metadata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fipverse%2Fas-metadata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fipverse%2Fas-metadata/lists"}