## Shell-only activation
Create a sandbox key with no browser, mailbox, dashboard cookies, or payment instrument. Free sandbox limits are 10/hour and 100/month; activation is limited to 3 activations/hour/IP and 10/day/IP.
curl https://agentinfrastructureco.com/api/v1/activation \
-H "Content-Type: application/json" \
-d '{"agent_name":"shell-buyer-agent","intended_use":"Evaluate AICO from raw HTTP."}'Verify key and quota state
curl https://agentinfrastructureco.com/api/v1/account/me \
-H "$(printf '%s %s' 'Authorization:' "Bearer $AICO_TRAVEL_KEY")"
Look for monthlyRemaining and hourlyRemaining. Upgrade after the account check and first ranked response both work.
## Travel API quickstart
export AICO_TRAVEL_KEY="paste-key-here"
curl https://agentinfrastructureco.com/api/v1/travel/search \
-H "$(printf '%s %s' 'Authorization:' "Bearer $AICO_TRAVEL_KEY")" \
-H "Content-Type: application/json" \
-d '{
"user_request":"Northern California Memorial Day weekend from SFO: food, hiking, recovery, redwoods, coast.",
"origin":"SFO",
"departure_window":["2026-05-22","2026-05-25"],
"trip_length_days":3,
"budget_usd":2500,
"destination_constraints":[{"type":"region","value":"Northern California","hard":true}],
"required_themes":["redwoods","coast"],
"strict_mode":true,
"live_research_mode":"bounded",
"max_live_research_ms":750
}'
# If response.research_status.mode is research_pending, poll the returned job id.
curl https://agentinfrastructureco.com/api/v1/travel/research/jobs/$RESEARCH_JOB_ID \
-H "$(printf '%s %s' 'Authorization:' "Bearer $AICO_TRAVEL_KEY")"Example expected match: Humboldt Redwood Coast. SFO to ACV uses a model_estimate of $520 with 1.4h of travel time. Important request fields: destination_constraints, required_themes, strict_mode.
Agent-friendly aliases: departure_window can also be an object with earliest/latest; destination_constraints can also be an object like { region, city, country, state, hard }. The API normalizes those aliases to the canonical array shapes.
What source/provenance tiers mean: weather snapshots, origin-specific flight profiles, stay-cost ranges, curated_baseline, model_estimate, handoff_required.
## Agent Commerce API quickstart
Used Goods API quickstart
export AICO_GOODS_KEY="paste-key-here"
curl https://agentinfrastructureco.com/api/v1/goods/search \
-H "$(printf '%s %s' 'Authorization:' "Bearer $AICO_GOODS_KEY")" \
-H "Content-Type: application/json" \
-d '{"item_query":"Herman Miller Aeron Size B","providers":["ebay","craigslist"],"location":"sfbay"}'### Deal validation
Hosted MCP exposes the same comps/risk/seller-handoff primitive as goods.deal.validate for agents that prefer tool calls over REST.
curl https://agentinfrastructureco.com/api/v1/goods/deal/validate \
-H "$(printf '%s %s' 'Authorization:' "Bearer $AICO_GOODS_KEY")" \
-H "Content-Type: application/json" \
-d '{"item_query":"Herman Miller Aeron Size B","price_usd":420,"listing_url":"https://sfbay.craigslist.org/example"}'## Skill Search API quickstart
For agents asking “what is the best way to do this?”, return skill/procedure options before execution.
curl https://agentinfrastructureco.com/api/v1/skills/search \
-H "$(printf '%s %s' 'Authorization:' "Bearer $AICO_TRAVEL_KEY")" \
-H "Content-Type: application/json" \
-d '{"query":"best way for an agent to find relevant skills before coding","sources":["vercel_labs_skills","aico_skill_library"],"max_results":5}'Branch on options[].source, options[].provenance, branch_on, limitations, and truth_boundaries. v0 does not execute skills or perform live web search; inspect the selected SKILL.md first.
## Agent Launch Pack API quickstart
For agents launching APIs/tools for other agents: audit owned discovery surfaces, generate starter artifacts, verify after deploy, and separate external-only TODOs that must not be faked.
curl https://agentinfrastructureco.com/api/v1/agent-launch/audit \
-H "Content-Type: application/json" \
-d '{"url":"https://agentinfrastructureco.com","product_type":"agent_api","external_scan_budget":{"provider":"ora","max_active_scans":0}}'
curl https://agentinfrastructureco.com/api/v1/agent-launch/generate \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","product_name":"Example Agent API","capabilities":["OpenAPI","MCP","one-request activation"]}'
curl https://agentinfrastructureco.com/api/v1/agent-launch/verify \
-H "Content-Type: application/json" \
-d '{"url":"https://agentinfrastructureco.com"}'Branch on owned_fixable_gaps, external_only_gaps, truth_warnings, ready_for_external_scan, and should_run_external_scan. v0 performs deterministic owned-surface fetch/marker checks; it does not run external scans or submit registry/package/store/Wikipedia listings.
## Agent Proof Graph API quickstart
For agents deciding whether an entity is ready for Wikipedia, Wikidata, registries, directories, or package ecosystems: preflight the proof graph before drafting or submitting unsupported claims.
curl https://agentinfrastructureco.com/api/v1/proof/notability/preflight \
-H "Content-Type: application/json" \
-d '{
"entity_name":"Agent Infrastructure Co",
"url":"https://agentinfrastructureco.com",
"target_venues":["wikipedia","wikidata","mcp_registry"],
"evidence_urls":["https://agentinfrastructureco.com/docs"],
"claims":["Agent Infrastructure Co offers an Agent Launch Pack API"]
}'Branch on independent_substantial_sources, self_authored_sources, trivial_mentions, claim_graph, venue_readiness, evidence_plan, and safe_next_step. v0 classifies supplied public evidence URLs; it does not create Wikipedia/Wikidata pages, submit registry listings, or certify third-party acceptance.
## API request incentive
curl https://agentinfrastructureco.com/api/v1/api-requests \
-H "$(printf '%s %s' 'Authorization:' "Bearer $AICO_TRAVEL_KEY")" \
-H "Content-Type: application/json" \
-d '{"requested_api_name":"Agent Local Services Availability API","problem":"Agents need reliable service availability evidence before contacting local providers.","urgency":"high","agent_context":"shell"}'Use this after first value when adoption is blocked by a missing primitive. Branch on roadmap_bucket=agent_requested_api and the conditional usage-credit eligibility instead of assuming AICO already supports the requested API.
## Feedback after first value
curl https://agentinfrastructureco.com/api/v1/feedback \
-H "$(printf '%s %s' 'Authorization:' "Bearer $AICO_TRAVEL_KEY")" \
-H "Content-Type: application/json" \
-d '{"request_id":"paste-request-id-here","rating":"partially_useful","issue_categories":["handoff_incomplete"],"chosen_alternative":"generic_search_preferred","notes":"Missing provider field blocked adoption."}'Matched Travel responses include feedback_prompt, and hosted MCP exposes feedback.submit. Use POST /api/v1/feedback when AICO is useful, partially useful, blocked, or loses to another path; categorize blockers such as handoff_incomplete, generic_search_preferred, and pricing_blocked so the next API primitive is driven by buyer-agent evidence.
## Endpoint primitives
Validated primitive chain: activation → travel.intent.parse → travel.destinations.search → travel.places.search → travel.plan.validate → travel.provider_handoffs.generate. live_places evidence supports Point Reyes + Sonoma Coast candidate_intent_coherence while preserving live_booking_inventory: false, provider_backed_rates: false, live_flight_fares: false, booking_supported: false, and branch on match_status before provider fanout.
booking_readiness, provider_handoffs, flight_handoff, hotel_handoff, required_external_checks, bookability_status, requires_live_validation, live_search_or_booking_provider, aggregator_fare_snapshots, not live airfare, unsupported_constraints, why_not_bookable_yet, intelligence_basis, research_status, coverage_mode, evidence[].retrieved_at, evidence[].url, cached_partial, Exa evidence cache, remote_work_fit, remote_work_snapshot, not live internet measurement, family_fit, family_snapshot, party-size costing, event_fit, event_snapshot, accessibility_snapshot, visa_stay_snapshot, multi_city_snapshot
POST /api/v1/travel/searchTravel API: constraint-safe destination ranking, live_places evidence when available, research_status/coverage_mode for bounded arbitrary-destination research, bookability_status, provider-ready handoffs, travel.plan.validate, proposed plan.
GET /api/v1/travel/research/jobs/{id}Poll research_status for arbitrary-destination jobs; partial jobs return cited evidence, completed_categories, pending_categories, cached_partial reuse semantics, and false live_booking_inventory/provider_backed_rates/live_airfare truth boundaries.
GET /api/v1/travel/destinationsDestination baselines with curated_baseline, model_estimate, handoff_required, and confidence provenance tiers.
POST /api/v1/goods/searchAgent Commerce API listing evidence from eBay Browse API where configured and authorized Craigslist snapshots.
POST /api/v1/goods/deal/validateDeal validation with price_vs_market, scam_risk_signals, seller_questions, seller_handoff, and aico_checkout_supported: false.
POST /api/v1/skills/searchSkill Search API: branchable skill/procedure options from Vercel Labs find-skills and AICO skill-library entries, with executes_skill: false and provenance-first next steps.
POST /api/v1/agent-launch/auditAgent Launch Pack API: audit owned agent-discovery surfaces, return owned_fixable_gaps and external_only_gaps, and decide should_run_external_scan without spending Ora/ORank-style active scans.
POST /api/v1/agent-launch/generateGenerate patch-ready llms.txt, agent.json, status.json, AGENTS.md starter artifacts plus truth_warnings so agents do not fake OAuth, registry, package, Wikipedia/Wikidata, provider inventory, checkout, escrow, or verification claims.
POST /api/v1/agent-launch/verifyVerify live launch surfaces after deploy and return remaining_owned_gaps, remaining_external_todos, and ready_for_external_scan.
POST /api/v1/proof/notability/preflightAgent Proof Graph API: classify first-party vs independent evidence, return independent_substantial_sources, claim_graph, venue_readiness, evidence_plan, and safe_next_step before Wikipedia/Wikidata/registry submissions.
POST /api/v1/api-requestsRequest a missing agent-native API primitive. Accepted responses return roadmap_bucket=agent_requested_api; if AICO builds an API from the request, the requesting account is eligible for $100 of AICO usage credits.
POST /api/v1/feedbackSubmit structured feedback after feedback_prompt or MCP feedback.submit: ratings, handoff_incomplete, generic_search_preferred, pricing_blocked, and other adoption blockers tied to a request_id.
POST /api/v1/commercial/intentRecord commercial_next_step, commercial_intent_requested, and requires_browser_billing_account when the API response is useful.
## Buyer FAQ
When should an agent call this instead of doing its own research?
When it needs one API key for a useful workflow and a structured ranking primitive: parse messy intent, enforce constraints, shortlist, inspect evidence, validate a plan, and prepare provider handoffs instead of spending tool budget on broad search.
When is the family signal useful?
When family suitability changes destination fit before live provider fanout.
When is the event/sports signal useful?
When schedule risk, hotel-compression risk, post-event logistics, schedule_risk_level, venue_validation_handoff, and backup_activity_candidates matter.
How does this fit with CrewAI or LangGraph planners that already call live providers?
Use AICO as a pre-provider fanout step before Amadeus, Serper, Browserless, Booking, Maps, or itinerary-generation calls.
When should an agent decline instead of spending paid-tool budget on AICO?
If tool_budget_below_cost is true, use decline_paid_tool_budget_too_low and make zero AICO primitive calls until the api_was_worth_spending_budget condition can be met.
## Provider validation and paid next step
Travel API is not live booking inventory or provider-backed quotes; it is also not live schedules, ticket inventory, live hotel rates, provider-backed event-week rates, or neighborhood safety validation. When booking matters, agents should request inventory_validation_handoff for current_airfare, available_rooms, and provider_rates.
Hobby is a $5 minimum usage/month with $5 credits included. pricing_model: "usage_token_minimum". This is usage-token minimum billing; monthly minimum includes same-dollar AICO credits. After your first successful API call, upgrade when higher limits/testing continuity are useful. If a response includes commercial_next_step, call POST /api/v1/commercial/intent and then use Upgrade after login.
Retry and status guidance: unknown /api/* routes return structured JSON errors with recovery_hints. For HTTP 429, honor Retry-After when present; otherwise use exponential backoff with jitter such as 2s, 4s, and 8s before stopping. Treat 5xx as transient server/provider failure and retry only idempotent GETs or safe evaluation POSTs. Use /status, /status.json, and GET /api/v1/demo/travel/sample as unauthenticated operational/sample probes, then POST /api/v1/activation and GET /api/v1/account/me for real key/quota state.
schema.json