{"version":"plans-2026.6","effectiveDate":"2026-09-19","note":"The plan catalogue is DATA, not code. Limits are read from here at boot, so changing a quota is a data edit and a redeploy, never a code change. Served at /wine/api/v1/plans.json and /wine/v1/plans.","currency":"USD","model":"Every plan has EVERY feature. Plans differ only in how much you may use, never in what you may reach. No endpoint, field or dataset is reserved for a paying customer — a higher plan raises limits and nothing else. History is the same: every plan can query it, and a paid plan buys how far back. And where the limits are the only obstacle to public-interest work, they are lifted for free — see publicInterest.","dataIsPublicDomain":"Nothing in any paid plan is a licence to the data. Every record TTB publishes today is free on every plan, at full fidelity, and you may redistribute it commercially without asking. A paid plan buys CAPACITY and HISTORICAL DEPTH on a shared server, never access.","billing":{"status":"not-yet-available","provider":"paypal","note":"Paid plans are not live. No payment code runs in this service and no card or PayPal credential ever reaches it. When paid plans open they will be served from a separate domain backed by this same API, and subscriptions will be handled by PayPal Subscriptions; this service will only ever receive a signature-verified webhook that issues or revokes an API key.","interestUrl":"https://apis.allanninal.dev/wine/pro.html"},"featureCatalogue":{"reference.read":"Search and fetch permit holders, appellations, grape varieties and the TTB class/type and origin code tables.","bulk.download":"The complete datasets as static JSON files, cacheable and unmetered.","history.asof":"Query any dataset as it stood on a past date (?asOf=). TTB keeps no archive, so this exists only because this service retains it.","history.changes":"A change feed: what was added, amended or removed since a date, per dataset."},"limitDefinitions":{"requestsPerMinute":"Requests accepted in a rolling minute, per IP on the anonymous plan and per key otherwise.","requestsPerDay":"Requests accepted in a rolling day, same identity.","maxPageSize":"Largest value accepted for ?limit= on a search endpoint.","bulkDownloadsPerDay":"Full static-dataset file downloads accepted per day (/api/v1/*.json). The files are free and complete; this caps how often one identity may re-pull them, because the cost is bandwidth. The per-record API under /v1 is counted separately.","historyDays":"How far back ?asOf= and the change feed may reach, in days before today. null means the full retained history. Every plan can use both endpoints; this caps the depth, not the capability."},"plans":[{"id":"free","name":"Free","tagline":"Everything, no signup.","price":{"monthly":0,"annual":0,"currency":"USD"},"available":true,"signupRequired":false,"limits":{"requestsPerMinute":60,"requestsPerDay":5000,"maxPageSize":100,"bulkDownloadsPerDay":50,"historyDays":30},"features":["reference.read","bulk.download","history.asof","history.changes"],"description":"Anonymous, budgeted by IP. Every dataset at full fidelity, the complete static files, and the last 30 days of history. This is not a trial — it is the product.","upgradeReason":null,"current":true},{"id":"free-key","name":"Free (with key)","tagline":"Same everything, bigger budget.","price":{"monthly":0,"annual":0,"currency":"USD"},"available":true,"signupRequired":true,"limits":{"requestsPerMinute":300,"requestsPerDay":50000,"maxPageSize":100,"bulkDownloadsPerDay":500,"historyDays":30},"features":["reference.read","bulk.download","history.asof","history.changes"],"description":"A free key raises the budget five-fold and meters you individually rather than on a shared IP. Same data, same 30-day history window.","upgradeReason":"You are sharing an IP, or you need more than 5,000 requests a day."},{"id":"pro","name":"Pro","tagline":"Production volume, and the full history.","price":{"monthly":19,"annual":190,"currency":"USD","annualNote":"two months free"},"available":false,"signupRequired":true,"limits":{"requestsPerMinute":1200,"requestsPerDay":500000,"maxPageSize":1000,"bulkDownloadsPerDay":5000,"historyDays":null},"features":["reference.read","bulk.download","history.asof","history.changes"],"description":"The same API at production volume — 20x the per-minute rate, 10x the daily budget, pages of up to 1,000 — plus unlimited historical depth: ?asOf= and the change feed reach back to the first snapshot this service ever took, rather than 30 days.","upgradeReason":"You need history older than 30 days, or you are hitting the free-key ceiling."},{"id":"business","name":"Business","tagline":"High volume and a support commitment.","price":{"monthly":49,"annual":490,"currency":"USD","annualNote":"two months free"},"available":false,"signupRequired":true,"limits":{"requestsPerMinute":6000,"requestsPerDay":5000000,"maxPageSize":5000,"bulkDownloadsPerDay":50000,"historyDays":null},"features":["reference.read","bulk.download","history.asof","history.changes"],"description":"Pro's ceilings raised again, plus a response-time commitment and a named contact.","upgradeReason":"You need more than Pro's budget, or a support commitment.","support":"Response-time commitment and a named contact."},{"id":"public-interest","name":"Public interest","tagline":"Pro capability, free, by application.","price":{"monthly":0,"annual":0,"currency":"USD"},"available":true,"signupRequired":true,"limits":{"requestsPerMinute":1200,"requestsPerDay":500000,"maxPageSize":1000,"bulkDownloadsPerDay":5000,"historyDays":null},"features":["reference.read","bulk.download","history.asof","history.changes"],"description":"Everything Pro has — production rate limits and the full retained history — at no cost, for journalists, academic researchers, nonprofits and public-interest investigators. Granted by application, not by payment.","upgradeReason":null,"applicationRequired":true,"eligibility":["Journalists and newsrooms, including freelancers working on a specific story","Academic researchers and students, at any institution","Nonprofits and NGOs","Public-interest investigators, civic-tech and government-transparency projects","Regulators and public bodies"],"howToApply":"Message https://www.linkedin.com/in/allanninal/ on LinkedIn with who you are and roughly what you are looking into. One or two sentences is enough — this is not a grant application, and no proposal is required. LinkedIn rather than email so the author can see they are dealing with a real person."}],"fairUse":"The free plans are genuinely free and are not a trial. They are rate limited so one caller cannot take the service down for everyone — the scarce resource is a single shared host, not the data, which is public domain and which you are free to download in full and host yourself.","selfHostNote":"If you need more than any plan offers, do not buy one: the complete datasets are published at /wine/api/v1/ and the server is MIT licensed. Run your own copy. A rate limit is a property of my hardware, not a property of the data.","whyHistoryIsSold":"TTB overwrites its permittee files in place in place and keeps no archive; the previous week's list is simply gone, and the Internet Archive holds two accidental captures of the wine list eight months apart. A time series of who was licensed to make wine in America does not exist anywhere and cannot be reconstructed after the fact. This service creates it by retaining what TTB destroys. That retained history is the one thing here that is genuinely mine to sell — it is work performed, not a public record put behind a gate.","historyNote":"Historical depth is limited by when this service started retaining snapshots, not by your plan alone. /v1/history/coverage reports the real window; no plan can answer for a date before we started looking, and this service will never invent one.","publicInterest":{"summary":"Pro-level access is free for journalists, academics, nonprofits and public-interest researchers. Ask and it is granted.","why":"This is public data about a regulated industry: who is licensed to make and import wine in the United States, and how that has changed. The people most likely to do something useful with it — reporters, researchers, transparency projects — are the least likely to have a budget for an API. Charging them would select against exactly the use this data exists for. The rate limits exist to protect one small shared server, not to ration public records, so where the limit is the only obstacle it is simply lifted.","contact":"https://www.linkedin.com/in/allanninal/","note":"No proposal, no procurement, no annual review. Contact is via LinkedIn rather than email, so the author can see a real person is asking. If the free tier's limits are in your way and you are doing work of this kind, say so and you will get a key.","contactVia":"LinkedIn"},"pricingRationale":{"summary":"Priced against the market, and deliberately below it. The closest competitor, COLA Cloud, sells TTB label records with images and AI enrichment at $39 and $99 a month. This service has none of that — it serves reference data — so it is priced under their entry tier, not alongside it.","comparedWith":[{"vendor":"COLA Cloud","url":"https://colacloud.us/pricing","verifiedOn":"2026-09-19","theirTiers":[{"name":"Free","monthly":0,"notes":"200 detail views/mo, 10,000 list records/mo, 10 req/min, label images"},{"name":"Starter","monthly":39,"notes":"2,000 detail views/mo, 100,000 list records/mo, 60 req/min, scheduled alerts"},{"name":"Pro","monthly":99,"notes":"10,000 detail views/mo, 1,000,000 list records/mo, 120 req/min, priority support"}],"theyHaveThatWeDoNot":["~2.7M COLA label records back to 2005","label images","AI enrichment, OCR label text and product classification","barcode lookup","full-text search over label text"],"weHaveThatTheyDoNot":["Point-in-time history. Their permittee file carries an is_active flag and is overwritten daily; it cannot answer what the registry looked like on a past date. This service retains a snapshot per refresh and can.","Far higher request ceilings: 1,200/min on Pro against their 120/min on a $99 plan.","Wine-specific reference depth: AVA nesting, 27 CFR 4.91/4.92 variety names with historical aliases, and the TTB class/type and origin code tables."],"honestly":"Their free open-data layer already publishes a broader TTB permittee file (~114,000 rows, refreshed daily) and an AVA list, both CC0. Our current-state reference data is therefore not a differentiator, and it is not what a paid plan here is for."}],"alsoLookedAt":[{"vendor":"CourtListener (Free Law Project)","monthly":10,"notes":"public court records; membership raises API rate limits"},{"vendor":"Protomaps","monthly":14,"notes":"OpenStreetMap-derived hosted tiles, commercial licence"},{"vendor":"Stadia Maps","monthly":20,"notes":"OSM-derived, entry tier"},{"vendor":"Geoapify","monthly":59,"notes":"OSM-derived, entry tier"}],"whyThisNumber":"Small public-data APIs cluster between $10 and $20 for an entry paid tier. Pro is set at $19 — inside that band and below the nearest direct competitor's cheapest paid plan, because on data breadth this service is a subset of what that competitor gives away for nothing. Business is $49, roughly half their $99, reflecting narrower scope; what it adds over Pro is a response-time commitment, which is my time rather than my bandwidth.","whatCapsIt":"Every dataset here is public domain and published in full as static files, and the server is MIT licensed. Anyone who finds a plan expensive can self-host and pay nothing. That is a deliberate ceiling on what this can ever charge, and it is the right one."},"contact":{"via":"LinkedIn","url":"https://www.linkedin.com/in/allanninal/","note":"There is no public email address for this service. Reach the author on LinkedIn."},"currentPlan":"free"}