Skip to navigation

Summary

Ask Claude, ChatGPT, Cursor, Claude Code, or Codex to “create an account at Firecrawl for my agent” and it does, using an PostNuvia inbox as the agent’s identity through AgentID. A new guide walks through creating accounts, getting API keys, and checking where your agent has accounts, and the PostNuvia plugin ships a skill for it. A provider that is registered but not listed in the catalog can also be read and connected by its ID.

What’s new?

New docs and tooling:

  • AgentID in Claude, ChatGPT, and Cursor: set up each assistant, then create accounts, find a provider for a need, get an API key, and list accounts with the list_providers, search_providers, get_provider, connect_provider, and list_accounts MCP tools.
  • ChatGPT setup on the MCP page, using developer mode and OAuth.
  • The PostNuvia plugin for Claude Code, Cursor, and Codex (0.4.0) adds the agentid skill (postnuvia-agentid on skills.sh).

Unlisted providers by ID:

  • GET /v0/providers/{provider_id} returns the ID and name of a registered provider that the catalog does not list, without updated_at.
  • POST /v0/providers/{provider_id}/connect works for any registered provider with a sign-in entry point, listed or not.
  • GET /v0/providers and GET /v0/providers/search still return catalog entries only.

Use cases

  • Give your agent its own Firecrawl, search, or database account from the assistant you already use, without a sign-up form or password.
  • Audit which inboxes hold accounts at which providers without writing code.
  • Connect an inbox to a provider that shared its ID with you before it appears in the catalog.

See AgentID in Claude, ChatGPT, and Cursor for the full walkthrough.


Summary

The API reference now documents expires_at on bearer API key creation. The API already accepted it: give an agent a key that stops working on a set date, so short-lived work never leaves a standing credential behind.

What’s new?

  • expires_at on POST /v0/api-keys, POST /v0/pods/{pod_id}/api-keys, and POST /v0/inboxes/{inbox_id}/api-keys when creating a bearer key. It must be in the future and cannot be changed afterward.
  • Omitted, the new key inherits the expiry of the key that created it. A key cannot create a bearer key that outlives it: a later expires_at returns 403.
  • The create response now lists expires_at when the new key has one.
  • Once a key’s expires_at passes, requests made with it are rejected within about five minutes.

Use cases

  • Build agents that hand a subagent a key which expires when its task window ends.
  • Issue time-boxed keys for trials, contractors, or CI jobs without scheduling a cleanup.

See Create API Key in the API reference.