# Add an Action from an OpenAPI schema

> Paste or upload an API's OpenAPI schema, check what Chirp Builder read from it, and fix the messages you might see.

Source: https://www.chirpbuilder.com/help/actions/add-from-schema  
Plans: Essentials, Creator, Business, Academy  
Last checked: 2026-10-27

When you're done, your Chirp has an Action for the API, ready to test.

**Who can do this:** the account owner on any plan, and workspace admins and editors.

## Add it

1. In the editor, open **7. Actions** and click **Add an Action**. (A Chirp with no Actions opens the box
   by itself.)
2. On **Paste a schema**, paste the API's OpenAPI schema (1), or click **Upload a .json or .yaml file**.
   For a Custom GPT, copy it from the GPT's Configure tab, **Actions**, the action, **Schema**. OpenAPI 3.0
   and 3.1, in JSON or YAML, up to 1 MB.

   ![The Add an Action box with the Paste a schema tab open: the box for the OpenAPI schema (1), Upload a .json or .yaml file, and Import (2).](https://mjmtbasmrtksluvlnema.supabase.co/storage/v1/object/public/help-media/web-optimized/actions/add-from-schema/SS-ACT-010-01__add-form__essentials__desktop__v01.webp?v=d9169c08ab)

3. Click **Import** (2). A message says how many operations can run now, and the new Action opens.

## Check what was read

The new Action shows a status:

- **Ready:** the Chirp can use it.
- **Needs an API key:** add the key. **Needs sign-in settings:** the API needs a key but
  **Authentication** is on **None**, so choose **API key** there first, then add the key. See
  [Add the API key an Action needs](https://www.chirpbuilder.com/help/actions/api-key).
- **Check the notes:** something was left out, some operations can't run, or every operation is switched
  off. Open the Action and read **From the import** and the list of operations that can't run yet, each
  with the reason.
- **Last test failed:** the last test didn't work: see [Test an Action](https://www.chirpbuilder.com/help/actions/test).
- **Not supported yet:** none of its operations can run.

A **Not published yet** tag next to it means visitors don't have it yet.

![The US weather and frost alerts Action opened: Ready, 3 of 3 operations on at api.weather.gov, its sign-in set to None, and the three operations that read forecasts and alerts.](https://mjmtbasmrtksluvlnema.supabase.co/storage/v1/object/public/help-media/web-optimized/actions/add-from-schema/SS-ACT-010-02__imported-action__essentials__desktop__v01.webp?v=bb226f3f4e)

The open Action shows its operations, the address it calls and its sign-in. Then test an operation:
see [Test an Action](https://www.chirpbuilder.com/help/actions/test). Visitors get it once you click **Publish changes**.

## What's read from the schema

- The name comes from the schema's title.
- The address comes from its first **servers** entry. It must be a full public https address, and any
  variables in it need default values.
- Each operation (each GET, POST and so on) becomes something the AI can use, named after its
  operationId, with its summary and description telling the AI what it does.
- How the key is sent comes from the schema's security settings, when it lists them. A schema that signs
  each visitor in (OAuth) is added without sign-in for now, with a note: that's coming soon.
- Operations that read data are on and run straight away.
- Operations that change data are on and ask the visitor first. A GPT schema can mark one
  `x-openai-isConsequential: false`: that one runs without asking, and you can switch asking back on:
  see [Choose operations, and when visitors confirm first](https://www.chirpbuilder.com/help/actions/operations-and-confirming).
- Operations that look like payments can't run: those whose name, path or summary use words like pay,
  charge, checkout, refund, transfer or buy. This goes by the words, so an operation that spends money
  under another name (say, createOrder) isn't caught. Keep asking first on for it, or switch it off.
- A Chirp can have 30 operations switched on at once. Past that, the rest are imported switched off, and
  a message lists them.

A schema can't be read from a web address; paste it or upload the file.

## If it doesn't work

- **"This doesn't look like an OpenAPI schema: it has no "openapi" version line."** Check you copied
  the schema, not something else.
- **"This is a Swagger 2.0 schema. Convert it to OpenAPI 3"**: for example with the converter at
  converter.swagger.io, then paste it again.
- **"OpenAPI … isn't supported yet. Use OpenAPI 3.0 or 3.1."**
- **"The schema isn't valid JSON: …"** or **"The schema isn't valid YAML: …"**: check you copied all
  of it.
- **"The schema must be an OpenAPI document (an object with openapi, info and paths)."**
- **"The schema has no paths, so there's nothing for the Chirp to call."** or **"The schema's paths have
  no operations (get, post and so on)."**
- **"The schema uses YAML tags that aren't allowed. Remove the lines starting with !! or !."**
- **"The schema has no servers entry. Add servers with the API's full https address."** (shown for each
  operation that can't run)
- **"The server address … must use https."** or **"… must be a full address like
  https://api.example.com."** (shown for each operation that can't run)
- **"The schema is too large (… KB). Schemas can be up to 1 MB."**, or for an upload, **"That file is
  larger than 1 MB."**
- **"A Chirp can have up to 10 Actions. Remove one first."**
- **An operation can't run:** its reason is listed under the Action, such as a sign-in method or file
  upload that isn't supported. See [What Actions can't do yet](https://www.chirpbuilder.com/help/actions/limits).
