canonical: https://jentic.com/apis/caltech.edu/caltech

# Caltech Edu NASA Exoplanet Archive TAP API

The NASA Exoplanet Archive TAP API queries the archive's tables of confirmed planets and related astronomical data. It runs synchronous or asynchronous ADQL queries through the Table Access Protocol, retrieves async job results by job id, and lists the available tables. A legacy nstedAPI endpoint returns rows from a named table by column, filter, and cone-search position. It is a read-only query surface, open with no credential.

## For AI agents

Query the NASA Exoplanet Archive with ADQL over TAP, run synchronous or asynchronous jobs, fetch async results by job id, list available tables, and pull rows from a named table with the legacy nstedAPI endpoint.

## Scope

Does not modify data, run non-astronomy queries, or cover positional ephemerides. Use for querying the NASA Exoplanet Archive's tables only.

## Capabilities

- Run a synchronous ADQL query against the archive over TAP
- Submit an asynchronous ADQL query as a job
- Retrieve an asynchronous job and its results by job id
- List the tables available through the TAP service
- Pull rows from a named table with column, filter, and cone-search options

## Use cases

### AI agent astronomy data query

An AI agent answering questions about exoplanets can pull grounded rows from the archive on demand. Through Jentic the agent searches by intent and runs an ADQL query, receiving structured table rows it can cite rather than relying on memory. No credential is involved, so the agent reads open scientific data directly.

Example prompt: Use Jentic to search 'query the exoplanet archive', call GET `/TAP/sync` with an ADQL query and format json, and return the matching planet rows.

### Asynchronous bulk query

A large query that would time out synchronously can run as a job. The agent submits an async query, then retrieves the job and its results by job id once it completes, letting a data workflow pull large result sets without holding a connection open.

Example prompt: Submit a query via POST `/TAP/async`, poll GET `/TAP/async/{jobId}`, then read the rows from GET `/TAP/async/{jobId}/results/result.`

### Cone search by sky position

A positional lookup finds records near a point on the sky. The agent calls the legacy nstedAPI endpoint with a table name, a right-ascension and declination, and a radius to return rows within that region for a targeted survey.

Example prompt: Call GET `/cgi-bin/nstedAPI/nph-nstedAPI` with a table, ra, dec, and radius to return rows near that sky position.

### Table discovery

Before writing a query, an agent needs to know which tables and columns exist. It lists the available tables through the TAP service and then composes an ADQL query against the right one, keeping queries valid without a hand-maintained schema.

Example prompt: Call GET `/TAP/tables` to list available tables, then run a matching ADQL query with GET `/TAP/sync.`

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/TAP/sync` | Run a synchronous ADQL query |
| POST | `/TAP/async` | Submit an asynchronous ADQL query job |
| GET | `/TAP/async/{jobId}` | Get an async job by id |
| GET | `/TAP/async/{jobId}/results/result` | Get the results of an async job |
| GET | `/TAP/tables` | List the available tables |
| GET | `/cgi-bin/nstedAPI/nph-nstedAPI` | Query a named table with the legacy nstedAPI endpoint |

## Key resources

- **TAP Sync** — Synchronous ADQL query execution
- **TAP Async** — Asynchronous ADQL query jobs and their results
- **Tables** — The tables available through the TAP service
- **nstedAPI** — Legacy table query with column, filter, and cone-search options

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 69 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 93 / 100
  - Developer Experience & Jentic Compatibility: 59 / 100
  - AI-Readiness & Agent Experience: 50 / 100
  - Agent Usability: 94 / 100
  - Security: 100 / 100
  - AI Discoverability: 68 / 100
- **View full report:** https://jentic.com/apis/caltech.edu/caltech/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** The Exoplanet Archive TAP endpoints declare no credential in their spec, so there is nothing to authenticate by hand. Through Jentic you install once, import the archive from the API Directory, and your agent runs ADQL queries against exoplanetarchive.ipac.caltech.edu.
- **Permission scoping:** The archive carries the query in the request parameters rather than the URL path, so a rule bounds which operations your agent may call. You allow the read-only query and table-list operations and leave async job submission out unless you add it.
- **Credential handling:** These endpoints require no credential in their OpenAPI spec, so there is nothing to hold. Your agent reads open scientific data, and no secret ever enters its prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'query exoplanets' or 'list available tables', and Jentic returns the matching TAP operation with its input schema so the agent runs the right query without browsing the reference docs.

## Related APIs

- **AstronomyAPI** — AstronomyAPI returns positions and events for solar-system and celestial bodies
- **NASA APOD** — NASA's Astronomy Picture of the Day returns a daily astronomy image and explanation
- **The Space Devs** — The Space Devs reports spaceflight launches, events, and agencies

## FAQ

### Is there a NASA Exoplanet Archive TAP API MCP server?

You don't need an MCP server to give your agent the Exoplanet Archive. Jentic connects it directly from the API Directory: import it and your agent calls the query operations. That keeps your agent's context free of an extra server's tool definitions.

### What authentication does the NASA Exoplanet Archive TAP API use?

None. Its OpenAPI spec declares no authentication, so the query endpoints are open. Through Jentic your agent calls them directly, and there is no secret to hold or inject.

### Can I query exoplanet data with the NASA Exoplanet Archive TAP API?

Yes. GET `/TAP/sync` runs a synchronous ADQL query and returns matching rows, and GET `/TAP/tables` lists the tables you can query so you compose a valid query against the right one.

### How do I run a query through Jentic?

Search Jentic for 'query the exoplanet archive', load the input schema, and execute GET `/TAP/sync` with an ADQL query. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I limit what my agent is allowed to do with the NASA Exoplanet Archive TAP API?

Yes. Write a rule that allows only the synchronous-query and table-list operations, so the agent can read data and discover tables and nothing else, and every call it makes is logged. Submitting async jobs stays out unless you add that operation.
