const prompt = buildPrompt(input);
const res = await model.complete(prompt);
let data = JSON.parse(res.text);
if (!schema.check(data)) {
  return handleInvalid(data);
} // ... and ~90 more lines
easybits
Why easybits How it works Tasks Get early access
Building in n8n? Every task runs from one verified node on your canvas. See the n8n page
For developers

One API. Every AI feature your app needs.

easybits is the orchestration layer for AI models. Set up the task you need without writing code, then call it from your app with a single request. No prompt chain to build, no parser to maintain.

You are in. We will email you the moment we open the doors.
That did not go through. Please try again, or write to support@easybits.tech.
One REST endpoint No-code setup Structured output
The Difference
Before · your old setup
const prompt = buildPrompt(input); const res = await openai.chat.create({ model: "gpt-4o", messages: [{ role: "user", content: prompt }], response_format: { type: "json_object" } }); let data; try { data = JSON.parse(res.output); } catch { return handleInvalid(res.output); } ... plus model choice, evals and versioning
Prompt, schema, model choice and versioning, all on you
After · easybits
const res = await fetch( "https://platform.easybits.tech/api/pipelines/" + id, { method: "POST", headers: { Authorization: `Bearer ${key}` }, body: JSON.stringify({ files: [fileUrl] }) } );
Configured and versioned on the platform, not in your code
The benefits

Why developers build with easybits

Simpler setup

One request replaces your old setup. Prompts, schemas and models are configured on the platform.

Faster changes

Edit a prompt or swap the model on the platform. It goes live without a deploy on your side.

Cleaner output

Data comes back in the structure you defined, so it maps directly onto your types.

How it works

Four simple steps

Set it up once, then call it from anywhere.

01
Pick a task Start from the job, not a blank prompt. Select built-in AI tasks like classification or extraction.
Pick a task
01
Pick a task Start from the job, not a blank prompt. Select built-in AI tasks like classification or extraction.
02
Choose a model Pick one of three recommended models. Ship immediately without model research.
Choose a model
02
Choose a model Pick one of three recommended models. Ship immediately without model research.
03
Configure your task Set your labels, guidelines, schemas and output fields without writing code.
Configure your task
03
Configure your task Set your labels, guidelines, schemas and output fields without writing code.
04
Call it from your app One POST to your pipeline. Structured output comes back. Works with any language or framework.
app.jsYour app
const res = await fetch(url, {
  method: "POST",
  headers: { Authorization: `Bearer ${key}` },
  body: JSON.stringify({ files: [fileUrl] })
});

const { fields } = await res.json();
04
Call it from your app One POST to your pipeline. Structured output comes back. Works with any language or framework.
Pick a task
app.js Your app
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
const res = await fetch( "https://platform.easybits.tech/api/pipelines/" + id, { method: "POST", headers: { Authorization: `Bearer ${key}` }, body: JSON.stringify({ files: [fileUrl] }) } ); const { fields } = await res.json();
200 OK fields{}confidencesource_page
The task list

The most popular tasks at launch

Each one is a single call from your app. You configure it once on the platform, and the same call works from any language or framework.

One request
POST /api/pipelines/<pipeline_id>
{ "text": "<your material here>", "question": "<your question>" }
200 OK
answer · passage · confidence

Answers a question using only the material you pass in, and returns the passage it drew on.

One request
POST /api/pipelines/<pipeline_id>
{ "text": "<your text here>" }
200 OK
label · confidence · alternatives[]

Sorts a ticket, an email or a message into labels you define, with a confidence score.

One request
POST /api/pipelines/<pipeline_id>
{ "files": [ "<file url here>" ] }
200 OK
fields{} · confidence · source_page

Pulls named fields from a receipt, invoice or CV into clean JSON.

One request
POST /api/pipelines/<pipeline_id>
{ "files": [ "<audio url here>" ] }
200 OK
transcript · segments[] · language

Turns a recording or a voice note into text, with timings and the language it detected.

One request
POST /api/pipelines/<pipeline_id>
{ "text": "<your text here>" }
200 OK
summary · key_points[] · length

Condenses a long document or thread down to the points that matter.

One request
POST /api/pipelines/<pipeline_id>
{ "text": "<your text here>", "voice": "calm" }
200 OK
audio_url · duration · voice

Reads text back as an audio file, in the voice and pace you pick.

One request
POST /api/pipelines/<pipeline_id>
{ "prompt": "<your brief here>" }
200 OK
text · format · finish_reason

Writes new copy from your brief, in the format and tone you set.

One request
POST /api/pipelines/<pipeline_id>
{ "text": "<your text here>", "target_language": "de" }
200 OK
translation · source_language · kept_terms[]

Moves text between languages while leaving names, codes and formatting alone.

One request
POST /api/pipelines/<pipeline_id>
{ "files": [ "<image url here>" ] }
200 OK
description · objects[] · text_found

Reads a photo or a screenshot and returns what is in it, along with any text it contains.

One request
POST /api/pipelines/<pipeline_id>
{ "text": "<your text here>" }
200 OK
redacted_text · found[] · categories[]

Finds names, addresses and account numbers and masks or removes them.

One request
POST https://platform.easybits.tech/api/pipelines/<pipeline_id>
Authorization: Bearer eb_live_••••
200 OK
Answer from context

Answers a question using only the material you pass in, and returns the passage it drew on.

Models

No model research needed

You never have to compare models. Each task already has one selected, and two recommended alternatives sit next to it.

We keep that list current. When a model is retired or a better one appears, we swap it and your integration keeps running.

Default One model, already selected
We pick the model that performs best for this kind of task, so you can ship without choosing.
Recommended Two recommended alternatives
Two more models we recommend for the same task. Switching is one click. The output shape stays the same.
Invite only

Get exclusive early access

We will onboard an exclusive group of developers first, with a direct line to the team while we shape the platform. Leave your email and we will send your invite.

You are in. We will email you the moment we open the doors.
That did not go through. Please try again, or write to support@easybits.tech.