# AX Check: astronomer.io
Checked 2026-11-10.

Astronomer's docs, pricing, and CLI quickstart are agent-ready.
22 of 23 checklist items passed, including stated per-hour pricing and a fully actionable CLI quickstart with no login wall.

## Onboarding needs a login

## Coding sessions
All three independent sessions completed the task and reviewed pricing successfully, each quoting the same public per-hour rates (Developer $0.35/hr, Team/Business $0.42/hr, workers from $0.13/hr) straight from the pricing page without hitting any login or paywall.

### DeepSeek V4.1 Flash
[View public run](https://agents.withgauge.com/p/runs/3a85186f-d28d-4969-ac6c-e348c6cb3501) · [Read transcript](https://www.ax-check.com/astronomer.io/sessions/deepseek.json)
Quoted rates from the fetched pricing page and tied them to plan (Developer $0.35/hr, Team $0.42/hr), always-on deployments, worker sizes A5–A160 from $0.13/hr with scale-to-zero, and networking pass-through (seq 29, seq 89)
#### End-to-end onboarding
- **End-to-end onboarding not demonstrated**: No credentials were obtained during the session (no signup or token-issuance flow was executed), and no authenticated call to api.astronomer.io was made. The agent only probed the API unauthenticated (confirming 403s) and read public docs/OpenAPI spec. It explicitly stopped rather than attempting to acquire an Astro account/API token, so onboarding was never attempted to completion.
  Event 22:

  ```text
  https://api.astronomer.io/v1alpha1/organizations        403
  https://api.astronomer.io/v1/organizations              403
  ```
  Event 89:

  ```text
  `api.astronomer.io` returns **403 unauthenticated**; the API requires an Astro account + JWT bearer token, and none exists in this environment.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **Astro API requires account signup and JWT token the agent could not self-provision**: The Astro control-plane API (api.astronomer.io/v1) is documented with bearer JWT auth. The sandbox has no Astro account or token, and creating one requires an interactive signup flow. This is a credentials limitation of the test environment, not a product defect — the API is working as designed (403 on unauthenticated calls).
  Event 22:

  ```text
  https://api.astronomer.io/v1alpha1/organizations        403
  https://api.astronomer.io/v1/organizations              403
  ```
  Event 48:

  ```text
  SECURITY SCHEMES:
   securitySchemes:
      JWT:
        scheme: bearer
        type: http
  ```
- **Official quickstart requires a local Docker-based Airflow stack**: The documented 'get started' path for Astro runs `astro dev start`, which spins up a local containerized Airflow (ports 8080/5432) and can take minutes — explicitly out of scope per the task's instruction to avoid local service stacks and long-running commands. This is expected product behavior (local dev is Docker-centric by design), not an agent error.
  Event 77:

  ````text
  1. Run the following command in the root of the cloned folder to start the quickstart:
  
     ```sh wrap theme={null}
     astro dev start
     ```
  ````
- **Hosted no-CLI path requires interactive signup and GitHub integration**: The alternative to local Docker is an interactive free-trial signup, manual deployment creation in the Astro UI, forking a GitHub repo, and configuring a GitHub integration — none of which the agent could drive non-interactively or without human-provided credentials.
  Event 82:

  ```text
  1. Sign up for a free trial of [Astro](https://www.astronomer.io/lp/signup/).
  
  2. [Create a new Deployment](https://astronomer.io/docs/astro/create-deployment.md) in your Astro workspace.
  ```

#### Suggested Changes
- **Add a token-based quickstart path for the Astro API docs page**: The /astro/astro-api docs URL referenced in the site's own navigation config (docsConfig api.openapi source astro/api/v-1/openapi.yaml) 404s, forcing the agent to reconstruct the real spec location via trial and error. Publish a working landing page at that path (or redirect it) that links directly to the openapi.yaml and explains how to obtain a JWT token for programmatic use, so agents/developers restricted to the hosted API (no local Docker) have an actionable path. Verify by requesting https://docs.astronomer.io/astro/astro-api and confirming it no longer returns 404.
  Event 36:

  ```text
  "pageMetadata":{"title":"Page Not Found","mode":"custom","robots":"noindex, nofollow","noindex":true},"notFound":true
  ```
- **Mark astro-sdk-python as deprecated in PyPI metadata and search results**: The PyPI package still installs cleanly and shows no deprecation warning in its index metadata or Requires-Dist fields; the deprecation notice only appears deep in the README body. Add a deprecation classifier/warning to the package metadata (or yank/flag the release on PyPI) so `pip index versions astro-sdk-python` or `pip install` surfaces the May 2025 discontinuation immediately instead of requiring developers to unzip and read the full README.
  Event 59:

  ```text
  ## ⚠️ Discontinuation of project
  > This project is no longer actively maintained by Astronomer, but we'd love to see it live on in the community. It has been deprecated since May 2025.
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/0136e56f-196b-4602-b43b-7d1a1792ef41) · [Read transcript](https://www.ax-check.com/astronomer.io/sessions/kimi.json)
Quoted fetched per-hour rates by plan/size (Developer $0.35/hr, workers from $0.13/hr) and estimated monthly cost assuming a small always-on Developer deployment with modest worker usage (seq 14, seq 21, seq 38)
#### End-to-end onboarding
- **Onboarding needs a login**: The agent never obtained product credentials on its own or performed any authenticated operation against the hosted Astro product. It only fetched the public pricing page and wrote local DAG/README files. It explicitly stopped at the sign-up/login wall and asked the human to create a trial account and supply a token.
  Event 38:

  ```text
  I **cannot complete the actual deployment** — Astro Cloud has no anonymous or unauthenticated path; deploying requires signing up (even the free trial), creating a workspace/deployment, and running `astro login` with your credentials.
  ```
  Event 38:

  ```text
  If you create a trial account and provide a token (or run `astro login` yourself), I can take it from there: init, deploy, and trigger the DAG via the API.
  ```
  Event 23:

  ```text
  I intentionally did **not** run `astro dev start`: the local dev workflow spins up a Docker stack, which you asked me to avoid.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No self-service path to a hosted Astro deployment**: Deploying to Astro requires creating an account/workspace and running `astro login` with real credentials; there is no anonymous or API-key-only path the agent could use on its own. This is normal product authentication behavior, not a defect, and the session correctly stopped rather than faking success.
  Event 38:

  ```text
  Astro Cloud has no anonymous or unauthenticated path; deploying requires signing up (even the free trial), creating a workspace/deployment, and running `astro login` with your credentials.
  ```
- **Local testing path requires Docker, which was out of scope**: The standard Astro quickstart (`astro dev start`) needs a local Docker stack. Since the task instructions said to avoid starting local service stacks, the agent skipped local testing entirely and only produced deploy-ready files, syntax-checked via `py_compile` rather than run.
  Event 23:

  ```text
  Astronomer's "deploy" path is hosted, but running/testing locally normally requires Docker via the Astro CLI — which you asked me to avoid. So I'll build the deploy-ready project files instead.
  ```

#### Suggested Changes
- **Add a docs-accessible API-token signup flow for CLI-only deploys**: The agent found no way to create an Astro workspace/deployment and authenticate without interactive signup and `astro login`. Consider documenting (on the pricing or quickstart page) a path to obtain a deployable API token without a browser-based login step, and verify by having a non-interactive session obtain a token and successfully run `astro deploy` against it.
  Event 38:

  ```text
  deploying requires signing up (even the free trial), creating a workspace/deployment, and running `astro login` with your credentials
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/059232b7-d0ed-4ce4-bda3-eec71d6ff432) · [Read transcript](https://www.ax-check.com/astronomer.io/sessions/qwen.json)
Quoted figures from the live pricing page with their basis: plan tier ($0.35/hr Developer, $0.42/hr Business), cluster type, worker size (A5–A160 from $0.13/hr), networking pass-through, and a small idle deployment. (seq 19, seq 25)
#### End-to-end onboarding
- **Onboarding needs a login**: The agent checked for Astronomer credentials in environment variables and ~/.astro config, found none, and confirmed the hosted API rejects unauthenticated requests. It explicitly stopped rather than fabricating a workflow, stating it needed a human-supplied Personal Access Token and org/deployment ID to proceed. No authenticated product operation was ever performed.
  Event 23:

  ```text
  RBAC: access denied
  === any token in env/config? ===
  0
  .
  ..
  .cache
  .gauge
  .pi
  .tmp
  repo
  
  ```
  Event 25:

  ```text
  To unblock, I need exactly one thing from you: an Astro Personal Access Token plus your org/deployment ID (or a deployment's Airflow REST endpoint + token). With that, the light path is fully API-driven
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No self-serve credentials for the Astro hosted API**: The agent found zero Astronomer-related environment variables and no ~/.astro config directory, and an unauthenticated GraphQL call to api.astronomer.io returned an RBAC access-denied error. This is a missing-credentials blocker rather than a product defect — Astronomer requires a human to create an account, org, deployment, and Personal Access Token, which is normal gated access, not a bug.
  Event 22:

  ```text
  RBAC: access denied
  ```
  Event 23:

  ```text
  === any token in env/config? ===
  0
  ```
- **Local quickstart requires a long-running Docker stack, excluded by test constraints**: The agent identified that the documented local quickstart path (astro dev start) spins up a Docker-based local Airflow stack, which falls under the session's explicit instruction not to start local service stacks or wait on long-running commands. This is a session/environment constraint, not a product failure.
  Event 25:

  ```text
  Local quickstart | `astro dev start` = Docker-based local Airflow stack → **excluded by your constraint**
  ```

#### Suggested Changes
None identified in this transcript.

### Task given to each agent
Help me build a simple example using Astronomer. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.

No product credentials were supplied and no purchases were authorized.

## Score: A · 100/100 (provisional)
Grades come from completed site checks. Coding sessions and skipped checks do not affect the score.

### Clarity
- **Pass** — Homepage answers Markdown requests

  ```text
  Homepage returned text/markdown with Accept: text/markdown, confirming content negotiation support.
  ```

- **Pass** — llms.txt provides an actionable documentation index

  ```text
  llms.txt links docs, API reference, OpenAPI, MCP card, skills index, and blog archive.
  ```

- **Pass** — llms.txt provides navigation guidance

  ```text
  llms.txt groups resources under Developer Resources, Blog, and Optional sections with guidance.
  ```

- **Pass** — llms.txt mentions offered API, MCP, and skills

  ```text
  llms.txt lists OpenAPI spec, MCP server card, and agent skills index links.
  ```

- **Pass** — A compact guide representation exists

  ```text
  Astro CLI quickstart is published as standalone Markdown at get-started-cli.md.
  ```

- **Pass** — A focused guide is directly retrievable

  ```text
  Markdown quickstart fetched directly with install, project init, and run steps.
  ```

- **Pass** — Equivalent instructions fit a token budget

  ```text
  Markdown quickstart is 1578 tokens, well under the 8000-token budget.
  ```

- **Pass** — Product-docs links survive format changes

  ```text
  Homepage Markdown keeps docs, CLI, and signup links; docs routes remain reachable.
  ```

- **Pass** — The compact guide is independently actionable

  ```text
  Astro CLI quickstart gives install commands, project init, local run, and next steps.
  ```

- **Pass** — Install and next-step links resolve

  ```text
  Quickstart install and next-step links fetched successfully as Markdown pages.
  ```


### Onboarding
- **Pass** — Docs lead to a relevant quickstart

  ```text
  CLI overview links a Quickstart; get-started-cli gives concrete install, init, and run steps.
  ```

- **Pass** — Installation commands are extractable

  ```text
  Install commands shown for Mac (brew), Windows (winget), and Linux (curl installer).
  ```

- **Pass** — Code examples are available without interaction

  ```text
  Quickstart and install pages show inline shell commands without requiring interaction.
  ```

- **Pass** — Prerequisites and auth boundaries are explicit

  ```text
  Install page lists per-OS prerequisites; llms.txt points to API authentication docs.
  ```


### Pricing
- **Pass** — Pricing is readable without interaction

  ```text
  Pricing page renders plan tiers and component prices as static Markdown, no interaction needed.
  ```

- **Pass** — Prices are stated, not gated

  ```text
  Developer $0.35/hr, Team $0.42/hr, workers from $0.13/hr stated publicly.
  ```

- **Pass** — Pricing units and limits are explicit

  ```text
  Units explicit: per-hour deployment/worker sizes, $2.40/hr dedicated cluster, $1.25/M tokens.
  ```

- **Pass** — Agents identify pricing and its assumptions

  ```text
  3 of 3 sessions were judged on pricing; 0 fell short. DeepSeek V4.1 Flash: Quoted rates from the fetched pricing page and tied them to plan (Developer $0.35/hr, Team $0.42/hr), always-on deployments, worker sizes A5–A160 from $0.13/hr with scale-to-zero, and networking pass-through (seq 29, seq 89) Kimi K3: Quoted fetched per-hour rates by plan/size (Developer $0.35/hr, workers from $0.13/hr) and estimated monthly cost assuming a small always-on Developer deployment with modest worker usage (seq 14, seq 21, seq 38) Qwen 3.8 Max: Quoted figures from the live pricing page with their basis: plan tier ($0.35/hr Developer, $0.42/hr Business), cluster type, worker size (A5–A160 from $0.13/hr), networking pass-through, and a small idle deployment. (seq 19, seq 25) This behavioural item does not affect the fast grade.
  ```


### Activation
- **Pass** — An API reference or OpenAPI spec is reachable

  ```text
  Astro API overview documents REST endpoints and links the downloadable OpenAPI v1 specification.
  ```

- **Pass** — An MCP server is documented and well-formed

  ```text
  MCP server card at /.well-known/mcp/server-card.json declares WebMCP transport and tools capability.
  ```

- **Pass** — A CLI install path is documented

  ```text
  Astro CLI quickstart and install page document brew, winget, and curl install paths.
  ```

- **Skipped** — SDK packages resolve on their registries

  ```text
  No registry lookup result for an Astronomer SDK or packaged CLI appears in the evidence.
  ```

- **Pass** — Agent skills are published

  ```text
  Agent skills index lists two skill manifests, both fetched successfully as SKILL.md files.
  ```



[Full report data](https://www.ax-check.com/astronomer.io/report.json)
