Skip to main content
📦

UFO Sightings Open Data & API

Every sighting report published on Alien Tavern is free to use, copy, analyze, republish and scrape, for any purpose including commercial, under the Creative Commons Attribution 4.0 license. The only condition is credit with a link. There is no API key, no sign-up and no robots.txt block on these paths; the rate limits below exist so one client cannot crowd out the rest.

Published reports
0
Photos
0
U.S. states
0
Last update
—

License and attribution

The reports are licensed CC BY 4.0 (CC-BY-4.0). Credit Alien Tavern and link to the source. A line that satisfies the license:

Source: Alien Tavern UFO sighting reports, https://alientavern.com/sightings/reports (CC BY 4.0)

Every JSON response also carries the license as a Link header, and each record includes its own license, license_url and attribution fields, so a copy of the data stays self-describing. Witnesses grant this license when they submit; reporter names and emails are never part of the data.

Endpoints

GET /sightings/reports.json

Every published report, newest first, 50 per page (per_page up to 100). Filters: state (code or slug), shape, year, country, since (YYYY-MM-DD, by publication date).

curl -s "https://alientavern.com/sightings/reports.json?state=TX&shape=triangle&per_page=100"
GET /sightings/reports/{id}.json

One report by id.

curl -s "https://alientavern.com/sightings/reports/123.json"
GET /sightings/reports.csv

The whole set as CSV, streamed. Columns below.

curl -sL "https://alientavern.com/sightings/reports.csv" -o sightings.csv
GET /sightings/stats.json

The aggregates behind the state, shape and trend pages: totals by state (with per-100k rates), year, shape, and source.

curl -s "https://alientavern.com/sightings/stats.json"
GET /sightings/photos/{id}

A photo from a published report, as image bytes. The report JSON carries these URLs.

curl -sO "https://alientavern.com/sightings/photos/7"

Responses are plain JSON with open CORS (Access-Control-Allow-Origin: *), so a browser page on any site can fetch them directly. The list endpoint is Laravel's standard paginator: read data and follow next_page_url. Limits: 60 requests a minute for JSON, 10 a minute for the CSV, 120 a minute for photos, per IP.

Fields

Each report has: id, url, occurred_on (YYYY-MM-DD, local), occurred_time (HH:MM local, or null when the witness did not know), duration_seconds, duration_text (as typed), city, state (two-letter, U.S. only), country (ISO 3166-1 alpha-2), shape, witnesses, characteristics (codes such as lights, hovered, missing_time), summary, narrative, media_url, photos (id, url, content_type), submitted_on, published_at, and the license fields.

CSV columns, in order:

id, url, occurred_on, occurred_time, duration_seconds, duration_text, city, state, country, shape, witnesses, characteristics, summary, narrative, media_url, photo_urls, submitted_on, published_at, license

In the CSV, characteristics and photo_urls are pipe-separated. Cells that begin with a formula character are prefixed with an apostrophe so the file opens safely in a spreadsheet.

Scraping, mirroring and bulk use

Welcome. Crawl the report pages, poll the JSON, mirror the CSV, train a model, build a map, publish a paper. Cite the source and you are within the license. If you need more than the rate limits allow, or want a notification when new reports are published, get in touch. Reports are occasionally unpublished at a witness's request; a record that disappears from the JSON should be dropped from copies too.

Want to add to the dataset? Report a sighting.