---
name: censys-platform-api-ingestion
description: "How to get Censys Platform API data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Load a Censys host lookup into pandas and Parquet

Source entry: https://signal-lab-jet.vercel.app/datasets/censys-platform-api
Provider: https://docs.censys.com/reference/get-started
Checked against the provider's documentation: 2026-11-01

## Access
- Create a free Censys account and Personal Access Token; store it in CENSYS_PAT.
- The Free tier supports host, web property and certificate lookup endpoints, not search.

## Request
```bash
curl -H "Authorization: Bearer $CENSYS_PAT" -H 'Accept: application/vnd.censys.api.v3.host.v1+json' 'https://api.platform.censys.io/v3/global/asset/host/8.8.8.8'
```

## Format
JSON host resource containing IP, location, autonomous-system, WHOIS and observed service objects; available fields depend on the account tier.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""Censys Free host lookup -> pandas -> Parquet. Requires CENSYS_PAT."""
import os
import requests
import pandas as pd

URL = "https://api.platform.censys.io/v3/global/asset/host/8.8.8.8"
headers = {
    "Authorization": f"Bearer {os.environ['CENSYS_PAT']}",
    "Accept": "application/vnd.censys.api.v3.host.v1+json",
}
r = requests.get(URL, headers=headers, timeout=30)
r.raise_for_status()
resource = r.json()["result"]["resource"]
df = pd.json_normalize([resource], sep=".")
df.to_parquet("censys_host_8_8_8_8.parquet", index=False)
print(len(df), "host", df.loc[0, "ip"], "columns", len(df.columns))
```
Not run: it needs a free API key.

## Limits
- Free users receive 100 credits per month and five free Platform API or UI actions per day.
- The Free API tier provides asset lookup endpoints only and allows one concurrent action.
- Account-specific request limits are displayed on the Personal Access Tokens page.

## Quirks
- The current Platform API uses a bearer Personal Access Token, not the legacy API ID and secret authentication.
- Free users cannot use the search endpoint even though search examples appear elsewhere in the API reference.
- Service scan_time is an observation timestamp; a missing service is not proof that it is closed.

## Terms and attribution
- Free-tier data is non-commercial and requires Censys attribution with a link.
- Do not redistribute Censys data as a stand-alone database or embed it in a third-party product without the required enterprise rights.
- Terms page: https://censys.com/terms-of-service/

## Sources
- https://docs.censys.com/reference/get-started.md: "Censys Free users only have access to host, web property, and certificate lookup (get a host, retrieve multiple hosts, get a certificate, retrieve multiple certificates, get a web property, and retrieve multiple web properties) endpoints."
- https://docs.censys.com/docs/platform-credits-free-starter.md: "Every Censys Free user receives 100 credits per month at no cost."
- https://docs.censys.com/docs/internet-scanning.md: "Every day, the age of each of the over 3 billion services in our data set is checked."
- https://censys.com/terms-of-service/: "Non-paying Customers must cite the Service and link to the Site wherever Censys Data is used"

## Help improve this skill
Missing a source, or see something to improve? Call the MCP tool suggest_source or feedback (or POST /api/suggest or /api/feedback). Reviewed ideas: https://signal-lab-jet.vercel.app/agent-suggestions

Information for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
