MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

Authenticating requests

This API is not authenticated.

Clicks

Get Clicks By Date

requires authentication

Return the number of clicks. If is given user_id - connected to that user. Between the from and to dates if not given - for today.

Example request:
curl --request GET \
    --get "https://api.metapic.com/clicks/by-date/1?from=2014-11-08+10%3A24&to=2014-11-08+10%3A24" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/clicks/by-date/1"
);

const params = {
    "from": "2014-11-08 10:24",
    "to": "2014-11-08 10:24",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "{userEmail}": {
        "day": [
            {
                "date": "2020-02-17",
                "link_clicks": 262,
                "tag_clicks": 0,
                "user_id": 838,
                "email": "{userEmail}"
            },
            "..."
        ],
        "total": 58687
    }
}
 

Request      

GET clicks/by-date/{user_id?}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

user_id   integer  optional  

The id of the user to fetch clicks for. Example: 1

Query Parameters

from   string  optional  

Valid date|datetime format 2014-11-08 10:24 as string. Must be a valid date. Example: 2014-11-08 10:24

to   string  optional  

Valid date|datetime format 2014-11-08 10:24 as string. Must be a valid date. Example: 2014-11-08 10:24

Get Clicks

requires authentication

Return the number of clicks. Between the from and to dates if not given for today.

Example request:
curl --request GET \
    --get "https://api.metapic.com/clicks?from=2014-11-08+10%3A24&to=2014-11-08+10%3A24" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/clicks"
);

const params = {
    "from": "2014-11-08 10:24",
    "to": "2014-11-08 10:24",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


[
    {
        "email": "{userEmail}",
        "tag_clicks": 0,
        "link_clicks": 16259,
        "total_clicks": 16259,
        "user_revenue": 853070,
        "client_revenue": 0,
        "affiliate": 0,
        "user_id": "{userId}",
        "sum_sek": "15290",
        "ut_user_id": 838
    },
    "..."
]
 

Request      

GET clicks

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

Query Parameters

from   string  optional  

Valid date|datetime format 2014-11-08 10:24 as string. Must be a valid date. Example: 2014-11-08 10:24

to   string  optional  

Valid date|datetime format 2014-11-08 10:24 as string. Must be a valid date. Example: 2014-11-08 10:24

Get User Clicks

requires authentication

Return the number of clicks. If is given user_id - connected to that user. Between the from and to dates if not given - for today.

Example request:
curl --request GET \
    --get "https://api.metapic.com/clicks/voluptatem?from=2014-11-08+10%3A24&to=2014-11-08+10%3A24" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/clicks/voluptatem"
);

const params = {
    "from": "2014-11-08 10:24",
    "to": "2014-11-08 10:24",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "email": "{userEmail}",
    "tag_clicks": 0,
    "link_clicks": 16259,
    "total_clicks": 16259,
    "user_revenue": 853070,
    "client_revenue": 0,
    "affiliate": 0,
    "user_id": "{userId}",
    "sum_sek": "15290",
    "ut_user_id": 838
}
 

Request      

GET clicks/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

id   string   

The ID of the click. Example: voluptatem

user_id   integer   

The id of the user to fetch clicks for. Example: 1

Query Parameters

from   string  optional  

Valid date|datetime format 2014-11-08 10:24 as string. Must be a valid date. Example: 2014-11-08 10:24

to   string  optional  

Valid date|datetime format 2014-11-08 10:24 as string. Must be a valid date. Example: 2014-11-08 10:24

Deep linking

DeepLink BlogPost

requires authentication

Transform a html blocks links to metapic links. Will only transform links that you can earn money on

Example request:
curl --request POST \
    "https://api.metapic.com/deepLinkBlogPost/omnis" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}" \
    --data "{
    \"blogPost\": \"<div> <a href=\'https:\\/\\/na-kd.com\'> link<\\/a><\\/div>\",
    \"dry\": 1
}"
const url = new URL(
    "https://api.metapic.com/deepLinkBlogPost/omnis"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "blogPost": "<div> <a href='https:\/\/na-kd.com'> link<\/a><\/div>",
    "dry": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "newHtml": "<div> <a href=\"https://c.mtpc.se/tags/link/2082970\"> link</a></div>",
    "linkTranslation": [
        {
            "before": "https://na-kd.com",
            "status": "success",
            "store": "NA-KD",
            "storeId": "{storeId}",
            "type": "tradedoubler_SE",
            "after": "https://c.mtpc.se/tags/link/2082970",
            "currency": "SEK",
            "tag_id": "{tagId}",
            "user_revenue_cpc": 250,
            "user_instagram_cpc": 100,
            "user_revenue_cpa": 0,
            "user_instagram_cpa": 0,
            "user_revenue_cpc_formated": "2.50 kr",
            "user_instagram_cpc_formated": "1.00 kr",
            "traffic_sources_costs": [
                {
                    "id": 301,
                    "store_id": "{storeId}",
                    "source": 0,
                    "cpc": 250,
                    "invoice_cpc": 250,
                    "cpa": 0,
                    "invoice_cpa": null,
                    "created_at": "2023-05-03 12:01:08",
                    "updated_at": "2023-05-03 12:01:08",
                    "user_revenue": 1,
                    "client_revenue": null,
                    "cpc_formatted": "2.50 kr",
                    "title": "General"
                },
                {
                    "id": 302,
                    "store_id": "{storeId}",
                    "source": 1,
                    "cpc": 100,
                    "invoice_cpc": 100,
                    "cpa": null,
                    "invoice_cpa": null,
                    "created_at": "2023-05-03 12:01:09",
                    "updated_at": "2023-05-03 12:01:09",
                    "user_revenue": 1,
                    "client_revenue": null,
                    "cpc_formatted": "1.00 kr",
                    "title": "Instagram"
                }
            ]
        }
    ],
    "isUpdated": true
}
 

Request      

POST deepLinkBlogPost/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

id   string   

The ID of the deepLinkBlogPost. Example: omnis

user_id   integer  optional  

The id of the user. Example: 1

Body Parameters

blogPost   string   

Link. Example: <div> <a href='https://na-kd.com'> link</a></div>

dry   boolean  optional  

When dry is set - link will not be created. Example: 1

requires authentication

Create deeplinks from an array of links

Example request:
curl --request POST \
    "https://api.metapic.com/deep-links" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}" \
    --data "{
    \"links\": \"[\\\"https:\\/\\/ellos.com\\\"]\",
    \"userId\": 1,
    \"dry\": 1
}"
const url = new URL(
    "https://api.metapic.com/deep-links"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "links": "[\"https:\/\/ellos.com\"]",
    "userId": 1,
    "dry": 1
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


[
    {
        "before": "https://na-kd.com",
        "status": "success",
        "store": "NA-KD",
        "storeId": "{storeId}",
        "type": "tradedoubler_SE",
        "after": "https://c.mtpc.se/tags/link/2082974",
        "currency": "SEK",
        "tag_id": "{tagId}",
        "user_revenue_cpc": 250,
        "user_instagram_cpc": 100,
        "user_revenue_cpa": 0,
        "user_instagram_cpa": 0,
        "user_revenue_cpc_formated": "2.50 kr",
        "user_instagram_cpc_formated": "1.00 kr",
        "traffic_sources_costs": [
            {
                "id": 301,
                "store_id": "{storeId}",
                "source": 0,
                "cpc": 250,
                "invoice_cpc": 250,
                "cpa": 0,
                "invoice_cpa": null,
                "created_at": "2023-05-03 12:01:08",
                "updated_at": "2023-05-03 12:01:08",
                "user_revenue": 1,
                "client_revenue": null,
                "cpc_formatted": "2.50 kr",
                "title": "General"
            },
            {
                "id": 302,
                "store_id": "{storeId}",
                "source": 1,
                "cpc": 100,
                "invoice_cpc": 100,
                "cpa": null,
                "invoice_cpa": null,
                "created_at": "2023-05-03 12:01:09",
                "updated_at": "2023-05-03 12:01:09",
                "user_revenue": 1,
                "client_revenue": null,
                "cpc_formatted": "1.00 kr",
                "title": "Instagram"
            }
        ]
    },
    "..."
]
 

Endpoints

Say Hello to World

requires authentication

Returns a hello message with the arguments that you send in

Example request:
curl --request GET \
    --get "https://api.metapic.com/hello" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/hello"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "message": "hello world",
    "input": {
        "access_token": "OYqOixgvEbxc9nnKiZCywzDkZHNpKRP8",
        "client_id": "591571223752267"
    }
}
 

Request      

GET hello

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

Get Client organization invoice payment Pdf

Example request:
curl --request GET \
    --get "https://api.metapic.com/clients/2/invoices/et/pdf" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/clients/2/invoices/et/pdf"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Request      

GET clients/{clientId}/invoices/{invoiceId}/pdf

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

clientId   integer   

Example: 2

invoiceId   string   

Example: et

Get Client organization invoice payment excel

Example request:
curl --request GET \
    --get "https://api.metapic.com/clients/2/invoices/nihil/excel" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/clients/2/invoices/nihil/excel"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Request      

GET clients/{clientId}/invoices/{invoiceId}/excel

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

clientId   integer   

Example: 2

invoiceId   string   

Example: nihil

requires authentication

Example request:
curl --request GET \
    --get "https://api.metapic.com/tags/popular/omnis?start_date=2019-01-01&end_date=2019-01-02" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/tags/popular/omnis"
);

const params = {
    "start_date": "2019-01-01",
    "end_date": "2019-01-02",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


[
    {
        "id": 2117511,
        "x": 0.342792,
        "y": 0.00717703,
        "width": 0.311956,
        "height": 0.98883,
        "meta_info": "{\"original_url\":\"https:\\/\\/www.ellos.no\\/ellos-home\\/sengeteppe-sanora-i-quiltet-floyel\\/1535571-04\"}",
        "link": "http://example.com",
        "image_id": 473027,
        "text": "Grått sengeteppe HER",
        "type": "awin_NO",
        "created_at": "2020-03-23 21:25:42",
        "created_as": "tageditorDeeplinking",
        "url": "http://example.com",
        "total_clicks": 11
    },
    "..."
]
 

Check Agency

requires authentication

Returns agency name

Example request:
curl --request POST \
    "https://api.metapic.com/clients/check" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/clients/check"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());

Request      

POST clients/check

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

Get user access token by email (only for default zezam client)

Example request:
curl --request POST \
    "https://api.metapic.com/users/access-token/from-email" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}" \
    --data "{
    \"email\": \"occaecati\"
}"
const url = new URL(
    "https://api.metapic.com/users/access-token/from-email"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "email": "occaecati"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST users/access-token/from-email

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

Body Parameters

email   string   

Example: occaecati

Get user access token by userId (only for default zezam client)

Example request:
curl --request POST \
    "https://api.metapic.com/users/access-token/from-id" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}" \
    --data "{
    \"userId\": 11
}"
const url = new URL(
    "https://api.metapic.com/users/access-token/from-id"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "userId": 11
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Request      

POST users/access-token/from-id

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

Body Parameters

userId   integer   

Example: 11

Payment

Get list of all invoices.

requires authentication

Here you get a list of all invoices to this client. See Get Payment for invoice for getting more info about a invoice.

Example request:
curl --request GET \
    --get "https://api.metapic.com/client/2/paymentsInvoice" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/client/2/paymentsInvoice"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


[
    {
        "id": 123,
        "payment_date": "2020-07-01 00:00:00",
        "sent_to_partner_at": "2020-07-05 00:00:00",
        "updated_at": "2019-11-12 10:13:50",
        "created_at": "2019-11-12 10:13:50"
    },
    "..."
]
 

Request      

GET client/{clientId}/paymentsInvoice

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

clientId   integer   

Example: 2

Get payments for last month

requires authentication

Will give you all payments for last month. this is not final before 3 working days after last day of month before.

Example request:
curl --request GET \
    --get "https://api.metapic.com/client/2/paymentsInvoice/lastMonth" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/client/2/paymentsInvoice/lastMonth"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


[
    {
        "id": 132424,
        "user_id": 123,
        "email": "[email protected]",
        "user_earnings": 12345,
        "accepted_at": "2020-09-03 14:50:03",
        "client_earnings": 1235,
        "currency": "SEK",
        "user_earnings_formatted": "123.45 kr",
        "client_earnings_formatted": "12.35 kr"
    },
    "..."
]
 

Request      

GET client/{clientId}/paymentsInvoice/lastMonth

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

clientId   integer   

Example: 2

Get payments for this month

requires authentication

Will give you all payments for current month. this is not final before 3 working days after last day of month.

Example request:
curl --request GET \
    --get "https://api.metapic.com/client/2/paymentsInvoice/thisMonth" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/client/2/paymentsInvoice/thisMonth"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


[
    {
        "id": 132424,
        "user_id": 123,
        "email": "[email protected]",
        "user_earnings": 12345,
        "accepted_at": "2020-09-03 14:50:03",
        "client_earnings": 1235,
        "currency": "SEK",
        "user_earnings_formatted": "123.45 kr",
        "client_earnings_formatted": "12.35 kr"
    },
    "..."
]
 

Request      

GET client/{clientId}/paymentsInvoice/thisMonth

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

clientId   integer   

Example: 2

Social Media

Get Social Media

requires authentication

Returns all user's social media connected to your client account, sorted id in asc order.

Example request:
curl --request GET \
    --get "https://api.metapic.com/users/1/socialMedia" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/users/1/socialMedia"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


[
    {
        "id": 3046,
        "user_id": "{userId}",
        "type": "youtube",
        "identifier": "sffsdfsdf123",
        "is_valid": 1,
        "created_at": "2019-06-24 10:39:39",
        "updated_at": "2020-03-27 09:15:45"
    },
    "..."
]
 

Request      

GET users/{userId}/socialMedia

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

userId   integer   

Example: 1

user_id   integer   

The ID of the user. Example: 1

Create Social Media

requires authentication

Create a new social media for user. Return social media as a json object.

Example request:
curl --request POST \
    "https://api.metapic.com/users/1/socialMedia" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}" \
    --data "{
    \"type\": \"youtube\",
    \"identifier\": \"my_instagram\"
}"
const url = new URL(
    "https://api.metapic.com/users/1/socialMedia"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "type": "youtube",
    "identifier": "my_instagram"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 3046,
    "user_id": "{userId}",
    "type": "youtube",
    "identifier": "sffsdfsdf123",
    "is_valid": 1,
    "created_at": "2019-06-24 10:39:39",
    "updated_at": "2020-03-27 09:15:45"
}
 

Request      

POST users/{userId}/socialMedia

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

userId   integer   

Example: 1

user_id   integer   

The ID of the user. Example: 1

Body Parameters

type   string   

Social Media type. Valid values are 'instagram', 'blog', 'website', 'youtube', 'tiktok', 'pintrest', 'snapchat', 'onbaz', 'zezam'. Example: youtube

Must be one of:
  • instagram
  • blog
  • website
  • youtube
  • tiktok
  • pinterest
  • zezam
  • onbaz
  • snapchat
  • facebook
  • discord
  • linkedin
  • patreon
  • telegram
  • twitter
  • vimeo
  • whatsapp
  • tumblr
identifier   string   

Social Media identifier. Example: my_instagram

Get Social Media by ID

requires authentication

Fetches social media based on social media id and user id.

Example request:
curl --request GET \
    --get "https://api.metapic.com/users/1/socialMedia/18" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/users/1/socialMedia/18"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "id": 3046,
    "user_id": "{userId}",
    "type": "youtube",
    "identifier": "sffsdfsdf123",
    "is_valid": 1,
    "created_at": "2019-06-24 10:39:39",
    "updated_at": "2020-03-27 09:15:45"
}
 

Request      

GET users/{userId}/socialMedia/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

userId   integer   

Example: 1

id   integer   

The ID of the socialMedia. Example: 18

user_id   integer   

The ID of the user. Example: 1

social_media_id   integer   

The ID of user social media. Example: 1

Update Social Media

requires authentication

Update user's social media. Return the modified social media as a json object.

Example request:
curl --request PUT \
    "https://api.metapic.com/users/1/socialMedia/18" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}" \
    --data "{
    \"type\": \"youtube\",
    \"identifier\": \"my_instagram\"
}"
const url = new URL(
    "https://api.metapic.com/users/1/socialMedia/18"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "type": "youtube",
    "identifier": "my_instagram"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": 3046,
    "user_id": "{userId}",
    "type": "youtube",
    "identifier": "sffsdfsdf123",
    "is_valid": 1,
    "created_at": "2019-06-24 10:39:39",
    "updated_at": "2020-03-27 09:15:45"
}
 

Request      

PUT users/{userId}/socialMedia/{id}

PATCH users/{userId}/socialMedia/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

userId   integer   

Example: 1

id   integer   

The ID of the socialMedia. Example: 18

user_id   integer   

The ID of the user. Example: 1

social_media_id   integer   

The ID of user social media. Example: 1

Body Parameters

type   string   

Social Media type. Valid values are 'instagram', 'blog', 'website', 'youtube'. Example: youtube

Must be one of:
  • instagram
  • blog
  • website
  • youtube
  • tiktok
  • pinterest
  • zezam
  • onbaz
  • snapchat
  • facebook
  • discord
  • linkedin
  • patreon
  • telegram
  • twitter
  • vimeo
  • whatsapp
  • tumblr
identifier   string   

Social Media identifier. Example: my_instagram

Delete Social Media

requires authentication

Delete user's social media.

Example request:
curl --request DELETE \
    "https://api.metapic.com/users/1/socialMedia/18" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/users/1/socialMedia/18"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Request      

DELETE users/{userId}/socialMedia/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

userId   integer   

Example: 1

id   integer   

The ID of the socialMedia. Example: 18

user_id   integer   

The ID of the user. Example: 1

social_media_id   integer   

The ID of user social media. Example: 1

Users

Access Token

requires authentication

Get User Access Token

Example request:
curl --request GET \
    --get "https://api.metapic.com/users/1/access-token" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/users/1/access-token"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "random_token": "$2y$10$GqXBc.ciJ0qSZQrBJ5X8h.yxsnHs3R8cU6F1MlhhvtfEQAL6Do6yc",
    "token": "$2y$10$GqXBc.ciJ0qSZQrBJ5X8h.yxsnHs3R8cU6F1MlhhvtfEQAL6Do6yc"
}
 

Request      

GET users/{id}/access-token

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

id   integer   

The ID of the user. Example: 1

User Config

requires authentication

Get User Config

Example request:
curl --request GET \
    --get "https://api.metapic.com/users/1/user-config" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/users/1/user-config"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "showedPopups": [
        "firstCollageItem",
        "linkTransform"
    ]
}
 

Request      

GET users/{id}/user-config

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

id   integer   

The ID of the user. Example: 1

GDPR Delete User

requires authentication

Delete user according to GDPR standards

Example request:
curl --request DELETE \
    "https://api.metapic.com/users/1/gdpr-delete" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/users/1/gdpr-delete"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());

Example response (200):


{
    "id": "{userId}",
    "username": "",
    "email": "",
    "phone": "",
    "created_at": "2021-11-10 12:04:16",
    "updated_at": "2022-08-25 10:34:45",
    "admin": 0,
    "last_active": "0000-00-00 00:00:00",
    "first_name": "",
    "surname": "",
    "vat_no": "",
    "country": "",
    "city": "",
    "address": "",
    "postcode": "",
    "tier_pricing_type": "",
    "config": null,
    "sign_user_agreement": null,
    "revenue_tier_id": "{revenue_tier_id}",
    "recruitment_utm": null,
    "is_suspended": false,
    "is_verified": true
}
 

Request      

DELETE users/{id}/gdpr-delete

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

id   integer   

The ID of the user. Example: 1

Get Users

requires authentication

Returns all users connected to your client account, sorted on created date in descending order.

Example request:
curl --request GET \
    --get "https://api.metapic.com/users" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/users"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


[
    {
        "id": 1,
        "created_at": "2018-11-17 22:24:28",
        "updated_at": "2018-11-19 14:42:38",
        "client_id": 2,
        "revenue_share": "0.00",
        "instagram_revenue_share": "0.00",
        "name": "{username}"
    },
    "..."
]
 

Request      

GET users

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

Create User

requires authentication

Create a new Metapic user. The user will automatically be linked to your account.

Example request:
curl --request POST \
    "https://api.metapic.com/users" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}" \
    --data "{
    \"email\": \"[email protected]\",
    \"username\": \"testUser\",
    \"password\": \"123456\"
}"
const url = new URL(
    "https://api.metapic.com/users"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "email": "[email protected]",
    "username": "testUser",
    "password": "123456"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": "{userId}",
    "username": "{username}",
    "email": "{email}",
    "created_at": "2019-06-17 11:53:17",
    "updated_at": "2019-08-20 07:07:50",
    "admin": 1,
    "last_active": "0000-00-00 00:00:00",
    "first_name": "{userName}",
    "surname": "{userSurname}",
    "country": "{country}",
    "city": "{city}",
    "address": "{address}",
    "postcode": "{postcode}",
    "tier_pricing_type": "",
    "config": "{\"showedPopups\":[\"firstCollageItem\"]}",
    "sign_user_agreement": "2019-08-14 08:34:12",
    "revenue_tier_id": 105,
    "recruitment_utm": null,
    "is_suspended": false,
    "is_verified": false,
    "client": {
        "id": 2,
        "client_id": "{clientId}",
        "name": "{clientName}",
        "created_at": "2014-04-24 16:12:29",
        "updated_at": "2018-11-21 13:57:23",
        "own_paymentsystem": 0,
        "config": "{    \"tabs\": {        \"home\":{\"showMenu\":true},        \"find\":{\"showMenu\":true},\t\"collage\":{\"showMenu\":true},\t\"tagEditor\":{\"showMenu\":true},        \"stats\":{\"showMenu\":true},\t\"listLinks\":{\"showMenu\":true}    },    \"canLogin\": true}",
        "feed": "live_se",
        "locale": "SE",
        "revenue_model": "blog_percentage",
        "revenue_share": "0.00",
        "store_group_id": 1,
        "default_revenue_tier": 81,
        "default_verified_users": 0,
        "store_group": {
            "id": 1,
            "name": "Standard SE",
            "shopello": 1,
            "key": "se",
            "locale": "SE",
            "lang": "sv",
            "currency": "SEK",
            "es": 0,
            "payment_limit": 100000
        }
    },
    "revenue_tier": {
        "id": 76,
        "created_at": "2018-09-14 16:39:34",
        "updated_at": "2019-04-29 10:47:34",
        "client_id": 2,
        "revenue_share": "0.50",
        "instagram_revenue_share": "0.10",
        "name": "Silver"
    }
}
 

Request      

POST users

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

Body Parameters

email   string   

Valid email address. Unique. The value format is invalid. Example: [email protected]

username   string  optional  

The name of the user. Max 24 alphanumeric characters. Example: testUser

password   string  optional  

At least 6 characters. Example: 123456

Get User

requires authentication

Fetches a user based on user id.

Example request:
curl --request GET \
    --get "https://api.metapic.com/users/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}"
const url = new URL(
    "https://api.metapic.com/users/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());

Example response (200):


{
    "id": "{userId}",
    "username": "{username}",
    "email": "{email}",
    "created_at": "2019-06-17 11:53:17",
    "updated_at": "2019-08-20 07:07:50",
    "admin": 1,
    "last_active": "0000-00-00 00:00:00",
    "first_name": "{userName}",
    "surname": "{userSurname}",
    "country": "{country}",
    "city": "{city}",
    "address": "{address}",
    "postcode": "{postcode}",
    "tier_pricing_type": "",
    "config": "{\"showedPopups\":[\"firstCollageItem\"]}",
    "sign_user_agreement": "2019-08-14 08:34:12",
    "revenue_tier_id": 105,
    "recruitment_utm": null,
    "is_suspended": false,
    "is_verified": false,
    "client": {
        "id": 2,
        "client_id": "{clientId}",
        "name": "{clientName}",
        "created_at": "2014-04-24 16:12:29",
        "updated_at": "2018-11-21 13:57:23",
        "own_paymentsystem": 0,
        "config": "{    \"tabs\": {        \"home\":{\"showMenu\":true},        \"find\":{\"showMenu\":true},\t\"collage\":{\"showMenu\":true},\t\"tagEditor\":{\"showMenu\":true},        \"stats\":{\"showMenu\":true},\t\"listLinks\":{\"showMenu\":true}    },    \"canLogin\": true}",
        "feed": "live_se",
        "locale": "SE",
        "revenue_model": "blog_percentage",
        "revenue_share": "0.00",
        "store_group_id": 1,
        "default_revenue_tier": 81,
        "default_verified_users": 0,
        "store_group": {
            "id": 1,
            "name": "Standard SE",
            "shopello": 1,
            "key": "se",
            "locale": "SE",
            "lang": "sv",
            "currency": "SEK",
            "es": 0,
            "payment_limit": 100000
        }
    },
    "revenue_tier": {
        "id": 76,
        "created_at": "2018-09-14 16:39:34",
        "updated_at": "2019-04-29 10:47:34",
        "client_id": 2,
        "revenue_share": "0.50",
        "instagram_revenue_share": "0.10",
        "name": "Silver"
    }
}
 

Request      

GET users/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

id   integer   

The ID of the user. Example: 1

Update User

requires authentication

Updates a Metapic user. Returns the modified user as a json object.

Example request:
curl --request PUT \
    "https://api.metapic.com/users/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}" \
    --data "{
    \"email\": \"[email protected]\",
    \"username\": \"testUser\",
    \"password\": \"123456\"
}"
const url = new URL(
    "https://api.metapic.com/users/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "email": "[email protected]",
    "username": "testUser",
    "password": "123456"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": "{userId}",
    "username": "{username}",
    "email": "{email}",
    "created_at": "2019-06-17 11:53:17",
    "updated_at": "2019-08-20 07:07:50",
    "admin": 1,
    "last_active": "0000-00-00 00:00:00",
    "first_name": "{userName}",
    "surname": "{userSurname}",
    "country": "{country}",
    "city": "{city}",
    "address": "{address}",
    "postcode": "{postcode}",
    "tier_pricing_type": "",
    "config": "{\"showedPopups\":[\"firstCollageItem\"]}",
    "sign_user_agreement": "2019-08-14 08:34:12",
    "revenue_tier_id": 105,
    "recruitment_utm": null,
    "is_suspended": false,
    "is_verified": false,
    "client": {
        "id": 2,
        "client_id": "{clientId}",
        "name": "{clientName}",
        "created_at": "2014-04-24 16:12:29",
        "updated_at": "2018-11-21 13:57:23",
        "own_paymentsystem": 0,
        "config": "{    \"tabs\": {        \"home\":{\"showMenu\":true},        \"find\":{\"showMenu\":true},\t\"collage\":{\"showMenu\":true},\t\"tagEditor\":{\"showMenu\":true},        \"stats\":{\"showMenu\":true},\t\"listLinks\":{\"showMenu\":true}    },    \"canLogin\": true}",
        "feed": "live_se",
        "locale": "SE",
        "revenue_model": "blog_percentage",
        "revenue_share": "0.00",
        "store_group_id": 1,
        "default_revenue_tier": 81,
        "default_verified_users": 0,
        "store_group": {
            "id": 1,
            "name": "Standard SE",
            "shopello": 1,
            "key": "se",
            "locale": "SE",
            "lang": "sv",
            "currency": "SEK",
            "es": 0,
            "payment_limit": 100000
        }
    },
    "revenue_tier": {
        "id": 76,
        "created_at": "2018-09-14 16:39:34",
        "updated_at": "2019-04-29 10:47:34",
        "client_id": 2,
        "revenue_share": "0.50",
        "instagram_revenue_share": "0.10",
        "name": "Silver"
    }
}
 

Request      

PUT users/{id}

PATCH users/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

id   integer   

The ID of the user. Example: 1

Body Parameters

email   string  optional  

Valid email address. Unique. The value format is invalid. Example: [email protected]

username   string  optional  

The name of the user. Max 24 alphanumeric characters. Example: testUser

password   string  optional  

At least 6 characters. Example: 123456

Delete User

requires authentication

Deletes a Metapic user. Returns the deleted user as json object.

Example request:
curl --request DELETE \
    "https://api.metapic.com/users/1" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --header "Authorization: {token}" \
    --data "{
    \"force\": 8
}"
const url = new URL(
    "https://api.metapic.com/users/1"
);

const headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "{token}",
};

let body = {
    "force": 8
};

fetch(url, {
    method: "DELETE",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());

Example response (200):


{
    "id": "{userId}",
    "username": "{username}",
    "email": "{email}",
    "created_at": "2019-06-17 11:53:17",
    "updated_at": "2019-08-20 07:07:50",
    "admin": 1,
    "last_active": "0000-00-00 00:00:00",
    "first_name": "{userName}",
    "surname": "{userSurname}",
    "country": "{country}",
    "city": "{city}",
    "address": "{address}",
    "postcode": "{postcode}",
    "tier_pricing_type": "",
    "config": "{\"showedPopups\":[\"firstCollageItem\"]}",
    "sign_user_agreement": "2019-08-14 08:34:12",
    "revenue_tier_id": 105,
    "recruitment_utm": null,
    "is_suspended": false,
    "is_verified": false,
    "client": {
        "id": 2,
        "client_id": "{clientId}",
        "name": "{clientName}",
        "created_at": "2014-04-24 16:12:29",
        "updated_at": "2018-11-21 13:57:23",
        "own_paymentsystem": 0,
        "config": "{    \"tabs\": {        \"home\":{\"showMenu\":true},        \"find\":{\"showMenu\":true},\t\"collage\":{\"showMenu\":true},\t\"tagEditor\":{\"showMenu\":true},        \"stats\":{\"showMenu\":true},\t\"listLinks\":{\"showMenu\":true}    },    \"canLogin\": true}",
        "feed": "live_se",
        "locale": "SE",
        "revenue_model": "blog_percentage",
        "revenue_share": "0.00",
        "store_group_id": 1,
        "default_revenue_tier": 81,
        "default_verified_users": 0,
        "store_group": {
            "id": 1,
            "name": "Standard SE",
            "shopello": 1,
            "key": "se",
            "locale": "SE",
            "lang": "sv",
            "currency": "SEK",
            "es": 0,
            "payment_limit": 100000
        }
    },
    "revenue_tier": {
        "id": 76,
        "created_at": "2018-09-14 16:39:34",
        "updated_at": "2019-04-29 10:47:34",
        "client_id": 2,
        "revenue_share": "0.50",
        "instagram_revenue_share": "0.10",
        "name": "Silver"
    }
}
 

Request      

DELETE users/{id}

Headers

Content-Type      

Example: application/json

Accept      

Example: application/json

Authorization      

Example: {token}

URL Parameters

id   integer   

The ID of the user. Example: 1

Body Parameters

force   integer  optional  

Example: 8