API Documentation

Base URL

http://api.mybid.io/gateway/v1/api/

API Keys

You can create and manage API Keys via https://dashboard.mybid.io/key-gateways

Authorization

For authorization, you need to include the API key in the Header of each request in the field X-Auth-Token.

Response Structure

Each request returns a response in the format:

{
  "code": int,
  "message": text,
  "data": json
}

Status Codes

Get Balance GET /gateway/v1/api/current-balance

Request

Only the API key needs to be passed in the request.

Response

{
  "code": int,
  "message": text,
  "data": {
	"current_balance": float
  }
}

current_balance - current balance

Examples

Invalid token
curl --location 'http://api.mybid.io/gateway/v1/api/current-balance' \
--header 'X-Auth-Token: {{api_key}}'
{
	"code": 401,
	"message": "api key is not valid",
	"data": null
}
Successful balance retrieval
curl --location 'http://api.mybid.io/gateway/v1/api/current-balance' \
--header 'X-Auth-Token: *****MRCP'
{
	"code": 200,
	"message": "",
	"data": {
    	"current_balance": 6849.651174751568
	}
}

Get Campaigns GET /gateway/v1/api/campaigns

Request

Only the API key needs to be passed in the request.

Response

{
  "code": int,
  "message": text,
  "data": [{
        	"id": int,
        	"name": text,
        	"adtype":text, 
        	"budget": float,
        	"status": text,
        	"tracking_url":text,
        	"daily_budget": float,
        	"Total_spend": float,
        	"daily_spend": float,
        	"bid": float
    	}]
  }

Examples

curl --location 'http://api.mybid.io/gateway/v1/api/campaigns' \
--header 'X-Auth-Token: *****MRCP'
{
	"code": 200,
	"message": "",
	"data": [{
        	"id": 502,
        	"name": "test_inpage_adv_direct",
        	"adtype": "inpage",
        	"budget": 0,
        	"status": "active",
        	"tracking_url": "https://mybid.io/campaigns/new",
        	"daily_budget": 0,
        	"total_spend": 86.03763403306333,
        	"daily_spend": 0,
        	"bid": 0.00015
    	},
    	{
        	"id": 509,
        	"name": "test_c_mng_dir",
        	"adtype":"push",
        	"budget": 0,
        	"status": "paused",
        	"tracking_url": "https://mybid.io/campaigns/new",
        	"daily_budget": 0,
        	"total_spend": 111.12182032043002,
        	"daily_spend": 0,
        	"bid": 0.001
    	},
    	{
        	"id": 510,
        	"name": "test_inpage_adv_direct1",
        	"adtype": "inpage",
        	"budget": 0,
        	"status": "paused",
        	"tracking_url": "https://mybid.io/campaigns/new",
        	"daily_budget": 0,
        	"total_spend": 185.07603906435966,
        	"daily_spend": 0,
        	"bid": 0.001
    	}]
}

Get Campaign Status GET /gateway/v1/api/campaign/status/:id

Request

You need to pass the API key and specify the campaign ID in the request parameters to get the campaign status.

Response

{
  "code": int,
  "message": text,
  "data": {
	"id": int,
	"status": text
  }
}

Examples

Get campaign status
curl --location 'http://api.mybid.io/gateway/v1/api/campaign/status/382' \
--header 'X-Auth-Token: *****MRCP'
{
	"code": 200,
	"message": "",
	"data": {
    	"id": 382,
    	"status": "active"
	}
}
Get non-existent campaign status
curl --location 'http://api.mybid.io/gateway/v1/api/campaign/status/3820000' \
--header 'X-Auth-Token: *****MRCP'
{
	"code": 204,
	"message": "content not found",
	"data": null
}

Get Campaign Data GET /gateway/v1/api/campaign/:id

Request

You need to pass the API key and specify the campaign ID in the request parameters to get the campaign data.

Response

{
  "code": int,
  "message": text,
  "data": {
	"id": int,
	"name": text,
	"adtype" : text,
	"budget": float,
	"status": text,
	"tracking_url": text,
	"os_type_familie_version_whitelist": {"os_type": {"family": [1,2,3 ("version")]}},
	"os_type_familie_version_blacklist": {"os_type": {"family": [1,2,3 ("version")]}},
	"capping_settings": [text],
	"capping_unique_settings": string,
	"daily_budget": float,
	"bid": float,
	"bid_by_source": {text: float, text: float}
	"black_list": [text],
	"white_list":[text],
	"smart_purchase": boolean
  }
}

Examples

Get specific Campaign Data
curl --location 'http://api.mybid.io/gateway/v1/api/campaign/15964' \
--header 'X-Auth-Token: *****MRCP'
{
  "code": 200,
  "message": "",
  "data": {
    	"id": 15964,
    	"name": "test_push",
    	"adtype":"push",
    	"budget": 0,
    	"status": "paused",
    	"tracking_url": "https://mybid.io/campaigns",
    	"os_type_familie_version_whitelist": {
        	"mobile": {
            	"android": [
                	3,
                	5,
                	7
            	]
        	}
    	},
    	"os_type_familie_version_blacklist": {

    	},
    	"capping_settings": [
        	{
            	"type": "impression",
            	"limit": 1,
            	"duration": 2
        	},
        	{
            	"type": "click",
            	"limit": 1,
            	"duration": 2
        	}
    	],
    	"capping_unique_settings": "ip+ua",
    	"daily_budget": 95.07,
    	"bid": 0.4,
    	"bid_by_source": {
        	"123": 0.1,
        	"124": 0.1
},
    	"black_list": [ "11", "12", "14", "15”, "16"],
    	"white_list": [“1”, “2”]
    	"smart_purchase": false
	}
}
Get non-existent campaign
curl --location 'http://api.mybid.io/gateway/v1/api/campaign/15964000' \
--header 'X-Auth-Token: *****MRCP'
{
	"code": 204,
	"message": "content not found",
	"data": null
}

Get Statistic POST /gateway/v1/api/statistic

Request

Pass the required fields in the request body:

{
  "campaigns": [int],
  "ad_types": [text],
  "countries": [text],
  "os_types": [text],
  "os_families": [text],
  "date_from": "YYYY-MM-DD",
  "date_to": "YYYY-MM-DD",
  "group_by": text
}

Response

{
  "code": 200,
  "message": "ok",
  "data": {
  "goals": [],
    "stats": [
      {
        "campaign_id": int,
        "clicks": int,
        "conversions": int,
        "cr": float,
        "ctr": float,
        "cpl": float,// deprecated 
        "impressions": int,
        "platform": text,
        "revenue": float,
        "spent": float,
        "cv": float,
        "roi": float,
        "ecpa": float
        "goals": [
          {
            "id": int,
            "conversions": float,
            "ecpa": float,
            "cr": float,
            "cv": float,
            "revenue": float,
            "roi": float
          }
        ]
      }
    ],
    "summary": {
      "clicks": int,
      "conversions": int,
      "cr": float,
      "ctr": float,
      "cpl": float,// deprecated 
      "impressions": int,
      "revenue": float,
      "spent": float,
      "cv": float,
      "roi": float,
      "ecpa": float
    }
  }
}

Example

Get statistic on campaigns X, Y + params
curl --location --request POST 'http://api.mybid.io/gateway/v1/api/statistic' \
--header 'X-Auth-Token: *****MRCP' \
--header 'Content-Type: application/json' \
--data '{
	"campaigns": [480],
	"ad_types": ["push", "inpage"],
	"countries": ["LK", "US"],
	"os_types": ["mobile", "computer"],
	"os_families": ["android", "ios"],
	"date_from": "2024-09-01",
	"date_to": "2024-09-20",
	"group_by": "country"
}'
Response
{
  "code": 200,
  "message": "ok",
  "data": {
  "goals": [],
    "stats": [
      {
        "campaign_id": 480,
        "clicks": 1508488,
        "conversions": 2494,
        "cr": 0.165,
        "ctr": 4.42,
        "cpl": 0.028,
        "impressions": 34125286,
        "platform": "ios",
        "revenue": 0,
        "spent": 3207.648458369033,
        "cv": 0,
        "roi": -100,
        "goals": [
          {
            "id": 1,
            "conversions": 0.02,
            "ecpa": 0.3,
            "cr": 0.001,
            "cv": 0.01,
            "revenue": 0.001,
            "roi": 0.5
          }
        ]
      }
    ],
    "summary": {
      "clicks": 1508488,
      "conversions": 2494,
      "cr": 0.165,
      "ctr": 4.42,
      "cpl": 0.028,
      "impressions": 34125286,
      "revenue": 0,
      "spent": 3207.648458369033,
      "cv": 1,
      "roi": -99
    }
  }
}
Get statistic on X, Y via CSV
curl --location --request POST 'http://api.mybid.io/gateway/v1/api/statistic' \
--header 'X-Auth-Token: *****MRCP' \
--header 'Content-Type: application/json' \
--data '{
	"campaigns": [480, 490],
	"ad_types": ["push", "inpage"],
	"countries": ["LK", "US"],
	"os_types": ["mobile" , "computer"],
	"os_families": ["android", "ios"],
	"date_from": "2024-09-01",
	"date_to": "2024-09-20",
	"output_format": "csv",
	"group_by": "country"
}'
Response
{
	"code": 200,
	"message": "ok",
	"data": {
    	"filename": "assets/uploads/by_country_from_2024-09-01_to_2024-09-19_report_time_2024-09-23T07:37:38Z.csv"
	}
  }

Update Campaign Status PUT /gateway/v1/api/campaign/status

Request

You need to pass the API key and:

{
  "id": int,
  "status": text
}

Response

{
  "code": int,
  "message": text,
  "data": null
}

Examples

Update specific campaign status
curl --location --request PUT 'http://api.mybid.io/gateway/v1/api/campaign/status' \
--header 'X-Auth-Token: *****MRCP' \
--header 'Content-Type: application/json' \
--data '{
"id": 382,
"status": "active"
}'
{
	"code": 200,
	"message": "Ok",
	"data": null
}
Update campaign status with invalid status
curl --location --request PUT 'http://api.mybid.io/gateway/v1/api/campaign/status' \
--header 'X-Auth-Token: *****MRCP' \
--header 'Content-Type: application/json' \
--data '{
"id": 382,
"status": "blabla"
}'
{
	"code": 400,
	"message": "status is not valid",
	"data": null
}
Internal error
curl --location --request PUT 'http://api.mybid.io/gateway/v1/api/campaign/status' \
--header 'X-Auth-Token: *****MRCP' \
--header 'Content-Type: application/json' \
--data '{
"id": 382,
"status": "blabla"
}'
{
	"code": 500,
	"message": "try again later",
	"data": null
}

Update Campaign PUT /gateway/v1/api/campaign/:id

Request

You need to pass the API key, specify the campaign ID in the request parameters, and pass in the Body:

{
  "bid": float,
  "black_list": [text],
  "white_list": [text],
  "bid_by_source": {text: float, text: float},
  "smart_purchase": boolean
}

Response

{
  "code": int,
  "message": text,
  "data": null
}

Examples

Change Bid
curl --location --request PUT 'http://api.mybid.io/gateway/v1/api/campaign/382' \
--header 'X-Auth-Token: *****MRCP' \
--header 'Content-Type: application/json' \
--data '{
"bid": 0.1,
"smart_purchase": boolean
}'
{
	"code": 200,
	"message": "Ok",
	"data": null
}
Add/Change BidBySource
curl --location --request PUT 'http://api.mybid.io/gateway/v1/api/campaign/15964' \
--header 'X-Auth-Token: *****MRCP' \
--header 'Content-Type: application/json' \
--data '{
"bid_by_source": {
       	"2": 0.1,
       	"3": 0.2,
       	"smart_purchase": true
   	}
}'
{
	"code": 200,
	"message": "Ok",
	"data": null
}
Change only lists
curl --location --request PUT 'http://api.mybid.io/gateway/v1/api/campaign/382' \
--header 'X-Auth-Token: *****MRCP' \
--header 'Content-Type: application/json' \
--data '{
"black_list": [
  	"1-11",
  	"111",
  	"222"
	],
	"white_list": [
    	"6-66",
    	"666",
  	"777"],
  	"smart_purchase": true
}'
{
	"code": 200,
	"message": "Ok",
	"data": null
}