Difference between revisions of "Offerit REST API Overview"
From Offerit
OfferitRob (talk | contribs) |
OfferitRob (talk | contribs) |
||
(One intermediate revision by one other user not shown) | |||
Line 7: | Line 7: | ||
The Offerit REST API is accessible at <nowiki>http://<domain>/api/<endpoint>/<action></nowiki> | The Offerit REST API is accessible at <nowiki>http://<domain>/api/<endpoint>/<action></nowiki> | ||
*The API is accessible to admins. '''/api/<endpoint>/<action> is available only to admins.''' | *The API is accessible to admins. '''/api/<endpoint>/<action> is available only to admins.''' | ||
− | *Replace <domain> with your | + | *Replace <domain> with your Offerit install domain name. |
*Replace <endpoint> with the endpoint that you are trying to access | *Replace <endpoint> with the endpoint that you are trying to access | ||
*Some of the endpoints do not require <action> in the url and all of the urls will be specified in the documentation | *Some of the endpoints do not require <action> in the url and all of the urls will be specified in the documentation | ||
Line 83: | Line 83: | ||
$resp = curl_exec($curl); | $resp = curl_exec($curl); | ||
− | //dumps an associative array representation of the json | + | //dumps an associative array representation of the json response |
− | + | $output = json_decode($resp, true); | |
+ | if($output !== NULL) { | ||
+ | //json was valid. Dump the decoded array | ||
+ | print_r($output); | ||
+ | } | ||
+ | else { | ||
+ | //invalid json, just dump the raw response | ||
+ | print_r($resp); | ||
+ | } | ||
// Close request to clear up some resources | // Close request to clear up some resources | ||
curl_close($curl); | curl_close($curl); |
Latest revision as of 11:22, 27 August 2018
Contents
Overview
The Offerit REST API is accessible at http://<domain>/api/<endpoint>/<action>
- The API is accessible to admins. /api/<endpoint>/<action> is available only to admins.
- Replace <domain> with your Offerit install domain name.
- Replace <endpoint> with the endpoint that you are trying to access
- Some of the endpoints do not require <action> in the url and all of the urls will be specified in the documentation
Allowed Endpoints
service
- actions:
- GET /service/ping
report
- actions:
- GET /report/profitloss
transaction
Gaining Access to the REST API
In order to access Offerit API your IP address must be in the ADMIN_API_ALLOWED_IPS list. You can add or remove IP addresses to this list via the Configurations Admin under the "Security" tab.
Allowed HTTP Request Methods
- GET
- POST
- PUT
- PATCH
- For detailed information about these HTTP Request methods, please refer to their official documentation here:
Response Format
Response Status Codes
200
- On Success, the API will return a '200' status and output the results of the API call. Please refer to the available API endpoints for possible responses.
- NOTE: As long as the endpoint and HTTP request method are valid and there are no invalid parameters, a '200' response is returned.
400
- The API will return a '400' status if an invalid or unsupported HTTP request is sent.
404
- The API will return either a '404' status if an invalid parameter is sent, or if an HTTP request is sent to an invalid endpoint.
405
- The API will return a '405' status if an invalid HTTP request method is used.
Authentication
- The Offerit REST API uses HTTP Header Authentication.
- Each REST API request requires the Affiliate username and the Affiliate API key to be sent with the HTTP headers of the request.
- To retrieve your API key simply select it from the login table of your Offerit database or put in a support ticket and we can retrieve it for you.
- If you do not have an API key, you can set one by going to the Affiliates Admin and clicking the icon labeled, "Change API Key".
- Please note that only full admin accounts are authorized to use the API and set an API key.
Required HTTP Headers
- api-key: Affiliate api key
- api-username: Affiliate user name
- NOTE** The headers keys are NOT case sensitive.
Example Authentication
Authentication can be handled in various ways using different programming languages. Below are some complete example calls to the Ping endpoint with HTTP Header authentication.
PHP
<?php $url = 'http://domain/api/ping' $curl = curl_init(); $headers = array( 'api-key: 44b5498dbcb481a0d00b404c0169af62', 'api-username: productsupport' ); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_URL, $url); $resp = curl_exec($curl); //dumps an associative array representation of the json response $output = json_decode($resp, true); if($output !== NULL) { //json was valid. Dump the decoded array print_r($output); } else { //invalid json, just dump the raw response print_r($resp); } // Close request to clear up some resources curl_close($curl); ?>
Python
- This example requires pip and the request library which can be installed via pip by: 'pip install requests'
import requests url = 'http://domain/api/ping' headers = { 'api-key': '44b5498dbcb481a0d00b404c0169af62', 'api-username': 'productsupport' } params = { 'payvia_type_id': 1, 'rule_type': 'enabled' } res = requests.get(url, params=params, headers=headers) print res.json()
node.js
- This example requires npm and the request module which can be installed via npm by: 'npm install request'
var request = require('request'); var options = { url: 'http://domain/api/ping', method: 'GET', json: true, headers: { 'api-key': '44b5498dbcb481a0d00b404c0169af62', 'api-username': 'productsupport' } }; function callback(error, response, body) { if (!error && response.statusCode == 200) { console.log(body); } else{ console.log(body); } } request(options, callback);
Curl
curl -X GET 'http://domain/api/ping' -H "api-key: 44b5498dbcb481a0d00b404c0169af62" -H "api-username: productsupport"
And this is the output:
true