{"openapi":"3.0.3","info":{"title":"Tail API Platform","version":"1.0.0","description":"One platform, four products. **Resolve** (Registration Ultra Resolver), **Identity**, Valuation, and Embeds — each defensible because it requires data only the Tail graph has. Two-door access: anonymous capped uploads keep the photo flywheel open; a free key (10s, no approval) unlocks programmatic volume.","contact":{"name":"Tail Developers","url":"https://developers.tailid.app"}},"servers":[{"url":"https://api.tailid.app","description":"Production"}],"tags":[{"name":"Resolve","description":"Photo → ranked registration candidates with confidence."},{"name":"Identity","description":"Text → verified aircraft record from the graph."},{"name":"Valuation","description":"Aircraft → value estimate (free, attribution required)."},{"name":"Keys","description":"Instant self-serve API keys."}],"paths":{"/v1/resolve":{"post":{"tags":["Resolve"],"operationId":"resolveAircraft","summary":"Resolve an aircraft registration from a photo","description":"Send a photo (file, image_url, or base64) and get ranked aircraft candidates, each with a confidence score and the verified record behind it. Works even when the tail number isn't readable. Add any context you have (a partial tail, airport, date) to sharpen the result. Anonymous uploads are capped per IP/day; a free key lifts the cap.","security":[{},{"ApiKeyAuth":[]},{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"image":{"type":"string","format":"binary","description":"The aircraft image."},"consent":{"type":"string","enum":["true"],"description":"Required for stored uploads (license grant)."},"context":{"type":"string","description":"JSON-encoded ResolveContext (all fields optional)."},"options":{"type":"string","description":"JSON-encoded ResolveOptions."},"device_hash":{"type":"string"},"source":{"type":"string","enum":["try_it","api"]}},"required":["image"]}},"application/json":{"schema":{"type":"object","properties":{"image_url":{"type":"string","format":"uri"},"image_b64":{"type":"string"},"context":{"$ref":"#/components/schemas/ResolveContext"},"options":{"$ref":"#/components/schemas/ResolveOptions"}}}}}},"responses":{"200":{"description":"Resolution result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveResult"}}}},"400":{"description":"Bad request / consent required"},"429":{"description":"Rate limited (anonymous cap or key quota)"}}}},"/v1/valuation":{"post":{"tags":["Valuation"],"operationId":"valuateAircraft","summary":"Value an aircraft (free, attribution required)","description":"Returns a value estimate (point + range), condition, and lowest active market ask from the Tail comps graph. Free to use — consumers must display a \"Powered by Tailestimate\" attribution.","security":[{},{"ApiKeyAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"registration":{"type":"string","description":"Preferred — values that airframe."},"model":{"type":"string","description":"Fallback — representative model estimate."},"year":{"type":"integer","description":"Narrow a model estimate by year."}}}}}},"responses":{"200":{"description":"Valuation with required attribution","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValuationResult"}}}}}}},"/v1/identity":{"get":{"tags":["Identity"],"operationId":"identifyAircraft","summary":"Resolve a verified aircraft record from text","parameters":[{"name":"registration","in":"query","schema":{"type":"string"}},{"name":"serial","in":"query","schema":{"type":"string"}},{"name":"free_text","in":"query","schema":{"type":"string"},"description":"e.g. 'Grob 103 Twin II'"},{"name":"country","in":"query","schema":{"type":"string"}}],"security":[{},{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Identity record","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityRecord"}}}}}}},"/keys":{"post":{"tags":["Keys"],"operationId":"createApiKey","summary":"Create a free API key (instant, no approval)","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email","name"],"properties":{"email":{"type":"string","format":"email"},"name":{"type":"string"},"org":{"type":"string"}}}}}},"responses":{"201":{"description":"Key created — shown only once","content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string"},"tier":{"type":"string"}}}}}}}}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Api-Key"},"BearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"ResolveContext":{"type":"object","description":"All fields optional. The more context, the higher the fidelity.","properties":{"registration_hint":{"type":"string"},"country":{"type":"string"},"make":{"type":"string"},"model":{"type":"string"},"category":{"type":"string"},"serial":{"type":"string"},"photo_date":{"type":"string","format":"date"},"airport":{"type":"string","description":"ICAO/IATA"},"location":{"type":"string","description":"lat,lon"},"source_url":{"type":"string","format":"uri"},"listing_text":{"type":"string"},"candidate_registrations":{"type":"array","items":{"type":"string"}},"must_belong_to":{"type":"string"}}},"ResolveOptions":{"type":"object","properties":{"include_pairwise":{"type":"boolean","default":true},"return_evidence":{"type":"boolean","default":true}}},"ResolveResult":{"type":"object","properties":{"status":{"type":"string","enum":["resolved","likely","ambiguous","needs_human_review","unresolved"]},"matches":{"type":"array","items":{"$ref":"#/components/schemas/Match"}},"candidate_counts":{"type":"object"},"unresolved_factors":{"type":"array","items":{"type":"string"}},"provenance_id":{"type":"string"},"stages_run":{"type":"array","items":{"type":"string"}}}},"Match":{"type":"object","properties":{"registration":{"type":"string"},"confidence":{"type":"number"},"aircraft_id":{"type":"string"},"make":{"type":"string"},"model":{"type":"string"},"category":{"type":"string"},"evidence":{"type":"object"},"reason":{"type":"string"}}},"IdentityRecord":{"type":"object","properties":{"resolved":{"type":"boolean"},"registration":{"type":"string"},"make":{"type":"string"},"model":{"type":"string"},"category":{"type":"string"},"year_mfr":{"type":"integer"},"registry_country":{"type":"string"},"images":{"type":"array","items":{"type":"object"}}}},"ValuationResult":{"type":"object","properties":{"resolved":{"type":"boolean"},"registration":{"type":"string"},"make":{"type":"string"},"model":{"type":"string"},"year_mfr":{"type":"integer"},"estimate":{"type":"object","properties":{"point_usd":{"type":"number"},"low_usd":{"type":"number"},"high_usd":{"type":"number"},"as_of_date":{"type":"string"},"condition":{"type":"string"}}},"market":{"type":"object"},"attribution":{"type":"string","description":"Must be displayed by consumers."},"attribution_required":{"type":"boolean"},"tier":{"type":"string"}}}}}}