Skip to content

Free UK delivery over £30 · EU orders from £100 · Order by Mon 6pm for Tuesday’s roast.

  • Coffee
    • Process
    • Terroir
    • Every day
    • All coffee
    • Decaf
  • Subscribe
    • Filter
    • Espresso
    • Office coffee
    • How it works
    • Manage my plan
  • Wholesale
    • Roasted — for cafés
    • Green list
    • The two doors
  • Producers
  • FAQ
Deliver toUnited Kingdom

Country/Region

    No results found
  • Austria GBP £
  • Belgium GBP £
  • Bulgaria GBP £
  • Croatia GBP £
  • Cyprus GBP £
  • Czechia GBP £
  • Denmark GBP £
  • Estonia GBP £
  • Finland GBP £
  • France GBP £
  • Greece GBP £
  • Hungary GBP £
  • Ireland GBP £
  • Italy GBP £
  • Latvia GBP £
  • Lithuania GBP £
  • Luxembourg GBP £
  • Malta GBP £
  • Netherlands GBP £
  • Poland GBP £
  • Portugal GBP £
  • Romania GBP £
  • Slovakia GBP £
  • Slovenia GBP £
  • Spain GBP £
  • Sweden GBP £
  • United Kingdom GBP £
Ecuadorian Coffee Roasters Ecuadorian Coffee Roasters
  • Coffee
    • Process Flavour from fermentation.
    • Terroir Flavour from the farm.
    • Every day Blends for milk.
    • All coffee 15 lots
    • Start with a flavour →
  • Subscribe
    • Filter Rotating seasonal lots · from £8.69
    • Espresso Seasonal lots for milk · from £8.69
    • Office coffee 2kg bags, sized to your team · from £54.00
    • How it works
    • Manage my plan
  • Wholesale
    • Roasted · for cafés 250g–1kg bags on a trade account
    • Green · for anyone Whole sacks, prices open, no account
    • The two doors
    • How sampling works
    • Catalogue (PDF)
  • Producers
  • FAQ
  • Country/Region

      No results found
    • Austria GBP £
    • Belgium GBP £
    • Bulgaria GBP £
    • Croatia GBP £
    • Cyprus GBP £
    • Czechia GBP £
    • Denmark GBP £
    • Estonia GBP £
    • Finland GBP £
    • France GBP £
    • Greece GBP £
    • Hungary GBP £
    • Ireland GBP £
    • Italy GBP £
    • Latvia GBP £
    • Lithuania GBP £
    • Luxembourg GBP £
    • Malta GBP £
    • Netherlands GBP £
    • Poland GBP £
    • Portugal GBP £
    • Romania GBP £
    • Slovakia GBP £
    • Slovenia GBP £
    • Spain GBP £
    • Sweden GBP £
    • United Kingdom GBP £
    Account

    Nothing in the cart yet.

    Roast day is Tuesday. Order by Monday 18:00.

    Have an account? Log in to check out faster.

    Browse all coffee

    Developers

    Everything we sell is reachable by API: the green-coffee catalog, lot detail, samples, quotes and trade accounts. Reads need no credentials. There is no sales call to book — accounts are self-serve and a sandbox is always on.

    Start here

    Contractapi.gonzalezbrothers.coffee/openapi.json (OpenAPI 3.1)
    Productionhttps://api.gonzalezbrothers.coffee
    Sandboxhttps://stage.api.gonzalezbrothers.coffee — same contract, its own data and accounts, always on. Build against it first: curl https://stage.api.gonzalezbrothers.coffee/health answers {"success":true,…}, and GET / with Accept: application/json returns an index of the endpoints.
    Agent guidegonzalezbrothers.coffee/agents.md
    Permissionsoauth-protected-resource (RFC 9728, scopes_supported)
    Versioningdeprecation policy — /api/v1 is current

    Quickstart: read the catalog (no key)

    curl https://api.gonzalezbrothers.coffee/api/v1/catalog/full
    curl https://api.gonzalezbrothers.coffee/api/v1/lots/{id}
    curl https://gonzalezbrothers.coffee/apps/shop/channels/green   # what is on sale right now, with per-kg prices

    Every lot carries its number, farm, variety, process, cupping score, price and stock. /catalog/full is the priced catalog with supplier contact details redacted.

    Command line

    The official CLI wraps the same contract — no key needed for reads, --sandbox for the stage API. Node 20+, zero dependencies, gonzalezbrothers-cli on npm.

    npx gonzalezbrothers-cli catalog --full
    npx gonzalezbrothers-cli channel green
    npx gonzalezbrothers-cli lot {id} --sandbox
    npx gonzalezbrothers-cli --help

    Self-serve account

    Sign up over the API, confirm the email code, log in, and send the access token as a bearer. No approval step.

    curl -X POST https://stage.api.gonzalezbrothers.coffee/api/v1/auth/signup \
      -H 'content-type: application/json' \
      -d '{"email":"you@example.com","password":"…","firstName":"…","lastName":"…","company":"…","privacyPolicyAccepted":true}'
    curl -X POST https://stage.api.gonzalezbrothers.coffee/api/v1/auth/confirm -H 'content-type: application/json' -d '{"email":"you@example.com","code":"123456"}'
    curl -X POST https://stage.api.gonzalezbrothers.coffee/api/v1/auth/login   -H 'content-type: application/json' -d '{"email":"you@example.com","password":"…"}'
    curl https://stage.api.gonzalezbrothers.coffee/api/v1/orders -H "Authorization: Bearer $ACCESS_TOKEN"

    Scopes

    Each operation in the contract names the scope it needs. An account token holds every authenticated scope; catalog.enriched (full supplier records) comes with a confirmed trade account. Machine-to-machine clients (OAuth 2.0 client credentials against the same scopes) are issued per integration — ask us at contact with what you are building.

    • catalog.read, catalog.enriched
    • orders.read, orders.write
    • samples.read, samples.write
    • shortlist.read, shortlist.write
    • account.read, account.write

    A missing scope answers 403 with WWW-Authenticate: Bearer error="insufficient_scope", scope="…" naming what to request.

    Buying through the shop

    Roasted bags go through the normal cart and checkout (or UCP: https://gonzalezbrothers.coffee/.well-known/ucp). Roasted kilos and green sacks never do — request a quote and a person prices the shipping:

    curl -X POST https://gonzalezbrothers.coffee/apps/shop/quotes  -H 'content-type: application/json' -d '{"channel":"green","lines":[{"lotNumber":"…","size":"sack","quantity":1}],"name":"…","email":"…","addressLine1":"…","city":"…","postcode":"…","country":"GB"}'
    curl -X POST https://gonzalezbrothers.coffee/apps/shop/samples -H 'content-type: application/json' -d '{"lotNumbers":["…"],"sampleType":"green","name":"…","email":"…","company":"…","addressLine1":"…","city":"…","postcode":"…","country":"GB"}'

    Limits and errors

    • 300 requests a minute per IP across the API, tighter on the forms; every response carries RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset. A 429 carries Retry-After.
    • Errors are RFC 7807 application/problem+json. Unknown paths are a real 404 whose body links back to the contract.
    • Prices are in GBP. Current prices.

    Gonzalez Brothers

    • info@gonzalezbrothers.coffee
    • +44 20 7916 2144
    • Delivery & returns
    • FAQ
    • Contact
    • Producers
    • Wholesale
    • Developers
    • Instagram
    • Privacy Policy
    • Terms and Conditions
    • Subscription Policy

    © 2026 Gonzalez Brothers Coffee Ltd · 32–33 Upper Street, London N1 0PN · Registered in England & Wales, No. 16834926

    Search

    Products

    • El Carmen El Carmen £12.75
    • Peach Bloom · Washed · El Carmen Peach Bloom · Washed · El Carmen £15.50
    • El Alisal - Catucai El Alisal - Catucai £15.00
    • Daily Brew Daily Brew £12.75

    Try searching

    • Angelica Albertina Toledo Abarca
    • Leonidas Jaramillo Rojas
    • Pablo Eguiguren
    • Washed
    • Natural