PHPackages                             pxgamer/spoonacularapi - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. pxgamer/spoonacularapi

AbandonedArchivedLibrary[API Development](/categories/api)

pxgamer/spoonacularapi
======================

The spoonacular Nutrition, Recipe, and Food API allows you to access over 360,000 recipes and 80,000 food products.

v1.0.3(3y ago)660MITPHPPHP &gt;=5.6

Since Nov 22Pushed 3y ago1 watchersCompare

[ Source](https://github.com/owenvoke/spoonacularapi)[ Packagist](https://packagist.org/packages/pxgamer/spoonacularapi)[ Fund](https://ecologi.com/owenvoke?gift-trees)[ GitHub Sponsors](https://github.com/owenvoke)[ RSS](/packages/pxgamer-spoonacularapi/feed)WikiDiscussions main Synced 3d ago

READMEChangelogDependencies (4)Versions (5)Used By (0)

spoonacularapi
==============

[](#spoonacularapi)

[![Latest Version on Packagist](https://camo.githubusercontent.com/95d8246a40ab6c6185f7d13ac6d773c6abd9d385dd019cf3cf17f88fd1934baf/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f707867616d65722f73706f6f6e6163756c61726170692e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/pxgamer/spoonacularapi)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![Build Status](https://camo.githubusercontent.com/e4255df6eda833a46210d6aad1cf90e1c6a8c3f359aa5c238237d20171edf594/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f707867616d65722f73706f6f6e6163756c61726170692f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/pxgamer/spoonacularapi)[![Style CI](https://camo.githubusercontent.com/b25a8506ceeb0ec0d32aae717f6fe15dde6d4574ba428c4394da7d299d4129dd/68747470733a2f2f7374796c6563692e696f2f7265706f732f3131313636313038332f736869656c64)](https://styleci.io/repos/111661083)[![Code Coverage](https://camo.githubusercontent.com/8f728d54b56826d3a86d2f8ba6468af3c92e1819f4705ddc949b183d6c354cae/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f707867616d65722f73706f6f6e6163756c61726170692e7376673f7374796c653d666c61742d737175617265)](https://codecov.io/gh/pxgamer/spoonacularapi)[![Total Downloads](https://camo.githubusercontent.com/7d7875bcf5b7e6861b185c8ca0b6faf4f8bcded4b742c962c498aa42ee471075/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f707867616d65722f73706f6f6e6163756c61726170692e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/pxgamer/spoonacularapi)

The spoonacular Nutrition, Recipe, and Food API allows you to access over 360,000 recipes and 80,000 food products.

Install
-------

[](#install)

Via Composer

```
$ composer require pxgamer/spoonacularapi
```

Usage
-----

[](#usage)

You need the following information for initializing the API client.

ParameterDescriptionxMashapeKeyThe Mashape application you want to use for this session.API client can be initialized as following.

```
// Configuration parameters
$xMashapeKey = "xMashapeKey"; // The Mashape application you want to use for this session.

$client = new SpoonacularAPIClient($xMashapeKey);
```

#### Get singleton instance

[](#get-singleton-instance)

The singleton instance of the `APIController` class can be accessed from the API Client.

```
$client = $client->getClient();
```

#### getProductInformation

[](#getproductinformation)

> *Tags:* `Skips Authentication`

> Get information about a packaged food product.

```
function getProductInformation($id)
```

#### Parameters

[](#parameters)

ParameterTagsDescriptionid`Required` `DefaultValue`The id of the packaged food product.#### Example Usage

[](#example-usage)

```
$id = 22347;

$result = $client->getProductInformation($id);
```

#### findSimilarRecipes

[](#findsimilarrecipes)

> *Tags:* `Skips Authentication`

> Find recipes which are similar to the given one.

```
function findSimilarRecipes($id)
```

#### Parameters

[](#parameters-1)

ParameterTagsDescriptionid`Required` `DefaultValue`The id of the source recipe to which similar recipes should be found.#### Example Usage

[](#example-usage-1)

```
$id = 156992;

$result = $client->findSimilarRecipes($id);
```

#### getAutocompleteIngredientSearch

[](#getautocompleteingredientsearch)

> *Tags:* `Skips Authentication`

> Autocomplete a search for an ingredient.

```
function getAutocompleteIngredientSearch($query)
```

#### Parameters

[](#parameters-2)

ParameterTagsDescriptionquery`Required` `DefaultValue`The query - a partial or full ingredient name.#### Example Usage

[](#example-usage-2)

```
$query = 'appl';

$result = $client->getAutocompleteIngredientSearch($query);
```

#### createVisualizePriceBreakdown

[](#createvisualizepricebreakdown)

> *Tags:* `Skips Authentication`

> Visualize the price breakdown of a recipe.

```
function createVisualizePriceBreakdown(
        $ingredientList,
        $servings,
        $defaultCss = 'checked',
        $mode = 1,
        $fieldParameters = NULL)
```

#### Parameters

[](#parameters-3)

ParameterTagsDescriptioningredientList`Required` `DefaultValue`The ingredient list of the recipe, one ingredient per line.servings`Required` `DefaultValue`The number of servings.defaultCss`Optional` `DefaultValue`Whether the widget should be styled with the default css.mode`Optional` `DefaultValue`The mode in which the widget should be delivered. 1 = separate views (compact), 2 = all in one view (full).fieldParameters`Optional`Additional optional form parameters are supported by this method#### Example Usage

[](#example-usage-3)

```
$ingredientList = '3 oz flour';
$servings = 2;
$defaultCss = 'checked';
$mode = 1;
// key-value map for optional form parameters
$formParams = array('key' => 'value');

$result = $client->createVisualizePriceBreakdown($ingredientList, $servings, $defaultCss, $mode, $formParams);
```

#### createVisualizeNutrition

[](#createvisualizenutrition)

> *Tags:* `Skips Authentication`

> Visualize a recipe's nutritional information.

```
function createVisualizeNutrition(
        $ingredientList,
        $servings,
        $defaultCss = 'checked',
        $fieldParameters = NULL)
```

#### Parameters

[](#parameters-4)

ParameterTagsDescriptioningredientList`Required` `DefaultValue`The ingredient list of the recipe, one ingredient per line.servings`Required` `DefaultValue`The number of servings.defaultCss`Optional` `DefaultValue`Whether the ingredient list should be styled with the default css.fieldParameters`Optional`Additional optional form parameters are supported by this method#### Example Usage

[](#example-usage-4)

```
$ingredientList = '3 oz flour';
$servings = 2;
$defaultCss = 'checked';
// key-value map for optional form parameters
$formParams = array('key' => 'value');

$result = $client->createVisualizeNutrition($ingredientList, $servings, $defaultCss, $formParams);
```

#### createVisualizeIngredients

[](#createvisualizeingredients)

> *Tags:* `Skips Authentication`

> Visualize ingredients of a recipe.

```
function createVisualizeIngredients(
        $ingredientList,
        $servings,
        $defaultCss = 'checked',
        $measure = 'metric',
        $view = 'grid',
        $fieldParameters = NULL)
```

#### Parameters

[](#parameters-5)

ParameterTagsDescriptioningredientList`Required` `DefaultValue`The ingredient list of the recipe, one ingredient per line.servings`Required` `DefaultValue`The initial number of servings.defaultCss`Optional` `DefaultValue`Whether the ingredient list should be styled with the default css.measure`Optional` `DefaultValue`The initial measure, either "metric" or "us".view`Optional` `DefaultValue`The initial view, either "grid" or "list".fieldParameters`Optional`Additional optional form parameters are supported by this method#### Example Usage

[](#example-usage-5)

```
$ingredientList = '3 oz flour';
$servings = 2;
$defaultCss = 'checked';
$measure = 'metric';
$view = 'grid';
// key-value map for optional form parameters
$formParams = array('key' => 'value');

$result = $client->createVisualizeIngredients($ingredientList, $servings, $defaultCss, $measure, $view, $formParams);
```

#### getSummarizeRecipe

[](#getsummarizerecipe)

> *Tags:* `Skips Authentication`

> Summarize the recipe in a short text.

```
function getSummarizeRecipe($id)
```

#### Parameters

[](#parameters-6)

ParameterTagsDescriptionid`Required` `DefaultValue`The id of the recipe that should be summarized.#### Example Usage

[](#example-usage-6)

```
$id = 4632;

$result = $client->getSummarizeRecipe($id);
```

#### searchGroceryProducts

[](#searchgroceryproducts)

> *Tags:* `Skips Authentication`

> Search packaged food products like frozen pizza and snickers bars.

```
function searchGroceryProducts(
        $query,
        $number = 10,
        $offset = 0,
        $queryParameters = NULL)
```

#### Parameters

[](#parameters-7)

ParameterTagsDescriptionquery`Required` `DefaultValue`The search query.number`Optional` `DefaultValue`The number of results to retrieve, defaults to 10.offset`Optional` `DefaultValue`The number of results to skip, defaults to 0.queryParameters`Optional`Additional optional query parameters are supported by this method#### Example Usage

[](#example-usage-7)

```
$query = 'snickers';
$number = 10;
$offset = 0;
// key-value map for optional query parameters
$queryParams = array('key' => 'value');

$result = $client->searchGroceryProducts($query, $number, $offset, $queryParams);
```

#### getQuickAnswer

[](#getquickanswer)

> *Tags:* `Skips Authentication`

> Answer a nutrition related natural language question.

```
function getQuickAnswer($q)
```

#### Parameters

[](#parameters-8)

ParameterTagsDescriptionq`Required` `DefaultValue`The nutrition-related question.#### Example Usage

[](#example-usage-8)

```
$q = 'How much vitamin c is in 2 apples?';

$result = $client->getQuickAnswer($q);
```

#### getRecipeInformation

[](#getrecipeinformation)

> *Tags:* `Skips Authentication`

> Get information about a recipe.

```
function getRecipeInformation($id)
```

#### Parameters

[](#parameters-9)

ParameterTagsDescriptionid`Required` `DefaultValue`The id of the recipe.#### Example Usage

[](#example-usage-9)

```
$id = 156992;

$result = $client->getRecipeInformation($id);
```

#### createParseIngredients

[](#createparseingredients)

> *Tags:* `Skips Authentication`

> Extract an ingredient from plain text.

```
function createParseIngredients(
        $ingredientList,
        $servings)
```

#### Parameters

[](#parameters-10)

ParameterTagsDescriptioningredientList`Required` `DefaultValue`The ingredient list of the recipe, one ingredient per line.servings`Required` `DefaultValue`The number of servings that you can make from the ingredients.#### Example Usage

[](#example-usage-10)

```
$ingredientList = '3 oz pork shoulder';
$servings = 2;

$result = $client->createParseIngredients($ingredientList, $servings);
```

#### createMapIngredients

[](#createmapingredients)

> *Tags:* `Skips Authentication`

> Map ingredients to food products.

```
function createMapIngredients(
        $ingredientList,
        $servings)
```

#### Parameters

[](#parameters-11)

ParameterTagsDescriptioningredientList`Required` `DefaultValue`A new line-separated list of ingredients.servings`Required` `DefaultValue`The number of servings this recipe makes.#### Example Usage

[](#example-usage-11)

```
$ingredientList = '200g flour\\n3 eggs';
$servings = 1;

$result = $client->createMapIngredients($ingredientList, $servings);
```

#### getExtractRecipeFromWebsite

[](#getextractrecipefromwebsite)

> *Tags:* `Skips Authentication`

> Extract recipe data from a recipe blog or Web page.

```
function getExtractRecipeFromWebsite(
        $url,
        $forceExtraction = false,
        $queryParameters = NULL)
```

#### Parameters

[](#parameters-12)

ParameterTagsDescriptionurl`Required` `DefaultValue`The URL of the recipe page.forceExtraction`Optional` `DefaultValue`If true, the extraction will be triggered no matter whether we know the recipe already. Use that only if information is missing as this operation is slower.queryParameters`Optional`Additional optional query parameters are supported by this method#### Example Usage

[](#example-usage-12)

```
$url = 'http://www.melskitchencafe.com/the-best-fudgy-brownies/';
$forceExtraction = false;
// key-value map for optional query parameters
$queryParams = array('key' => 'value');

$result = $client->getExtractRecipeFromWebsite($url, $forceExtraction, $queryParams);
```

#### getComputeDailyMealPlan

[](#getcomputedailymealplan)

> *Tags:* `Skips Authentication`

> Compute a meal plan for a day.

```
function getComputeDailyMealPlan(
        $targetCalories,
        $timeFrame)
```

#### Parameters

[](#parameters-13)

ParameterTagsDescriptiontargetCalories`Required` `DefaultValue`The target number of calories per day.timeFrame`Required` `DefaultValue`For one day or a complete week, allowed values are "day" and "week".#### Example Usage

[](#example-usage-13)

```
$targetCalories = 2000;
$timeFrame = 'day';

$result = $client->getComputeDailyMealPlan($targetCalories, $timeFrame);
```

#### createClassifyGroceryProductsBatch

[](#createclassifygroceryproductsbatch)

> *Tags:* `Skips Authentication`

> Given a set of product jsons, get back classified products.

```
function createClassifyGroceryProductsBatch($productJsonArray)
```

#### Parameters

[](#parameters-14)

ParameterTagsDescriptionproductJsonArray`Required` `Collection`A JSON Array of products.#### Example Usage

[](#example-usage-14)

```
$productjsonarray = new Productjsonarray();
$productJsonArray = array($productjsonarray);

$result = $client->createClassifyGroceryProductsBatch($productJsonArray);
```

#### createClassifyCuisine

[](#createclassifycuisine)

> *Tags:* `Skips Authentication`

> Classify the recipe's cuisine.

```
function createClassifyCuisine(
        $ingredientList,
        $title)
```

#### Parameters

[](#parameters-15)

ParameterTagsDescriptioningredientList`Required` `DefaultValue`The ingredient list of the recipe, one ingredient per line.title`Required` `DefaultValue`The title of the recipe.#### Example Usage

[](#example-usage-15)

```
$ingredientList = '3 oz pork shoulder';
$title = 'Pork roast with green beans';

$result = $client->createClassifyCuisine($ingredientList, $title);
```

#### createClassifyAGroceryProduct

[](#createclassifyagroceryproduct)

> *Tags:* `Skips Authentication`

> Given a grocery product title, this endpoint allows you to detect what basic ingredient it is.

```
function createClassifyAGroceryProduct($productJson)
```

#### Parameters

[](#parameters-16)

ParameterTagsDescriptionproductJson`Required`The json representation of a product.#### Example Usage

[](#example-usage-16)

```
$productJson = new Productjson();

$result = $client->createClassifyAGroceryProduct($productJson);
```

#### searchRecipes

[](#searchrecipes)

> *Tags:* `Skips Authentication`

> Search recipes in natural language.

```
function searchRecipes(
        $query,
        $cuisine = 'italian',
        $diet = 'vegetarian',
        $excludeIngredients = 'coconut',
        $intolerances = 'egg, gluten',
        $limitLicense = false,
        $number = 10,
        $offset = 0,
        $type = 'main course',
        $queryParameters = NULL)
```

#### Parameters

[](#parameters-17)

ParameterTagsDescriptionquery`Required` `DefaultValue`The (natural language) recipe search query.cuisine`Optional` `DefaultValue`The cuisine(s) of the recipes. One or more (comma separated) of the following: african, chinese, japanese, korean, vietnamese, thai, indian, british, irish, french, italian, mexican, spanish, middle eastern, jewish, american, cajun, southern, greek, german, nordic, eastern european, caribbean, or latin american.diet`Optional` `DefaultValue`The diet to which the recipes must be compliant. Possible values are: pescetarian, lacto vegetarian, ovo vegetarian, vegan, and vegetarian.excludeIngredients`Optional` `DefaultValue`An comma-separated list of ingredients or ingredient types that must not be contained in the recipes.intolerances`Optional` `DefaultValue`A comma-separated list of intolerances. All found recipes must not have ingredients that could cause problems for people with one of the given tolerances. Possible values are: dairy, egg, gluten, peanut, sesame, seafood, shellfish, soy, sulfite, tree nut, and wheat.limitLicense`Optional` `DefaultValue`Whether the recipes should have an open license that allows for displaying with proper attribution.number`Optional` `DefaultValue`The number of results to return (between 0 and 100).offset`Optional` `DefaultValue`The number of results to skip (between 0 and 900).type`Optional` `DefaultValue`The type of the recipes. One of the following: main course, side dish, dessert, appetizer, salad, bread, breakfast, soup, beverage, sauce, or drink.queryParameters`Optional`Additional optional query parameters are supported by this method#### Example Usage

[](#example-usage-17)

```
$query = 'burger';
$cuisine = 'italian';
$diet = 'vegetarian';
$excludeIngredients = 'coconut';
$intolerances = 'egg, gluten';
$limitLicense = false;
$number = 10;
$offset = 0;
$type = 'main course';
// key-value map for optional query parameters
$queryParams = array('key' => 'value');

$result = $client->searchRecipes($query, $cuisine, $diet, $excludeIngredients, $intolerances, $limitLicense, $number, $offset, $type, $queryParams);
```

#### findByNutrients

[](#findbynutrients)

> *Tags:* `Skips Authentication`

> Find a set of recipes that adhere to the given nutrient limits. All the found recipes will have macro nutrients within the calories, protein, fat, and carbohydrate limits.

```
function findByNutrients(
        $maxcalories = 1500,
        $maxcarbs = 100,
        $maxfat = 100,
        $maxprotein = 100,
        $mincalories = 0,
        $minCarbs = 0,
        $minfat = 0,
        $minProtein = 0,
        $queryParameters = NULL)
```

#### Parameters

[](#parameters-18)

ParameterTagsDescriptionmaxcalories`Optional` `DefaultValue`The maximum number of calories the recipe can have.maxcarbs`Optional` `DefaultValue`The maximum number of carbohydrates in grams the recipe can have.maxfat`Optional` `DefaultValue`The maximum number of fat in grams the recipe can have.maxprotein`Optional` `DefaultValue`The maximum number of protein in grams the recipe can have.mincalories`Optional` `DefaultValue`The minimum number of calories the recipe must have.minCarbs`Optional` `DefaultValue`The minimum number of carbohydrates in grams the recipe must have.minfat`Optional` `DefaultValue`The minimum number of fat in grams the recipe must have.minProtein`Optional` `DefaultValue`The minimum number of protein in grams the recipe must have.queryParameters`Optional`Additional optional query parameters are supported by this method#### Example Usage

[](#example-usage-18)

```
$maxcalories = 1500;
$maxcarbs = 100;
$maxfat = 100;
$maxprotein = 100;
$mincalories = 0;
$minCarbs = 0;
$minfat = 0;
$minProtein = 0;
// key-value map for optional query parameters
$queryParams = array('key' => 'value');

$result = $client->findByNutrients($maxcalories, $maxcarbs, $maxfat, $maxprotein, $mincalories, $minCarbs, $minfat, $minProtein, $queryParams);
```

#### findByIngredients

[](#findbyingredients)

> *Tags:* `Skips Authentication`

> Find recipes that use as many of the given ingredients as possible and have as little as possible missing ingredients. This is a whats in your fridge API endpoint.

```
function findByIngredients(
        $ingredients,
        $limitLicense = false,
        $number = 5,
        $ranking = 1,
        $queryParameters = NULL)
```

#### Parameters

[](#parameters-19)

ParameterTagsDescriptioningredients`Required` `DefaultValue`A comma-separated list of ingredients that the recipes should contain.limitLicense`Optional` `DefaultValue`Whether to only show recipes with an attribution license.number`Optional` `DefaultValue`The maximal number of recipes to return (default = 5).ranking`Optional` `DefaultValue`Whether to maximize used ingredients (1) or minimize missing ingredients (2) first.queryParameters`Optional`Additional optional query parameters are supported by this method#### Example Usage

[](#example-usage-19)

```
$ingredients = 'apples,flour,sugar';
$limitLicense = false;
$number = 5;
$ranking = 1;
// key-value map for optional query parameters
$queryParams = array('key' => 'value');

$result = $client->findByIngredients($ingredients, $limitLicense, $number, $ranking, $queryParams);
```

#### createRecipeCard

[](#createrecipecard)

> *Tags:* `Skips Authentication`

> Create a recipe card given a recipe.

```
function createRecipeCard(
        $backgroundImage,
        $image,
        $ingredients,
        $instructions,
        $mask,
        $readyInMinutes,
        $servings,
        $title,
        $author = 'Emily Henderson',
        $backgroundColor = '#ffffff',
        $fontColor = '#333333',
        $source = 'spoonacular.com',
        $fieldParameters = NULL)
```

#### Parameters

[](#parameters-20)

ParameterTagsDescriptionbackgroundImage`Required` `DefaultValue`The background image ("none","background1", or "background2").image`Required` `DefaultValue`The binary image of the recipe as jpg.ingredients`Required` `DefaultValue`The ingredient list of the recipe, one ingredient per line.instructions`Required` `DefaultValue`The instructions to make the recipe. One step per line.mask`Required` `DefaultValue`The mask to put over the recipe image ("ellipseMask", "diamondMask", "diamondMask", "starMask", "heartMask", "potMask", "fishMask").readyInMinutes`Required` `DefaultValue`The number of minutes it takes to get the recipe on the table.servings`Required` `DefaultValue`The number of servings that you can make from the ingredients.title`Required` `DefaultValue`The title of the recipe.author`Optional` `DefaultValue`The author of the recipe.backgroundColor`Optional` `DefaultValue`The background color on the recipe card as a hex-string.fontColor`Optional` `DefaultValue`The font color on the recipe card as a hex-string.source`Optional` `DefaultValue`The source of the recipe.fieldParameters`Optional`Additional optional form parameters are supported by this method#### Example Usage

[](#example-usage-20)

```
$backgroundImage = 'background1';
$image = The image.;
$ingredients = '2 cups of green beans';
$instructions = 'cook the beans';
$mask = 'ellipseMask';
$readyInMinutes = 60;
$servings = 2;
$title = 'Pork tenderloin with green beans';
$author = 'Emily Henderson';
$backgroundColor = '#ffffff';
$fontColor = '#333333';
$source = 'spoonacular.com';
// key-value map for optional form parameters
$formParams = array('key' => 'value');

$result = $client->createRecipeCard($backgroundImage, $image, $ingredients, $instructions, $mask, $readyInMinutes, $servings, $title, $author, $backgroundColor, $fontColor, $source, $formParams);
```

Change log
----------

[](#change-log)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Testing
-------

[](#testing)

```
$ composer test
```

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) and [CODE\_OF\_CONDUCT](CODE_OF_CONDUCT.md) for details.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [pxgamer](https://github.com/pxgamer)
- [apimatic](https://github.com/apimatic)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE) for more information.

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~608 days

Total

4

Last Release

1270d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1899334?v=4)[Owen Voke](/maintainers/owenvoke)[@owenvoke](https://github.com/owenvoke)

---

Top Contributors

[![owenvoke](https://avatars.githubusercontent.com/u/1899334?v=4)](https://github.com/owenvoke "owenvoke (28 commits)")

---

Tags

phpspoonacularspoonacular-apiapisdkspoonacular API

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/pxgamer-spoonacularapi/health.svg)

```
[![Health](https://phpackages.com/badges/pxgamer-spoonacularapi/health.svg)](https://phpackages.com/packages/pxgamer-spoonacularapi)
```

###  Alternatives

[bandwidth/sdk

Bandwidth's set of APIs

16948.8k1](/packages/bandwidth-sdk)[messagemedia/messages-sdk

The MessageMedia Messages API provides a number of endpoints for building powerful two-way messaging applications.

13390.6k](/packages/messagemedia-messages-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
