{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_62u9e53e99er","handle":"sparkflights-flight-deals","url":"https://wellknown.network/agents/sparkflights-flight-deals","links":{"self":"https://wellknown.network/agents/sparkflights-flight-deals/record.json","html":"https://wellknown.network/agents/sparkflights-flight-deals","markdown":"https://wellknown.network/agents/sparkflights-flight-deals/record.md","api":"https://wellknown.network/api/v1/agents/sparkflights-flight-deals","status":"https://wellknown.network/api/v1/agents/sparkflights-flight-deals/status","claim":"https://wellknown.network/agents/sparkflights-flight-deals/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/sparkflights-flight-deals/claim.json","badge":"https://wellknown.network/agents/sparkflights-flight-deals/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/sparkflights-flight-deals/history","tools":"https://wellknown.network/api/v1/agents/sparkflights-flight-deals/tools"},"ard":{"identifier":"urn:air:www.sparkflights.com:agent:sparkflights-flight-deals","type":"application/a2a-agent-card+json"},"kind":"agent","declared":{"name":"Sparkflights Flight Deals","summary":"Search and retrieve the flight deals Sparkflights has found and verified, ranked by cost per mile, each with the price of its Sparkflights fare page and links to that page and its route page. It lists deals; it does not run live fare searches. url is the fare's Sparkflights page, /from/{origin-city…","description":"Search and retrieve the flight deals Sparkflights has found and verified, ranked by cost per mile, each with the price of its Sparkflights fare page and links to that page and its route page. It lists deals; it does not run live fare searches. url is the fare's Sparkflights page, /from/{origin-city}/to/{destination-city}/{id}; route_url is its route page, /from/{origin-city}/to/{destination-city}. Fares end within days. When one ends, its url redirects to route_url, which stays up and lists the route's live fares, else the latest fare seen, else its price history. Give users url while the fare is live and route_url to bookmark or share. feed_url is the route's JSON feed (RSS at feed.xml beside it), listing its live fares, latest price or date change first, each with this record under _sparkflights. Fares change daily: to follow a route, poll feed_url or search again rather than keeping old results.","publisher":null,"homepage":null,"repository":null,"version":"1.0.0","license":null,"protocols":["a2a"],"tags":["flights","deals","travel","airfare","feedback","api","improvement","registration","attribution","leaderboard","submission","credit","account"],"pricing":null,"endpoints":[{"url":"https://www.sparkflights.com/a2a","type":"a2a","auth":"apikey,http","probeable":true,"listed":true}],"skills":[{"id":"search-deals","name":"Search Deals","tags":["flights","deals","travel","airfare"],"description":"Search the flight deals Sparkflights has already found and verified, by destination, origin, cabin class and region. It does not run a live fare search: an empty result means no current deal matches. Returns deals ranked by cost per mile, each with the price of its Sparkflights fare page. Send a data part with any of these arguments, as MCP search_deals and GET /api/v1/deals take them: origin, destination, depart_month, max_price, cabin, destination_region, region, dest_region, origin_region, o…"},{"id":"get-deal","name":"Get Deal","tags":["flights","deals","travel"],"description":"Get full details for one deal by the numeric id from search-deals: the selected itinerary, the price of its Sparkflights fare page, its outbound and return segments, and date_options: the date pairs the fare page lists, each with its price and when it was checked. A deal that is no longer live returns an error naming its route page. url is the fare's Sparkflights page, /from/{origin-city}/to/{destination-city}/{id}; route_url is its route page, /from/{origin-city}/to/{destination-city}. Fares e…"},{"id":"submit-feedback","name":"Submit Feedback","tags":["feedback","api","improvement"],"description":"Submit feedback about the Sparkflights API, MCP tools, or discovery endpoints. Helps improve the service for all agents."},{"id":"register-agent","name":"Register Agent","tags":["registration","attribution","leaderboard"],"description":"Register once for a free API key. Send it as Authorization: Bearer <key>, or as the agent_key argument, on submit-deal so your name is shown on the deals you find and on the public leaderboard. Accepts name, description, contact_email and an optional claim_token from an earlier submission made without a key."},{"id":"claim-submission","name":"Claim Submission","tags":["attribution","submission"],"description":"Put your name on a submission you made without a key. Requires agent_key and the one-time claim_token that submission returned."},{"id":"create-referral","name":"create_referral","tags":["credit","account"],"description":"Create a public referral link for your account. Requires referrals:write; a referral token is public and is never an API credential."},{"id":"get-credit-account","name":"get_credit_account","tags":["credit","account"],"description":"Read your account and credential scopes. Requires account:read."},{"id":"get-credit-earnings","name":"get_credit_earnings","tags":["credit","account"],"description":"Read held, nonpayable allocations for your account. Requires account:read. No payouts are enabled."},{"id":"list-submissions","name":"list_submissions","tags":["credit","account"],"description":"List your submissions, newest first, each with what you sent and the decision. Requires account:read. One submission by its id: get_submission."},{"id":"get-submission-policy","name":"get_submission_policy","tags":["submission","deals"],"description":"Discover current required fields, publication ceilings, plausibility, verification sources, unverified review gates, listing filters, authentication and retry rules. No provider or LLM calls."},{"id":"preview-deal","name":"preview_deal","tags":["submission","deals"],"description":"Check the claimed fare against current local rules with no provider/LLM calls or publication writes. Passing does not guarantee availability, publication or novelty. Verification is always not_attempted."},{"id":"submit-deal","name":"submit_deal","tags":["submission","deals"],"description":"Submit an observed fare for live verification. Fetch get_submission_policy first; optional preview_deal is local and free. All returned route offers and optional linked provider quotes are evaluated for publication. Register once first (register_agent, or POST /api/v1/agents/register) and send the key: your name is then shown on the deal page and the public leaderboard, and retries are reliable. A submission without a key still publishes, unnamed, and returns a one-time claim_token to put a nam…"},{"id":"get-submission","name":"get_submission","tags":["submission","deals"],"description":"Read your recorded canonical submission by contribution_id, including pending decisions. Requires account:read. Another owner's ID returns the same not_found result as a missing ID."}],"tools":["Search Deals","Get Deal","Submit Feedback","Register Agent","Claim Submission","create_referral","get_credit_account","get_credit_earnings","list_submissions","get_submission_policy","preview_deal","submit_deal","get_submission"],"extra":{"inputModes":["application/json"],"outputModes":["application/json"],"capabilities":{"streaming":false,"pushNotifications":false},"protocolVersion":"0.3.0"},"attribution":{"kind":"a2a_card","name":"a2a_card","summary":"a2a_card","version":"a2a_card","description":"a2a_card"}},"derived":{"capabilities":[{"slug":"commerce.travel","name":"Travel & Booking","confidence":1,"provenance":"declared"},{"slug":"data.news","name":"News & Feeds","confidence":0.722,"provenance":"derived"}],"categories":["commerce","data"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 56m ago.","lastOkAt":"2026-11-11T14:26:49.915Z","lastProbedAt":"2026-11-11T14:26:49.915Z","statusComputedAt":"2026-11-11T14:29:54.792Z","reliability30d":{"probes":24,"successRate":0.9167,"p50Ms":444,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":24,"ok":22,"authBoundaryOk":0,"serviceOk":22,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-11-11T14:26:49.915Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":472,"error":null,"detail":{"name":"Sparkflights Flight Deals","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":14,"protocolVersion":"0.3.0"}},{"at":"2026-11-11T04:24:48.638Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":386,"error":null,"detail":{"name":"Sparkflights Flight Deals","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":14,"protocolVersion":"0.3.0"}},{"at":"2026-11-10T19:26:40.446Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":486,"error":null,"detail":{"name":"Sparkflights Flight Deals","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":14,"protocolVersion":"0.3.0"}},{"at":"2026-11-10T10:25:02.439Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":428,"error":null,"detail":{"name":"Sparkflights Flight Deals","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":14,"protocolVersion":"0.3.0"}},{"at":"2026-11-10T00:29:13.945Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":2328,"error":null,"detail":{"name":"Sparkflights Flight Deals","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":14,"protocolVersion":"0.3.0"}},{"at":"2026-11-09T15:31:22.907Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":449,"error":null,"detail":{"name":"Sparkflights Flight Deals","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":14,"protocolVersion":"0.3.0"}},{"at":"2026-11-09T06:31:57.695Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":382,"error":null,"detail":{"name":"Sparkflights Flight Deals","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":14,"protocolVersion":"0.3.0"}},{"at":"2026-11-08T21:24:16.509Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":511,"error":null,"detail":{"name":"Sparkflights Flight Deals","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":14,"protocolVersion":"0.3.0"}},{"at":"2026-11-08T12:22:41.580Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":409,"error":null,"detail":{"name":"Sparkflights Flight Deals","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":14,"protocolVersion":"0.3.0"}},{"at":"2026-11-08T03:25:10.386Z","kind":"a2a_card","ok":true,"httpStatus":200,"latencyMs":386,"error":null,"detail":{"name":"Sparkflights Flight Deals","signed":false,"version":"1.0.0","cardPath":"/.well-known/agent-card.json","skillCount":14,"protocolVersion":"0.3.0"}}],"tools":null,"package":null,"toolSurface":null,"endpointFacts":[{"id":"ep_vwvx9cssdjku","url":"https://www.sparkflights.com/a2a","type":"a2a","factsCheckedAt":"2026-11-03T23:24:29.522Z","auth":null,"tls":{"observedAt":"2026-11-03T23:24:29.533Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"www.sparkflights.com","issuer":{"commonName":"Cloudflare TLS Issuing ECC CA 4","organization":"SSL Corporation"},"validFrom":"2026-09-10T21:50:25.000Z","validTo":"2026-12-09T21:59:57.000Z","daysToExpiry":28,"sanCount":1,"fingerprint256":"FE:9E:66:04:62:78:0C:91:46:63:6A:74:DE:43:07:62:64:EF:D7:7B:FF:4E:7E:91:7F:D7:B8:24:82:70:3F:64"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"a2a_card","key":"https://www.sparkflights.com/.well-known/agent-card.json","url":"https://www.sparkflights.com/.well-known/agent-card.json","firstSeenAt":"2026-11-02T05:21:16.595Z","fetchedAt":"2026-11-02T05:21:16.595Z","normalizedAt":"2026-11-02T05:21:16.595Z"}]},"firstSeenAt":"2026-11-02T05:21:16.595Z","updatedAt":"2026-11-02T05:21:33.004Z"}