AstroWay/api v2.201.7 · sdks
all systems operational

// sdk · official clients

SDKs for TypeScript, Python, PHP.

Official clients with full typing, retry logic, intelligent rate-limiting. Send a request in 4 lines of code - no manual cURL or headers. In the works: Go, Ruby, Rust. All generated from OpenAPI 3.1.

Released

// maintained by AstroWay · same-day OpenAPI sync
mcp-hosted released

Hosted MCP - zero-install for Claude Web / Desktop / Cursor

Hosted Streamable HTTP endpoint at mcp.astroway.info/mcp - same 700+ tool catalogue as the npm package, no local install. One URL, one Bearer header, and your AI client sees the entire AstroWay ecosystem. Multi-tenant: credits draw from the account that owns your Bearer key.

https://mcp.astroway.info/mcp read SDK guide →
mcp released

MCP server (stdio) for Claude / Cursor / GPT

Official @astroway/mcp: exposes every one of the 700+ AstroWay API endpoints as tools for AI agents. Works with Claude Desktop, Cursor, GPT MCP clients. Stdio mode - your key stays on your machine, no network hops. For zero-install scenarios use the hosted endpoint instead.

npx -y @astroway/mcp read SDK guide →
typescript released

TypeScript SDK for the AstroWay API

Official @astroway/sdk - thin wrapper over openapi-fetch (~6 KB runtime). Path autocomplete + request/response types in your IDE for all 760+ endpoints. Stainless-style error hierarchy, built-in retry on 408/409/429/5xx, OIDC + SLSA L3 provenance.

npm install @astroway/sdk read SDK guide →
python released

Python SDK for the AstroWay API

Official astroway on PyPI - Astroway (sync) + AsyncAstroway (async) on top of httpx. Identical surface - the same API on both clients. Stainless-style error hierarchy, retry on 408/409/429/5xx, PEP 561 typed package. Python 3.9+, Trusted Publisher OIDC.

pip install astroway read SDK guide →
php released

PHP SDK for the AstroWay API

Official astroway/sdk on Packagist - built on Guzzle 7 + PSR-18. PHP 8.1+ (readonly properties, constructor promotion). Stainless-style error hierarchy, built-in retry middleware on 408/409/429/5xx, two auth schemes (X-Api-Key default or Bearer).

composer require astroway/sdk read SDK guide →
react released

React companion for @astroway/sdk

Official @astroway/react on npm - a thin Stripe-style wrapper over @astroway/sdk. AstrowayProvider lifts the client into React context; useAstroway, useAstrowayQuery, useNatalChart hooks return an SWR-style { data, error, loading } triple with zero external deps. Works with React 18+, Next.js App Router (via "use client"), Vite, CRA.

npm install @astroway/react @astroway/sdk react read SDK guide →
symfony released

Symfony Bundle for the AstroWay API

Official astroway/sdk-symfony on Packagist - a Bundle on top of astroway/sdk. Auto-registers via Symfony Flex, configured through the standard config/packages/astroway.yaml, exposes an autowireable Astroway\Astroway service for injection into any controller or service. Compatible with Symfony 6.4 LTS and 7.x, PHP 8.1+.

composer require astroway/sdk-symfony:^0.1.0-alpha read SDK guide →
laravel released

Laravel ServiceProvider for the AstroWay API

Official astroway/sdk-laravel on Packagist - a ServiceProvider + facade on top of astroway/sdk. Auto-discovered via composer.json extra.laravel.providers, Astroway\Astroway registered as a container singleton, config published via php artisan vendor:publish. Inject into controllers or use the facade Astroway::post("/chart", ...). Works with Laravel 10/11/12, PHP 8.1+.

composer require astroway/sdk-laravel:^0.1.0-alpha read SDK guide →

4 lines to your first request

// TypeScript · same pattern in Python, PHP, Laravel, Symfony, React
npm install @astroway/sdk full example →
import { Astroway } from '@astroway/sdk';

const aw = new Astroway({ apiKey: process.env.ASTROWAY_API_KEY! });

const { data: chart } = await aw.client.POST('/chart', {
  body: {
    date: '1990-07-14',
    time: '14:30:00',
    timezoneOffset: 3,
    latitude: 50.4501,
    longitude: 30.5234,
    houseSystem: 'P',
  },
});

// aw.client.POST is the raw typed fetch, so `chart` is the { ok, data } envelope
console.log(chart.data.houses.ascendant);  // 212.0952574979425

Coming soon

// roadmap · we'll notify when it ships

Bring your own wrapper

// OpenAPI 3.1 · your language, your conventions

Don't see your language on the list? Every endpoint is described in standardized OpenAPI 3.1 spec - generate your own client through openapi-generator or stainless.