Cocktail API

The Cocktail API allows you to search thousands of cocktail recipes by name or ingredients.



Returns up to 10 cocktail recipes matching the search parameters.


At least one of the below parameters must be present:

name (optional) - name of cocktail. This parameter supports partial matches (e.g. bloody will match bloody mary and bloody margarita)

ingredients (optional) - comma-separated string of ingredients to search. Only cocktails containing all listed ingredients will be returned. For example, to search cocktails containing Vodka and lemon juice, use vodka,lemon juice.


X-Api-Key (required) - API Key associated with your account.

Sample Request URL

Live Demo!

Sample Response

    "ingredients": [
      "4.5 cl (3 parts) vodka",
      "9 cl (6 parts) Tomato juice",
      "1.5 cl (1 part) Lemon juice",
      "2 to 3 dashes of Worcestershire Sauce",
      "Tabasco sauce",
      "Celery salt",
      "Black pepper"
    "instructions": "Stirring gently, pour all ingredients into highball glass. Garnish.",
    "name": "bloody mary"

import requests

name = 'bloody mary'
api_url = '{}'.format(name)
response = requests.get(api_url, headers={'X-Api-Key': 'YOUR_API_KEY'})
if response.status_code ==
    print("Error:", response.status_code, response.text)
var name = 'bloody mary'
    method: 'GET',
    url: '' + name,
    headers: { 'X-Api-Key': 'YOUR_API_KEY'},
    contentType: 'application/json',
    success: function(result) {
    error: function ajaxError(jqXHR) {
        console.error('Error: ', jqXHR.responseText);
const request = require('request');
var name = 'bloody mary';
  url: '' + name,
  headers: {
    'X-Api-Key': 'YOUR_API_KEY'
}, function(error, response, body) {
  if(error) return console.error('Request failed:', error);
  else if(response.statusCode != 200) return console.error('Error:', response.statusCode, body.toString('utf8'));
  else console.log(body)

import com.fasterxml.jackson.databind.ObjectMapper;

URL url = new URL(" mary");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("accept", "application/json");
InputStream responseStream = connection.getInputStream();
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(responseStream);
let name = "bloody mary".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)
let url = URL(string: ""+name!)!
var request = URLRequest(url: url)
request.setValue("YOUR_API_KEY", forHTTPHeaderField: "X-Api-Key")
let task = URLSession.shared.dataTask(with: request) {(data, response, error) in
    guard let data = data else { return }
    print(String(data: data, encoding: .utf8)!)
If your programming language is not listed in the Code Example above, you can still make API calls by using a HTTP request library written in your programming language and following the above documentation.