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, andlist_accountsMCP 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
agentidskill (postnuvia-agentidon 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, withoutupdated_at.POST /v0/providers/{provider_id}/connectworks for any registered provider with a sign-in entry point, listed or not.GET /v0/providersandGET /v0/providers/searchstill 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_atonPOST /v0/api-keys,POST /v0/pods/{pod_id}/api-keys, andPOST /v0/inboxes/{inbox_id}/api-keyswhen 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_atreturns403. - The create response now lists
expires_atwhen the new key has one. - Once a key’s
expires_atpasses, 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.
