Take the 2-minute tour ×

I need to use an API. I want to do the programming in PHP, but I have no idea where to start. I contacted the creator of the API asking

how should I use API's in general?

and he sent a link to the GitHub repository of someone who made a 'wrapper' for the API. What's a wrapper? And how do I use the API in PHP?

A Google search for api php tutorial only gives results for how to create an API, not how to use them. I have no idea where to start, can someone help me?

share|improve this question

closed as too broad by John Conde Jul 31 at 11:45


OK, so for the people who still don't understand it: basically, each API function has a URL. For example: localhost/APIv1/getFriends/user, this will for example print the friends of the given user. It will be outputted in for example XML or JSON. When you go to localhost/APIv1/getFriends/user, you have just sent a request to the API! It will output it's response. It's actually that simple. So to call an API request in a programming language, don't let terms like 'wrapper', etc. put you off! The simplest way would be to just request the page in the programming language, store it in a 1/2 –  William D. Edwards Oct 23 at 15:47
variable and then print it. So for example, in PHP we can request a page with the file_get_contents function. We're going to use the api.yomomma.info API for an example. This API will output a random yo momma joke in JSON. –  William D. Edwards Oct 23 at 15:49
$data = file_get_contents('http://api.yomomma.info'); echo $data; –  William D. Edwards Oct 23 at 15:50
Your page will now show a random yo momma joke from the yo momma API! Just plain output shouldn't be used in production, so you have to decode it. In PHP you can decode JSON with the json_decode function, for example. –  William D. Edwards Oct 23 at 15:50
I actually wanted to add this as an answer but I can't due to the question is flagged as 'too broad' (which in my opinion isn't...) –  William D. Edwards Oct 23 at 15:51

3 Answers 3

up vote 1 down vote accepted

REST API are without sessions. API is any part of code which return you the desired output. So as the API you are using is RESTfull api it has to got some url to hit through. say http:/something/id which will return some JSON input to you. Now that API may return you a webpage containing JSON or a string containing JSON. Using file_get_contents() on the API url you can get the json response in a variable and the you can parse that json to get your data

share|improve this answer
I think I'm beginning to understand the basics. Thanks. –  William D. Edwards Jul 31 at 8:30

As stated above, API stands for Application Programming Interface. In layman's terms, it's basically a service that you can access. In most cases, it is a service that you can access whenever you are looking for information that is not on-hand.

For example, if I want information about weather forecasts for a specific area, I can access one of the various weather APIs. If I want information about local bus times, I can check to see if the bus company has an API that I can use. If I want information about a specific Youtube video, I can use the Youtube API.

As you can see, the possibilities are endless and each API can be accessed in a completely different way. The URL structure, the request method (GET, POST, PUT) and the result format (XML, JSON) can differ from one API to the next.

In most cases, an API key is a string of characters that gives you access to the API. It also allows the API service to identify you (i.e. usage limits / billing).

A wrapper class (in regards to an API) is basically just a class that makes it easier to access a specific API. For example:

class Weather{

    const APIKEY = 'mykey';

    public static function forecast($location){
        $location = urlencode($location);
        $url = "http://api.com/forecast?loc=$location&key=" . Weather::APIKEY;
        $contents = json_decode(file_get_contents($url));
        return $contents;

    public static function current($location){
        $location = urlencode($location);
        $url = "http://api.com/now?loc=$location&key=" . Weather::APIKEY;
        $contents = json_decode(file_get_contents($url));
        return $contents;


The example wrapper class above would allow me to easily access the weather API in question, like so:

$forecastDublin = Weather::forecast('Dublin, Ireland');
$forecastLondon = Weather::forecast('London, England');
$currentWeatherLA = Weather::current('Los Angeles, USA');

i.e. I do not need to construct multiple "API calls". In fact - I don't need to worry about how the API calls are constructed. I can just use the wrapper class and remain blissfully ignorant to the internal workings.

share|improve this answer
This makes things much more clear for me :) Therefore, I'll accept this answer. –  William D. Edwards Jul 31 at 10:25
+1, minor bug in your code sample... WeatherApi::APIKEY should be Weather::APIKEY or simply self::APIKEY. (And the URL parameter value $location should be urlencode()d before constructing the request URL if you are passing in special characters, such as the spaces in your example.) –  w3d Jul 31 at 10:55
@w3d Thanks for letting me know! Had originally called the class WeatherApi but shortened it for the sake of space. Also added urlencode on the $location param. –  Wexford Jul 31 at 11:52

An API is an Application Programming Interface. It gives other developers the ability to tap into another application and pull/push data between the two.

You use an API by connecting with an API key that is assigned to you by the API provider.

Beyond that, each API is different. You'll need to read the documentation on how to access the data you're looking for.

share|improve this answer
Well, not all APIs need an API key. In most cases you just need an API key if you request sensitive data. –  Jurik Jul 31 at 7:52
Yes, I know. Each API has functions. How do I call them in PHP? There must be a 'general' way to do that. –  William D. Edwards Jul 31 at 8:10
@Jurik Yeah, given the question, I think you're splitting hairs. ;) –  Paul Dessert Jul 31 at 8:10
@WilliamDavidEdwards - You'll need to learn php. There is no way I can teach you how to use an unknown API here. –  Paul Dessert Jul 31 at 8:11
@PaulDessert I know PHP. The API I want to use RESTful. All responses are return JSON objects. Is that enough info? :) –  William D. Edwards Jul 31 at 8:13
