Announcing altengine: App Engine's Search and Channel APIs, revived

Two of App Engine's most useful APIs — Search and Channel — were retired years ago. Today we're bringing them back as clean, drop-in cloud services, on a runtime built for how the web works now.

Why bring back a deprecated API?

App Engine's legacy Search and Channel APIs were quietly great. Search gave you managed full-text indexing with a real query language, facets, and ranking — no cluster to run. Channel gave you a simple way to push realtime messages to clients, without wiring up your own socket infrastructure. Both were well-documented and priced for small apps.

When they were deprecated, the migration paths were heavier, more expensive, or simply different in shape. Plenty of working software was left to either rewrite around a bigger system or freeze.

And in the years since, nothing cheap has really filled the gap for search. The usual options are either running and paying for your own search cluster, or a hosted service whose price climbs steeply once you get past a thousand documents. For a small app, both are overkill. altengine is for everyone who thought: I just want that API back. (We'll dig into the comparison in a future post.)

What's launching today

Search API

Create an index, put structured documents in, and query them with the operators you already know. Text, atom, number, and date fields; fielded queries; facets; sorting; and pagination. The query language stays faithful to App Engine's Search syntax, so your existing queries mostly just work.

GET /v1/search/my-shop/indexes/products/search
    ?q=title:jacket AND price < 150
    &facet=tags&sort=price&limit=20

Channel API

Publish messages from your backend over plain HTTP; clients subscribe over a single WebSocket — one socket can carry many channels — and receive fan-out in realtime. You're billed on the messages delivered and the time subscribers stay connected, so a channel with no one connected costs nothing.

POST /v1/channel/my-shop/publish

{ "channel": "orders",
  "data": { "id": "sku-1024", "status": "shipped" } }

What makes it different

We treat parity as a contract at the API surface. Two things guided the rest:

  • No idle cluster. Unlike cluster-based search, there's nothing running to pay for when you aren't using it — you're billed for the storage your documents and index use, plus the searches you run.
  • Realtime, billed to match. Publish over HTTP and subscribe over one WebSocket that carries many channels. You're billed on message deliveries and connection time, so cost tracks real usage — and a channel with no one connected costs nothing.

Pricing that starts at zero

There's one plan — pay-as-you-go — and the first $1 of usage every month is free for every organization. Search is billed on queries and on storage for your documents and their index (index storage counts only the content you push, so it stays cheap — and there's no idle cluster to pay for); Channel is billed on message deliveries and connection time. No seats, no minimums, and no card required to start. See the pricing page for the rates.

Getting started

  1. Create an organization in the console.
  2. Generate an API key with a grant for Search, Channel, or both.
  3. Point your existing App Engine client at altengine's base URL and credentials.

That's it. If you were using App Engine's Search or Channel service before, you should be up and running in minutes.

What's next

Search and Channel are the first two services, not the last. The platform is built to revive more retired capabilities as demand returns. If there's an API you miss, tell us — it helps us prioritize.

Start free in the console

← Back to the blog