# Getting started with Mautic API

**URL:** <https://forum.mautic.org/t/getting-started-with-mautic-api/20669>\
**Category:** Product Support\
**Tags:** mautic-3, mautic-4\
**Created:** [August 31, 2021, 9:49pm UTC](https://forum.mautic.org/t/getting-started-with-mautic-api/20669 "2021-08-31T21:49:06Z")\
**Posts on this page:** 1\
**Showing post:** 13

<div class="post-metadata">

**Author:** ![modifiedcontent](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.mautic.org/modifiedcontent/32/511_2.png) [@modifiedcontent](https://forum.mautic.org/u/modifiedcontent)\
**Post date:** [September 5, 2021, 12:04pm UTC](https://forum.mautic.org/t/getting-started-with-mautic-api/20669/13 "2021-09-05T12:04:10Z")

</div>

Trying to use the Composer way to install the PHP API library that is apparently still required. Running the command `composer require mautic/api-library` as user, not root, from the Mautic directory, results in following error:

> No composer.json in current directory, do you want to use the one at /home/myusername/public\_html? [Y,n]?

That’s a no…

What can I try next? Should I copy a composer.json from somewhere else (?) and upload to my Mautic installation folder so Composer can work its “magic”?

**Edit:**

I copied the composer.json from the [API library on Github](https://github.com/mautic/api-library) to my Mautic folder and “simply ran” the magic Composer command again, resulting in the following error message:

> Warning from [https://repo.packagist.org](https://repo.packagist.org): Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2. See [Deprecating Packagist.org support for Composer 1.x](https://blog.packagist.com/deprecating-composer-1-support/)  
> Using version ^3.0 for mautic/api-library  
> Root package ‘mautic/api-library’ cannot require itself in its composer.json

**Edit2:**

First Composer update attempt with `composer self-update --stable`

> [Composer\Downloader\TransportException]  
> The “[https://getcomposer.org/versions](https://getcomposer.org/versions)” file could not be downloaded: allow\_  
> url\_fopen must be enabled in php.ini (https:// wrapper is disabled in the s  
> erver configuration by allow\_url\_fopen=0  
> failed to open stream: no suitable wrapper could be found)

**Edit3:**

After enabling allow\_url\_fopen, Composer self-update runs into permission errors. So this update has to be run as root? Composer self-update to version 2.1.6 went through run as root.

**Edit4:**

After updating Composer and adding the composer.json and composer.lock from the latest Mautic package to my Mautic installation folder, running `composer require mautic/api-library` again, again as user instead of root, produces this error:

> Using version ^3.0 for mautic/api-library  
> ./composer.json has been updated  
> Running composer update mautic/api-library  
> Loading composer repositories witUpdating dependencies  
> Your requirements could not be resolved to an installable set of packages.
> 
> Problem 1  
> - Root composer.json requires mautic/core-lib ^3.0 → satisfiable by mautic/core-lib[3.x-dev].  
> - mautic/core-lib 3.x-dev requires symfony/console ~3.4.0 → found symfony/console[v3.4.0-BETA1, …, 3.4.x-dev] but the package is fixed to v4.4.26 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
> 
> Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
> 
> Installation failed, reverting ./composer.json and ./composer.lock to their original content.

**Edit5:**

Trying again with `composer require mautic/api-library --with-all-dependencies` produces the following error:

> Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 67108864 bytes) in phar:///usr/local/bin/composer/src/Composer/DependencyResolver/RuleSetGenerator.php on line 110

Apparently Composer needs a PHP memory limit of 2G, which seems insane to me…

After eventually setting the memory limit to 3G (!), something finally went through, producing the following error:

> Your requirements could not be resolved to an installable set of packages.
> 
> Problem 1  
> - Root composer.json requires mautic/core-lib ^3.0 → satisfiable by mautic/core-lib[3.x-dev].  
> - mautic/core-lib 3.x-dev requires willdurand/oauth-server-bundle dev-release-0.0.3 → found willdurand/oauth-server-bundle[dev-master, 0.0.1] but it does not match the constraint.
> 
> Installation failed, reverting ./composer.json and ./composer.lock to their original content.

Note that Composer is looking for packages required by mautic/core-lib 3.x-dev; I had already upgraded to Mautic 4 and am using the most recent composer.json file I could find.

**Edit6:**

Apparently Mautic is [doubling down on Composer](https://www.mautic.org/blog/developer/managing-mautic-with-composer). There is command `composer update mautic/core --with-dependencies` that looks usable for my situation and maybe I can find an updated composer.json here somewhere?

`composer update mautic/core --with-dependencies` also requires 3G+ memory in PHP and produces the same errors as before:

> Loading composer repositories with package information  
> Package “mautic/core” listDependency “composer/installers” is also a root requirement. Package has not been listed as an update argument, so keeping locked at old version. Use --with-all-dependencies (-W) to include root dependencies.  
> Dependency “symfony/var-dumper” is also a root requirement. Package has not been listed as an update argument, so keeping locked at old version. Use --with-all-dependencies (-W) to include root dependencies.  
> Updating dependencies  
> Your requirements could not be resolved to an installable set of packages.
> 
> Problem 1  
> - Root composer.json requires mautic/core-lib ^3.0 → satisfiable by mautic/core-lib[3.x-dev].  
> - mautic/core-lib 3.x-dev requires willdurand/oauth-server-bundle dev-release-0.0.3 → found willdurand/oauth-server-bundle[dev-master, 0.0.1] but it does not match the constraint.

Note that contrary to these warnings, I already had `--with-all-dependencies` in the command.

**Edit7:**

[Does it have something to do with this bug?](https://github.com/mautic/mautic/issues/9557) [Same bug here](https://gitmemory.com/issue/mautic/mautic/9557/786726834) - the only page that comes up if you google “willdurand/oauth-server-bundle dev-release-0.0.3”.

@silavapi had answered this bug with ‘Please ensure that you are using Composer 1 - we will not be supporting Composer 2 until Mautic 4.’ As you can see above, Composer 1 didn’t work; we are now on Composer 2 with Mautic 4.

Where is ‘willdurand/oauth-server-bundle dev-release-0.0.3’ required? I don’t see it in the [composer.json for Mautic 4](https://raw.githubusercontent.com/mautic/mautic/4.x/composer.json) and can’t find it anywhere in files in my Mautic installation. If I knew where that requirement came from I could try if changing it to 0.0.1 would fix this error.

[willdurand/oauth-server-bundle](https://packagist.org/packages/willdurand/oauth-server-bundle) is apparently a ‘Server side implementation of the OAuth 1.0 protocol’. OAuth 1.0 is no longer in Mautic 4. Why is Composer even requiring this?

willdurand/oauth-server-bundle 0.0.3 is required by ‘mautic/core-lib 3.x-dev’. What is ‘mautic/core-lib 3.x-dev’ and should it be in Mautic 4?

**Edit8:**

Tried again with `composer update mautic/core --with-all-dependencies` - note ‘all’ included. Still stalls on the same error:

> Your requirements could not be resolved to an installable set of packages.
> 
> Problem 1  
> - Root composer.json requires mautic/core-lib ^3.0 → satisfiable by mautic/core-lib[3.x-dev].  
> - mautic/core-lib 3.x-dev requires willdurand/oauth-server-bundle dev-release-0.0.3 → found willdurand/oauth-server-bundle[dev-master, 0.0.1] but it does not match the constraint.

---

_[View the full topic](https://forum.mautic.org/t/getting-started-with-mautic-api/20669)._
