# Recipes API
> Search thousands of recipes with full cooking instructions and measured ingredients, fetch random meals, browse categories and filter by category, cuisine or main ingredient. Each recipe includes a photo, tags, YouTube tutorial and source link.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/recipes-api/..."
```

## Pricing
- **Free** (Free) — 1,000 calls/Mo, 2 req/s
- **Basic** ($8/Mo) — 60,000 calls/Mo, 8 req/s
- **Pro** ($24/Mo) — 350,000 calls/Mo, 25 req/s
- **Mega** ($59/Mo) — 1,500,000 calls/Mo, 80 req/s

## Endpoints

### Recipes

#### `GET /v1/lookup` — Full recipe by id

**Parameters:**
- `id` (query, required, string) — Numeric meal id Example: `52771`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/recipes-api/v1/lookup?id=52771"
```

**Response:**
```json
{
    "data": {
        "id": "52771",
        "area": "Italian",
        "name": "Spicy Arrabiata Penne",
        "tags": [
            "Pasta",
            "Curry"
        ],
        "source": null,
        "youtube": "https://www.youtube.com/watch?v=1IszT_guI08",
        "category": "Vegetarian",
        "thumbnail": "https://www.themealdb.com/images/media/meals/ustsqw1468250014.jpg",
        "ingredients": [
            {
                "measure": "1 pound",
                "ingredient": "penne rigate"
            },
            {
                "measure": "1/4 cup",
                "ingredient": "olive oil"
            },
            {
                "measure": "3 cloves",
                "ingredient": "garlic"
            },
            {
                "measure": "1 tin",
                "ingredient": "chopped tomatoes"
            },
            {
                "measure": "1/2 teaspoon",
                "ingredient": "red chilli flakes"
            },
            {
                "measure": "1/2 teaspoon",
                "ingredient": "italian seasoning"
            },
            {
                "measure": "6 leaves",
                "ingredient": "basil"
            },
            {
                "measure": "sprinkling",
                "ingredient": "Parmigiano-Reggiano"
            }
        ],
        "instructions": "Bring a large pot of water to a boil. Add kosher salt to the boiling water, then add the pasta. Cook according to the package instructi
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/random` — A random recipe

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/recipes-api/v1/random"
```

**Response:**
```json
{
    "data": {
        "id": "53005",
        "area": "British",
        "name": "Strawberry Rhubarb Pie",
        "tags": [
            "Pudding",
            "Pie",
            "Baking",
            "Fruity",
            "Glazed"
        ],
        "source": "https://www.joyofbaking.com/StrawberryRhubarbPie.html",
        "youtube": "https://www.youtube.com/watch?v=tGw5Pwm4YA0",
        "category": "Dessert",
        "thumbnail": "https://www.themealdb.com/images/media/meals/178z5o1585514569.jpg",
        "ingredients": [
            {
                "measure": "350g",
                "ingredient": "Flour"
            },
            {
                "measure": "1 tsp",
                "ingredient": "Salt"
            },
            {
                "measure": "2 tbs",
                "ingredient": "Sugar"
            },
            {
                "measure": "1 cup",
                "ingredient": "Butter"
            },
            {
                "measure": "1/2 cup",
                "ingredient": "Water"
            },
            {
                "measure": "450g",
                "ingredient": "Rhubarb"
            },
            {
                "measure": "450g",
                "ingredient": "Strawberries"
            },
            {
                "measure": "3 tbs",
                "ingredient": "Cornstarch"
            },
            {
                "measure": "150g",
                "ingredient": "Sugar"
            },
            {
                
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/search` — Search recipes by name

**Parameters:**
- `q` (query, required, string) — Recipe name or part of it Example: `arrabiata`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/recipes-api/v1/search?q=arrabiata"
```

**Response:**
```json
{
    "data": {
        "count": 1,
        "query": "arrabiata",
        "recipes": [
            {
                "id": "52771",
                "area": "Italian",
                "name": "Spicy Arrabiata Penne",
                "tags": [
                    "Pasta",
                    "Curry"
                ],
                "source": null,
                "youtube": "https://www.youtube.com/watch?v=1IszT_guI08",
                "category": "Vegetarian",
                "thumbnail": "https://www.themealdb.com/images/media/meals/ustsqw1468250014.jpg",
                "ingredients": [
                    {
                        "measure": "1 pound",
                        "ingredient": "penne rigate"
                    },
                    {
                        "measure": "1/4 cup",
                        "ingredient": "olive oil"
                    },
                    {
                        "measure": "3 cloves",
                        "ingredient": "garlic"
                    },
                    {
                        "measure": "1 tin",
                        "ingredient": "chopped tomatoes"
                    },
                    {
                        "measure": "1/2 teaspoon",
                        "ingredient": "red chilli flakes"
                    },
                    {
                        "measure": "1/2 teaspoon",
                        "ingredient": "italian seasoning"
                    },
                    {
   
…(truncated, see openapi.json for full schema)
```

### Discovery

#### `GET /v1/categories` — All recipe categories

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/recipes-api/v1/categories"
```

**Response:**
```json
{
    "data": {
        "count": 14,
        "categories": [
            {
                "id": "1",
                "name": "Beef",
                "thumbnail": "https://www.themealdb.com/images/category/beef.png",
                "description": "Beef is the culinary name for meat from cattle, particularly skeletal muscle. Humans have been eating beef since prehistoric times.[1] Beef is a source of high-quality protein and essential nutrients.[2]"
            },
            {
                "id": "2",
                "name": "Chicken",
                "thumbnail": "https://www.themealdb.com/images/category/chicken.png",
                "description": "Chicken is a type of domesticated fowl, a subspecies of the red junglefowl. It is one of the most common and widespread domestic animals, with a total population of more than 19 billion as of 2011.[1] Humans commonly keep chickens as a source of food (consuming both their meat and eggs) and, more rarely, as pets."
            },
            {
                "id": "3",
                "name": "Dessert",
                "thumbnail": "https://www.themealdb.com/images/category/dessert.png",
                "description": "Dessert is a course that concludes a meal. The course usually consists of sweet foods, such as confections dishes or fruit, and possibly a beverage such as dessert wine or liqueur, however in the United States it may include coffee, cheeses, nuts, or other savory items regarded as a separate course elsewhere. I
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/filter` — Recipes by category, area or ingredient

**Parameters:**
- `category` (query, optional, string) — Category (e.g. Seafood) Example: `Seafood`
- `area` (query, optional, string) — Cuisine/area (e.g. Italian) Example: `Italian`
- `ingredient` (query, optional, string) — Main ingredient (e.g. chicken) Example: `chicken`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/recipes-api/v1/filter?category=Seafood&area=Italian&ingredient=chicken"
```

**Response:**
```json
{
    "data": {
        "count": 74,
        "filter": {
            "type": "category",
            "value": "Seafood"
        },
        "recipes": [
            {
                "id": "53147",
                "name": "Arroz con gambas y calamar",
                "thumbnail": "https://www.themealdb.com/images/media/meals/jc6oub1763196663.jpg"
            },
            {
                "id": "52959",
                "name": "Baked salmon with fennel & tomatoes",
                "thumbnail": "https://www.themealdb.com/images/media/meals/1548772327.jpg"
            },
            {
                "id": "53440",
                "name": "Balchi di Pisca",
                "thumbnail": "https://www.themealdb.com/images/media/meals/qqwhw51780093126.jpg"
            },
            {
                "id": "53239",
                "name": "Bang bang prawn salad",
                "thumbnail": "https://www.themealdb.com/images/media/meals/4xcfai1763765676.jpg"
            },
            {
                "id": "53103",
                "name": "Barramundi with Moroccan spices",
                "thumbnail": "https://www.themealdb.com/images/media/meals/4o4wh11761848573.jpg"
            },
            {
                "id": "52819",
                "name": "Cajun spiced fish tacos",
                "thumbnail": "https://www.themealdb.com/images/media/meals/uvuyxu1503067369.jpg"
            },
            {
                "id": "53428",
                "name": "Camaro Grelhado Com Mol
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/list` — List filter values

**Parameters:**
- `type` (query, required, string) — categories | areas | ingredients Example: `areas`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/recipes-api/v1/list?type=areas"
```

**Response:**
```json
{
    "data": {
        "type": "areas",
        "count": 195,
        "values": [
            "Afghan",
            "Albanian",
            "Algerian",
            "Andorran",
            "Angolan",
            "Antiguan, Barbudan",
            "Argentine",
            "Armenian",
            "Aruban",
            "Australian",
            "Austrian",
            "Azerbaijani",
            "Bahamian",
            "Bahraini",
            "Bangladeshi",
            "Barbadian",
            "Belarusian",
            "Belgian",
            "Belizean",
            "Beninese",
            "Bermudian",
            "Bhutanese",
            "Bolivian",
            "Bosnian, Herzegovinian",
            "Motswana",
            "Brazilian",
            "Bruneian",
            "Bulgarian",
            "Burkinabe",
            "Burundian",
            "Cambodian",
            "Cameroonian",
            "Canadian",
            "Cape Verdian",
            "Caymanian",
            "Central African",
            "Chadian",
            "Chilean",
            "Chinese",
            "Colombian",
            "Costa Rican",
            "Croatian",
            "Cuban",
            "Cypriot",
            "Czech",
            "Danish",
            "Djibouti",
            "Dominican",
            "Dominican",
            "Congolese",
            "Ecuadorean",
            "Egyptian",
            "Salvadoran",
            "Equatorial Guinean",
            "Eritrean",
            "Estonian",
            
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/recipes-api
OpenAPI spec: https://www.oanor.com/api/recipes-api/openapi.json
