Skip to content

Skills for AI Agents

A CLI-first capability map and decision tree for LLM-based callers. Read this before making your first request — it is shorter than the reference docs and will save you from probing endpoints that are empty by design.

If you are the developer wiring an agent up to e-Próspera, paste this page (or /llms-full.txt) into your agent's system prompt or skill folder.

Official CLI: Honduras-Prospera-inc/eprospera-cli.

TL;DR — what an agent must internalize before the first call

  • Use the CLI first when shell access is available: eprospera --json --yes <group> <command>.
  • Docs, in order: CLI (install, auth, exit codes) → Agent Keys (credentials & scopes) → Conventions (HTTP rules) → this page (capabilities & dead ends) → Agent recipes (copy-paste workflows).
  • Every Agent Key request is scope-checked. CLI exit code 4 or HTTP 403 means the key is missing the scope, not that the resource is absent.
  • A 404 / CLI exit code 5 from legal-entity reads usually means "created outside the API", not "no such entity." Agent Keys can only see API-created records — see Why your call might return empty.
  • There are no webhooks. Use eprospera application watch <id> --timeout 30m or poll the direct API — see Polling, not webhooks.

Invocation Rules

Prefer this shape for automation:

bash
eprospera --json --yes <group> <command>
  • Parse stdout as JSON. Treat stderr as diagnostics.
  • Use --raw when compact single-line JSON is better.
  • Use --fields id,statusId,name to reduce read responses.
  • Use --dry-run before write commands while constructing request files.
  • Put credentials in --api-key, EPROSPERA_API_KEY, or auth login; never echo tokens.
  • Use EPROSPERA_ENV=staging for staging checks.
  • Use direct HTTP only when the CLI does not cover the task or you are implementing your own client.

CLI Capability Matrix

I want to…RunCredentialsRequired scopeCommon dead-end
Confirm an RPN existseprospera --json entity verify <rpn>sk-, ak-agent:verify_rpnRPN must be 14 digits starting with 8 or 9.
Search the registryeprospera --json entity search "<query>"sk-, ak-agent:registry.searchEmpty results are not a bug; broaden or simplify the query.
Fetch one legal entityeprospera --json entity get <id>sk-, ak-agent:entity.readAgent Keys see only API-created entities.
Fetch entity documentseprospera --json entity documents <id>sk-, ak-agent:entity.documents.readSame API-created-entity limitation.
List API-created applicationseprospera --json application listsk-, ak-agent:entity.application.readPortal-created applications are invisible to Agent Keys.
Create an LLC applicationeprospera --json --yes application create --file application.jsonsk-, ak-agent:entity.application.createJSON fails schema validation, or AOC was not pre-accepted.
Pay with vouchereprospera --json --yes application pay <id> --voucher <code>sk-, ak-agent:entity.application.payVoucher must fully cover the invoice.
Watch for approvaleprospera --json application watch <id> --timeout 30msk-, ak-agent:entity.application.readRejected/payment-failed states are terminal.
Read the owner's profileeprospera --json me profileak-, OAuthagent:person.details.read / eprospera:person.details.readStandard sk- keys are not valid for me commands.
Read residency statuseprospera --json me residencyak-, OAuthagent:person.residency.read / eprospera:person.residency.readMissing residency-read scope.
Read ID-verification artifactseprospera --json me id-verificationak-, OAuthagent:person.id_verification.read / eprospera:person.id_verification.readSigned URLs expire; download promptly.

Direct HTTP Mapping

When you cannot use the CLI, call the underlying endpoints directly. All paths are relative to https://portal.eprospera.com in production or https://staging-portal.eprospera.com in staging.

CLI commandDirect endpoint
entity verify <rpn>POST /api/v1/verify_rpn
entity search "<query>"POST /api/v1/registries/legal_entities/search
entity get <id>GET /api/v1/legal_entities/{id}
entity documents <id>GET /api/v1/legal_entities/{id}/documents
application listGET /api/v1/legal_entity_applications
application create --file application.jsonPOST /api/v1/legal_entity_applications
application get <id> / application watch <id>GET /api/v1/legal_entity_applications/{id}
application pay <id> --voucher <code>POST /api/v1/legal_entity_applications/{id}/pay/voucher
me profileGET /api/v1/me/natural-person
me residencyGET /api/v1/me/natural-person/residency
me id-verificationGET /api/v1/me/natural-person/id-verification

OAuth-only entity portfolio endpoints (/api/v1/me/legal-entities*) are not covered by Agent Keys. Use the OAuth overview for consent-based user integrations.

Decision Tree — Pick the Right Command

Walk this top-down. Stop at the first row that matches your goal.

  1. You need to store or inspect credentials.eprospera auth login, eprospera --json auth whoami, or eprospera --yes auth logout.

  2. You have an RPN string and want to know if it is real and active.eprospera --json entity verify <rpn>.

  3. You have a human-readable name or partial RPN and want to find the entity.eprospera --json entity search "<query>". If results are empty, broaden the query — do not retry the same input.

  4. You have a legal-entity ID that your own agent created earlier.eprospera --json entity get <id>.

  5. You have a legal-entity ID from outside this API.Not reachable with an Agent Key. Use OAuth and /api/v1/me/legal-entities/{id}, or ask the owner to form/manage the entity through the API. Do not retry the Agent Key call.

  6. You want data about the human who owns the Agent Key or OAuth credential.eprospera --json me profile, me residency, or me id-verification with the matching scope.

  7. You want to incorporate a new LLC. → See Recipe 2. Confirm MoW, pre-accepted AOC, and a fully covering voucher before the agent starts.

  8. You want to know when an application is approved.eprospera --json application watch <id> --timeout 30m.

  9. You need exact wire-level request and response shapes. → Use the direct HTTP reference pages.

Why Your Call Might Return Empty

Read this section any time a response is unexpectedly empty, 404, CLI exit code 5, 401, 403, or CLI exit code 4. Most of these are by design, not bugs.

SymptomCauseFix
application list returns { "data": [] }Agent Keys see only API-created applications (createdViaAPI: true). Applications started in the portal are invisible.Restart through the API/CLI, or have the owner finish it in the portal.
entity get <id> exits 5 or HTTP returns 404Either the entity does not exist, or it was created outside the API and is invisible to Agent Keys.Use OAuth and /me/legal-entities/{id} if the owner must share non-API-created entities.
/me/legal-entities* returns 401You sent an Agent Key (ak-...). This route family is OAuth-only.Switch to an OAuth access token.
Any command exits 4 or HTTP returns 403The Agent Key is missing the required scope, or MoW was revoked.The owner must create a new key with the needed scope.
application create returns nextSteps.signatureThe Agreement of Coexistence was not pre-accepted.The owner opens the signature URL once in a browser. Future creates of that residency type can be headless.
Any command exits 7 or HTTP returns 429Per-key rate limit. verify_rpn and registry search are capped at 50/minute and 5,000/day.Respect Retry-After and back off.
Search returns { "results": [] }Query was too narrow or used punctuation the registry does not index.Reduce to the most distinctive single word.
entity verify returns "not_found"The RPN string is malformed or unknown.Treat as terminal; do not retry the same RPN.

Polling, Not Webhooks

There are no webhook callbacks today. Prefer the CLI watcher:

bash
eprospera --json application watch <application-id> --timeout 30m

Direct HTTP callers should poll GET /api/v1/legal_entity_applications/{id} every 30 seconds for the first 2 minutes, then back off to every 5 minutes. Approved and Rejected are terminal — stop polling.

Machine-Readable Resources

If your agent has fetch capability, ingest these instead of scraping rendered pages:

Where To Go Next

  • Use the CLI: CLI — install, authenticate, command matrix, exit codes.
  • Pick credentials: Agent Keys — what they are, who can issue them, scope reference, limitations.
  • Copy a workflow: Agent recipes — CLI and HTTP flows for registry lookup, automated LLC incorporation, and profile reads.
  • Build direct HTTP clients: Conventions and the reference pages.
  • Sign in with e-Próspera: OAuth overview.