API Reference for Developers v3
Getting Started
An API key is required for requests to be processed by the system. Once a user registers, an API key is automatically generated for this user. The API key must be sent with each request (see full example below). If the API key is not sent or is expired, there will be an error. Please make sure to keep your API key secret to prevent abuse.
Authentication
To authenticate with the API system, you need to send your API key as an authorization token with each request. You can see sample code below.
Rate Limit
Our API has a rate limiter to safeguard against spike in requests to maximize its stability. Our rate limiter is currently caped at 30 requests per 1 minute.
Several headers will be sent alongside the response and these can be examined to determine various information about the request.
X-RateLimit-Limit: 30
X-RateLimit-Remaining: 29
X-RateLimit-Reset: TIMESTAMP
Response Handling
All API response are returned in JSON format by default. To convert this into usable data, the appropriate function will need to be used according to the language. In PHP, the function json_decode() can be used to convert the data to either an object (default) or an array (set the second parameter to true). It is very important to check the error key as that provides information on whether there was an error or not. You can also check the header code.
{
"error": 1,
"message": "An error ocurred"
}
Account
Get Account
GET
https://www.start.fr/api/account
To get information on the account, you can send a request to this endpoint and it will return data on the account.
curl --location --request GET 'https://www.start.fr/api/account' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json'Server response
{
"error": 0,
"data": {
"id": 1,
"email": "sample@domain.com",
"username": "sampleuser",
"avatar": "https:\/\/domain.com\/content\/avatar.png",
"status": "pro",
"expires": "2022-11-15 15:00:00",
"registered": "2020-11-10 18:01:43"
}
}
Update Account
PUT
https://www.start.fr/api/account/update
To update information on the account, you can send a request to this endpoint and it will update data on the account.
curl --location --request PUT 'https://www.start.fr/api/account/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"email": "newemail@google.com",
"password": "NewPassword1"
}'Server response
{
"error": 0,
"message": "Account has been successfully updated."
}
Branded Domains
List Branded Domains
GET
https://www.start.fr/api/domains?limit=2&page=1
To get your branded domains via the API, you can use this endpoint. You can also filter data (See table for more info).
| Parameter | Description |
|---|---|
| limit | (optional) Per page data result |
| page | (optional) Current page request |
curl --location --request GET 'https://www.start.fr/api/domains?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json'Server response
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"domains": [
{
"id": 1,
"domain": "https:\/\/domain1.com",
"redirectroot": "https:\/\/rootdomain.com",
"redirect404": "https:\/\/rootdomain.com\/404"
},
{
"id": 2,
"domain": "https:\/\/domain2.com",
"redirectroot": "https:\/\/rootdomain2.com",
"redirect404": "https:\/\/rootdomain2.com\/404"
}
]
}
}
Create a Branded Domain
POST
https://www.start.fr/api/domain/add
A domain can be added using this endpoint. Please make sure the domain is correctly pointed to our server.
| Parameter | Description |
|---|---|
| domain | (required) Branded domain including http or https |
| redirectroot | (optional) Root redirect when someone visits your domain |
| redirect404 | (optional) Custom 404 redirect |
curl --location --request POST 'https://www.start.fr/api/domain/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"domain": "https:\/\/domain1.com",
"redirectroot": "https:\/\/rootdomain.com",
"redirect404": "https:\/\/rootdomain.com\/404"
}'Server response
{
"error": 0,
"id": 1
}
Update Domain
PUT
https://www.start.fr/api/domain/:id/update
To update a branded domain, you need to send a valid data in JSON via a PUT request. The data must be sent as the raw body of your request as shown below. The example below shows all the parameters you can send but you are not required to send all (See table for more info).
| Parameter | Description |
|---|---|
| redirectroot | (optional) Root redirect when someone visits your domain |
| redirect404 | (optional) Custom 404 redirect |
curl --location --request PUT 'https://www.start.fr/api/domain/:id/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"redirectroot": "https:\/\/rootdomain-new.com",
"redirect404": "https:\/\/rootdomain-new.com\/404"
}'Server response
{
"error": 0,
"message": "Domain has been updated successfully."
}
Delete Domain
DELETE
https://www.start.fr/api/domain/:id/delete
To delete a domain, you need to send a DELETE request.
CTA Overlays
List CTA Overlays
GET
https://www.start.fr/api/overlay?limit=2&page=1
To get cta overlays via the API, you can use this endpoint. You can also filter data (See table for more info).
| Parameter | Description |
|---|---|
| limit | (optional) Per page data result |
| page | (optional) Current page request |
curl --location --request GET 'https://www.start.fr/api/overlay?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json'Server response
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"cta": [
{
"id": 1,
"type": "message",
"name": "Product 1 Promo",
"date": "2020-11-10 18:00:00"
},
{
"id": 2,
"type": "contact",
"name": "Contact Page",
"date": "2020-11-10 18:10:00"
}
]
}
}
Campaigns
List Campaigns
GET
https://www.start.fr/api/campaigns?limit=2&page=1
To get your campaigns via the API, you can use this endpoint. You can also filter data (See table for more info).
| Parameter | Description |
|---|---|
| limit | (optional) Per page data result |
| page | (optional) Current page request |
curl --location --request GET 'https://www.start.fr/api/campaigns?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json'Server response
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"campaigns": [
{
"id": 1,
"name": "Sample Campaign",
"public": false,
"rotator": false,
"list": "https:\/\/domain.com\/u\/admin\/list-1"
},
{
"id": 2,
"domain": "Facebook Campaign",
"public": true,
"rotator": "https:\/\/domain.com\/r\/test",
"list": "https:\/\/domain.com\/u\/admin\/test-2"
}
]
}
}
Create a Campaign
POST
https://www.start.fr/api/campaign/add
A campaign can be added using this endpoint.
| Parameter | Description |
|---|---|
| name | (optional) Campaign name |
| slug | (optional) Rotator Slug |
| public | (optional) Access |
curl --location --request POST 'https://www.start.fr/api/campaign/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "New Campaign",
"slug": "new-campaign",
"public": true
}'Server response
{
"error": 0,
"id": 3,
"domain": "New Campaign",
"public": true,
"rotator": "https:\/\/domain.com\/r\/new-campaign",
"list": "https:\/\/domain.com\/u\/admin\/new-campaign-3"
}
Assign a Link to a Campaign
POST
https://www.start.fr/api/campaign/:campaignid/assign/:linkid
A short link can be assigned to a campaign using this endpoint. The endpoint requires the campaign ID and the short link ID.
Update Campaign
PUT
https://www.start.fr/api/campaign/:id/update
To update a campaign, you need to send a valid data in JSON via a PUT request. The data must be sent as the raw body of your request as shown below. The example below shows all the parameters you can send but you are not required to send all (See table for more info).
| Parameter | Description |
|---|---|
| name | (required) Campaign name |
| slug | (optional) Rotator Slug |
| public | (optional) Access |
curl --location --request PUT 'https://www.start.fr/api/campaign/:id/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Twitter Campaign",
"slug": "twitter-campaign",
"public": true
}'Server response
{
"error": 0,
"id": 3,
"domain": "Twitter Campaign",
"public": true,
"rotator": "https:\/\/domain.com\/r\/twitter-campaign",
"list": "https:\/\/domain.com\/u\/admin\/twitter-campaign-3"
}
Delete Campaign
DELETE
https://www.start.fr/api/campaign/:id/delete
To delete a campaign, you need to send a DELETE request.
Channels
List Channels
GET
https://www.start.fr/api/channels?limit=2&page=1
To get your channels via the API, you can use this endpoint. You can also filter data (See table for more info).
| Parameter | Description |
|---|---|
| limit | (optional) Per page data result |
| page | (optional) Current page request |
curl --location --request GET 'https://www.start.fr/api/channels?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json'Server response
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"channels": [
{
"id": 1,
"name": "Channel 1",
"description": "Description of channel 1",
"color": "#000000",
"starred": true
},
{
"id": 2,
"name": "Channel 2",
"description": "Description of channel 2",
"color": "#FF0000",
"starred": false
}
]
}
}
List Channel Items
GET
https://www.start.fr/api/channel/:id?limit=1&page=1
To get items in a select channels via the API, you can use this endpoint. You can also filter data (See table for more info).
| Parameter | Description |
|---|---|
| limit | (optional) Per page data result |
| page | (optional) Current page request |
curl --location --request GET 'https://www.start.fr/api/channel/:id?limit=1&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json'Server response
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"items": [
{
"type": "links",
"id": 1,
"title": "My Sample Link",
"preview": "https:\/\/google.com",
"link": "https:\/\/www.start.fr\/google",
"date": "2022-05-12"
},
{
"type": "bio",
"id": 1,
"title": "My Sample Bio",
"preview": "https:\/\/www.start.fr\/mybio",
"link": "https:\/\/www.start.fr\/mybio",
"date": "2022-06-01"
}
]
}
}
Create a Channel
POST
https://www.start.fr/api/channel/add
A channel can be added using this endpoint.
| Parameter | Description |
|---|---|
| name | (required) Channel name |
| description | (optional) Channel description |
| color | (optional) Channel badge color (HEX) |
| starred | (optional) Star the channel or not (true or false) |
curl --location --request POST 'https://www.start.fr/api/channel/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "New Channel",
"description": "my new channel",
"color": "#000000",
"starred": true
}'Server response
{
"error": 0,
"id": 3,
"name": "New Channel",
"description": "my new channel",
"color": "#000000",
"starred": true
}
Assign an Item to a Channel
POST
https://www.start.fr/api/channel/:channelid/assign/:type/:itemid
An item can be assigned to any channel by sending a request with the channel id, item type (links, bio or qr) and item id.
| Parameter | Description |
|---|---|
| :channelid | (required) Channel ID |
| :type | (required) links or bio or qr |
| :itemid | (required) Item ID |
Update Channel
PUT
https://www.start.fr/api/channel/:id/update
To update a channel, you need to send a valid data in JSON via a PUT request. The data must be sent as the raw body of your request as shown below. The example below shows all the parameters you can send but you are not required to send all (See table for more info).
| Parameter | Description |
|---|---|
| name | (optional) Channel name |
| description | (optional) Channel description |
| color | (optional) Channel badge color (HEX) |
| starred | (optional) Star the channel or not (true or false) |
curl --location --request PUT 'https://www.start.fr/api/channel/:id/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Acme Corp",
"description": "channel for items for Acme Corp",
"color": "#FFFFFF",
"starred": false
}'Server response
{
"error": 0,
"message": "Channel has been updated successfully."
}
Delete Channel
DELETE
https://www.start.fr/api/channel/:id/delete
To delete a channel, you need to send a DELETE request. All items will be unassigned as well.
Custom Splash
List Custom Splash
GET
https://www.start.fr/api/splash?limit=2&page=1
To get Splash Pages via the API, you can use this endpoint. You can also filter data (See table for more info).
| Parameter | Description |
|---|---|
| limit | (optional) Per page data result |
| page | (optional) Current page request |
curl --location --request GET 'https://www.start.fr/api/splash?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json'Server response
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"splash": [
{
"id": 1,
"name": "Product 1 Promo",
"date": "2020-11-10 18:00:00"
},
{
"id": 2,
"name": "Product 2 Promo",
"date": "2020-11-10 18:10:00"
}
]
}
}
Files
List Files
GET
https://www.start.fr/api/files?limit=2&page=1
Get all of your files. You can also search by name.
| Parameter | Description |
|---|---|
| name | (optional) Search for a file by name |
| limit | (optional) Per page data result |
| page | (optional) Current page request |
curl --location --request GET 'https://www.start.fr/api/files?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json'Server response
{
"error": 0,
"result": 3,
"perpage": 15,
"currentpage": 1,
"nextpage": null,
"maxpage": 1,
"list": [
{
"id": 1,
"name": "My Photo",
"downloads": 10,
"shorturl": "https:\/\/www.start.fr\/IqjzB",
"date": "2022-08-09 17:00:00"
},
{
"id": 2,
"name": "My Documents",
"downloads": 15,
"shorturl": "https:\/\/www.start.fr\/mUZoH",
"date": "2022-08-10 17:01:00"
},
{
"id": 3,
"name": "My Files",
"downloads": 5,
"shorturl": "https:\/\/www.start.fr\/AXKPd",
"date": "2022-08-11 19:01:00"
}
]
}
Upload a file
POST
https://www.start.fr/api/files/upload/:filename?name=My+File
Upload a file by sending the binary data as the post body. You need to send the file name including the extension instead of :filename in the url (e.g. brandkit.zip). You can set options by sending the following parameters.
| Parameter | Description |
|---|---|
| name | (optional) File name |
| custom | (optional) Custom alias instead of random alias. |
| domain | (optional) Custom Domain |
| password | (optional) Password protection |
| expiry | (optional) Expiration for the download example 2021-09-28 |
| maxdownloads | (optional) Maximum number of downloads |
curl --location --request POST 'https://www.start.fr/api/files/upload/:filename?name=My+File' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '"BINARY DATA"'Server response
{
"error": 0,
"id": 1,
"shorturl": "https:\/\/www.start.fr\/YKupk"
}
Links
List Links
GET
https://www.start.fr/api/urls?limit=2&page=1&order=date
To get your links via the API, you can use this endpoint. You can also filter data (See table for more info).
| Parameter | Description |
|---|---|
| limit | (optional) Per page data result |
| page | (optional) Current page request |
| order | (optional) Sort data between date or click |
| short | (optional) Search using the short url. Note that when you use the short parameter, all other parameters are ignored and if there is a match a Single Link response will be returned. |
| q | (optional) Search for links using a keyword |
curl --location --request GET 'https://www.start.fr/api/urls?limit=2&page=1&order=date' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json'Server response
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"urls": [
{
"id": 2,
"alias": "google",
"shorturl": "https:\/\/www.start.fr\/google",
"longurl": "https:\/\/google.com",
"clicks": 0,
"title": "Google",
"description": "",
"date": "2020-11-10 18:01:43"
},
{
"id": 1,
"alias": "googlecanada",
"shorturl": "https:\/\/www.start.fr\/googlecanada",
"longurl": "https:\/\/google.ca",
"clicks": 0,
"title": "Google Canada",
"description": "",
"date": "2020-11-10 18:00:25"
}
]
}
}
Get a Single Link
GET
https://www.start.fr/api/url/:id
To get details for a single link via the API, you can use this endpoint.
curl --location --request GET 'https://www.start.fr/api/url/:id' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json'Server response
{
"error": 0,
"id": 1,
"details": {
"id": 1,
"shorturl": "https:\/\/www.start.fr\/googlecanada",
"longurl": "https:\/\/google.com",
"title": "Google",
"description": "",
"location": {
"canada": "https:\/\/google.ca",
"united states": "https:\/\/google.us"
},
"device": {
"iphone": "https:\/\/google.com",
"android": "https:\/\/google.com"
},
"expiry": null,
"date": "2020-11-10 18:01:43"
},
"data": {
"clicks": 0,
"uniqueClicks": 0,
"topCountries": 0,
"topReferrers": 0,
"topBrowsers": 0,
"topOs": 0,
"socialCount": {
"facebook": 0,
"twitter": 0,
"google": 0
}
}
}
Shorten a Link
POST
https://www.start.fr/api/url/add
To shorten a link, you need to send a valid data in JSON via a POST request. The data must be sent as the raw body of your request as shown below. The example below shows all the parameters you can send but you are not required to send all (See table for more info).
| Parameter | Description |
|---|---|
| url | (required) Long URL to shorten. |
| custom | (optional) Custom alias instead of random alias. |
| type | (optional) Redirection type [direct, frame, splash], only id for custom splash page or overlay-id for cta pages |
| password | (optional) Password protection |
| domain | (optional) Custom Domain |
| expiry | (optional) Expiration for the link example 2021-09-28 23:11:16 |
| geotarget | (optional) Geo targeting data |
| devicetarget | (optional) Device targeting data |
| languagetarget | (optional) Language targeting data |
| metatitle | (optional) Meta title |
| metadescription | (optional) Meta description |
| metaimage | (optional) Link to a jpg or png image |
| description | (optional) Note or description |
| pixels | (optional) Array of pixel ids |
| channel | (optional) Channel ID |
| campaign | (optional) Campaign ID |
| deeplink | (optional) Object containing app store links. When using this, it is important to set device targeting as well. (New) You can now set the parameter "auto" to true to automatically generate the deep links from provided long link. |
| status | (optional) public or private (default) |
curl --location --request POST 'https://www.start.fr/api/url/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"url": "https:\/\/google.com",
"status": "private",
"custom": "google",
"password": "mypass",
"expiry": "2020-11-11 12:00:00",
"type": "splash",
"metatitle": "Not Google",
"metadescription": "Not Google description",
"metaimage": "https:\/\/www.mozilla.org\/media\/protocol\/img\/logos\/firefox\/browser\/og.4ad05d4125a5.png",
"description": "For facebook",
"pixels": [
1,
2,
3,
4
],
"channel": 1,
"campaign": 1,
"deeplink": {
"auto": true,
"apple": "https:\/\/apps.apple.com\/us\/app\/google\/id284815942",
"google": "https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.googlequicksearchbox&hl=en_CA&gl=US"
},
"geotarget": [
{
"location": "Canada",
"link": "https:\/\/google.ca"
},
{
"location": "United States",
"link": "https:\/\/google.us"
}
],
"devicetarget": [
{
"device": "iPhone",
"link": "https:\/\/google.com"
},
{
"device": "Android",
"link": "https:\/\/google.com"
}
],
"languagetarget": [
{
"language": "en",
"link": "https:\/\/google.com"
},
{
"language": "fr",
"link": "https:\/\/google.ca"
}
],
"parameters": [
{
"name": "aff",
"value": "3"
},
{
"device": "gtm_source",
"link": "api"
}
]
}'Server response
{
"error": 0,
"id": 3,
"shorturl": "https:\/\/www.start.fr\/google"
}
Update Link
PUT
https://www.start.fr/api/url/:id/update
To update a link, you need to send a valid data in JSON via a PUT request. The data must be sent as the raw body of your request as shown below. The example below shows all the parameters you can send but you are not required to send all (See table for more info).
| Parameter | Description |
|---|---|
| url | (required) Long URL to shorten. |
| custom | (optional) Custom alias instead of random alias. |
| type | (optional) Redirection type [direct, frame, splash] |
| password | (optional) Password protection |
| domain | (optional) Custom Domain |
| expiry | (optional) Expiration for the link example 2021-09-28 23:11:16 |
| geotarget | (optional) Geo targeting data |
| devicetarget | (optional) Device targeting data |
| languagetarget | (optional) Language targeting data |
| metatitle | (optional) Meta title |
| metadescription | (optional) Meta description |
| metaimage | (optional) Link to a jpg or png image |
| pixels | (optional) Array of pixel ids |
| channel | (optional) Channel ID |
| campaign | (optional) Campaign ID |
| deeplink | (optional) Object containing app store links. When using this, it is important to set device targeting as well. |
curl --location --request PUT 'https://www.start.fr/api/url/:id/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"url": "https:\/\/google.com",
"custom": "google",
"password": "mypass",
"expiry": "2020-11-11 12:00:00",
"type": "splash",
"pixels": [
1,
2,
3,
4
],
"channel": 1,
"deeplink": {
"apple": "https:\/\/apps.apple.com\/us\/app\/google\/id284815942",
"google": "https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.googlequicksearchbox&hl=en_CA&gl=US"
},
"geotarget": [
{
"location": "Canada",
"link": "https:\/\/google.ca"
},
{
"location": "United States",
"link": "https:\/\/google.us"
}
],
"devicetarget": [
{
"device": "iPhone",
"link": "https:\/\/google.com"
},
{
"device": "Android",
"link": "https:\/\/google.com"
}
],
"parameters": [
{
"name": "aff",
"value": "3"
},
{
"device": "gtm_source",
"link": "api"
}
]
}'Server response
{
"error": 0,
"id": 3,
"short": "https:\/\/www.start.fr\/google"
}
Delete a Link
DELETE
https://www.start.fr/api/url/:id/delete
To delete a link, you need to send a DELETE request.
Pixels
List Pixels
GET
https://www.start.fr/api/pixels?limit=2&page=1
To get your pixels codes via the API, you can use this endpoint. You can also filter data (See table for more info).
| Parameter | Description |
|---|---|
| limit | (optional) Per page data result |
| page | (optional) Current page request |
curl --location --request GET 'https://www.start.fr/api/pixels?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json'Server response
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"pixels": [
{
"id": 1,
"type": "gtmpixel",
"name": "GTM Pixel",
"tag": "GA-123456789",
"date": "2020-11-10 18:00:00"
},
{
"id": 2,
"type": "twitterpixel",
"name": "Twitter Pixel",
"tag": "1234567",
"date": "2020-11-10 18:10:00"
}
]
}
}
Create a Pixel
POST
https://www.start.fr/api/pixel/add
A pixel can be created using this endpoint. You need to send the pixel type and the tag.
| Parameter | Description |
|---|---|
| type | (required) gtmpixel | gapixel | fbpixel | adwordspixel | linkedinpixel | twitterpixel | adrollpixel | quorapixel | pinterest | bing | snapchat | reddit | tiktok |
| name | (required) Custom name for your pixel |
| tag | (required) The tag for the pixel |
Update Pixel
PUT
https://www.start.fr/api/pixel/:id/update
To update a pixel, you need to send a valid data in JSON via a PUT request. The data must be sent as the raw body of your request as shown below. The example below shows all the parameters you can send but you are not required to send all (See table for more info).
| Parameter | Description |
|---|---|
| name | (optional) Custom name for your pixel |
| tag | (required) The tag for the pixel |
curl --location --request PUT 'https://www.start.fr/api/pixel/:id/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "My GTM",
"tag": "GTM-ABCDE"
}'Server response
{
"error": 0,
"message": "Pixel has been updated successfully."
}
Delete Pixel
DELETE
https://www.start.fr/api/pixel/:id/delete
To delete a pixel, you need to send a DELETE request.
QR Codes
List QR codes
GET
https://www.start.fr/api/qr?limit=2&page=1
To get your QR codes via the API, you can use this endpoint. You can also filter data (See table for more info).
| Parameter | Description |
|---|---|
| limit | (optional) Per page data result |
| page | (optional) Current page request |
curl --location --request GET 'https://www.start.fr/api/qr?limit=2&page=1' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json'Server response
{
"error": "0",
"data": {
"result": 2,
"perpage": 2,
"currentpage": 1,
"nextpage": 1,
"maxpage": 1,
"qrs": [
{
"id": 2,
"link": "https:\/\/www.start.fr\/qr\/a2d5e",
"scans": 0,
"name": "Google",
"date": "2020-11-10 18:01:43"
},
{
"id": 1,
"link": "https:\/\/www.start.fr\/qr\/b9edfe",
"scans": 5,
"name": "Google Canada",
"date": "2020-11-10 18:00:25"
}
]
}
}
Get a single QR Code
GET
https://www.start.fr/api/qr/:id
To get details for a single QR code via the API, you can use this endpoint.
curl --location --request GET 'https://www.start.fr/api/qr/:id' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json'Server response
{
"error": 0,
"details": {
"id": 1,
"link": "https:\/\/www.start.fr\/qr\/b9edfe",
"scans": 5,
"name": "Google Canada",
"date": "2020-11-10 18:00:25"
},
"data": {
"clicks": 1,
"uniqueClicks": 1,
"topCountries": {
"Unknown": "1"
},
"topReferrers": {
"Direct, email and other": "1"
},
"topBrowsers": {
"Chrome": "1"
},
"topOs": {
"Windows 10": "1"
},
"socialCount": {
"facebook": 0,
"twitter": 0,
"instagram": 0
}
}
}
Create a QR Code
POST
https://www.start.fr/api/qr/add
To create a QR Code, you need to send a valid data in JSON via a POST request. The data must be sent as the raw body of your request as shown below. The example below shows all the parameters you can send but you are not required to send all (See table for more info).
| Parameter | Description |
|---|---|
| type | (required) text | vcard | link | email | phone | sms | wifi |
| data | (required) Data to be embedded inside the QR code. The data can be string or array depending on the type |
| background | (optional) RGB color e.g. rgb(255,255,255) |
| foreground | (optional) RGB color e.g. rgb(0,0,0) |
| logo | (optional) Path to the logo either png or jpg |
| name | (optional) QR Code name |
curl --location --request POST 'https://www.start.fr/api/qr/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": "link",
"data": "https:\/\/google.com",
"background": "rgb(255,255,255)",
"foreground": "rgb(0,0,0)",
"logo": "https:\/\/site.com\/logo.png",
"name": "QR Code API"
}'Server response
{
"error": 0,
"id": 3,
"link": "https:\/\/www.start.fr\/qr\/a58f79"
}
Update QR Code
PUT
https://www.start.fr/api/qr/:id/update
To update a QR Code, you need to send a valid data in JSON via a PUT request. The data must be sent as the raw body of your request as shown below. The example below shows all the parameters you can send but you are not required to send all (See table for more info).
| Parameter | Description |
|---|---|
| data | (required) Data to be embedded inside the QR code. The data can be string or array depending on the type |
| background | (optional) RGB color e.g. rgb(255,255,255) |
| foreground | (optional) RGB color e.g. rgb(0,0,0) |
| logo | (optional) Path to the logo either png or jpg |
curl --location --request PUT 'https://www.start.fr/api/qr/:id/update' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": "link",
"data": "https:\/\/google.com",
"background": "rgb(255,255,255)",
"foreground": "rgb(0,0,0)",
"logo": "https:\/\/site.com\/logo.png"
}'Server response
{
"error": 0,
"message": "QR has been updated successfully."
}
Delete a QR Code
DELETE
https://www.start.fr/api/qr/:id/delete
To delete a QR code, you need to send a DELETE request.
Plans
This endpoint is only accessible by users with admin privileges.
List Plans
GET
https://www.start.fr/api/plans
Get a list of all plans on the platform.
curl --location --request GET 'https://www.start.fr/api/plans' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json'Server response
{
"error": 0,
"data": [
{
"id": 2,
"name": "Business",
"free": false,
"prices": {
"monthly": 9.99,
"yearly": 99.99,
"lifetime": 999.99
},
"limits": {
"links": 100,
"clicks": 100000,
"retention": 60,
"custom": {
"enabled": "0"
},
"team": {
"enabled": "0",
"count": "0"
},
"splash": {
"enabled": "1",
"count": "5"
},
"overlay": {
"enabled": "1",
"count": "10"
},
"pixels": {
"enabled": "1",
"count": "10"
},
"domain": {
"enabled": "1",
"count": "1"
},
"multiple": {
"enabled": "0"
},
"alias": {
"enabled": "1"
},
"device": {
"enabled": "0"
},
"geo": {
"enabled": "0"
},
"bundle": {
"enabled": "0"
},
"parameters": {
"enabled": "0"
},
"export": {
"enabled": "0"
},
"api": {
"enabled": "0"
}
}
},
{
"id": 1,
"name": "Starter",
"free": true,
"prices": null,
"limits": {
"links": 10,
"clicks": 1000,
"retention": 7,
"custom": {
"enabled": "0"
},
"team": {
"enabled": "0",
"count": "0"
},
"splash": {
"enabled": "0",
"count": "0"
},
"overlay": {
"enabled": "0",
"count": "10"
},
"pixels": {
"enabled": "0",
"count": "10"
},
"domain": {
"enabled": "0",
"count": "0"
},
"multiple": {
"enabled": "0"
},
"alias": {
"enabled": "0"
},
"device": {
"enabled": "0"
},
"geo": {
"enabled": "0"
},
"bundle": {
"enabled": "0"
},
"parameters": {
"enabled": "0"
},
"export": {
"enabled": "0"
},
"api": {
"enabled": "0"
}
}
}
]
}
Subscribe a User to a Plan
PUT
https://www.start.fr/api/plan/:planid/user/:userid
To subscribe a user to plan, send a PUT request to this endpoint with the plan id and user id. The type of subscription and the expiration date will need to be specified. If the expiration date is not specified, the date will be adjusted according to the type.
| Parameter | Description |
|---|---|
| type | monthly | yearly | lifetime |
| expiration | (optional) Expiration date of the plan e.g. 2026-11-25 02:56:24 |
curl --location --request PUT 'https://www.start.fr/api/plan/:planid/user/:userid' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": "monthly",
"expiration": "2026-11-25 02:56:24"
}'Server response
{
"error": 0,
"message": "User has been subscribed to this plan."
}
Users
This endpoint is only accessible by users with admin privileges.
List Users
GET
https://www.start.fr/api/users?filter=free
Get a list of all users on the platform. Data can be filtered by sending a filter parameter in the url.
| Parameter | Description |
|---|---|
| filter | admin | free | pro |
| Search a user by email |
curl --location --request GET 'https://www.start.fr/api/users?filter=free' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json'Server response
{
"error": 0,
"data": [
{
"id": 2,
"email": "sample2@domain.com",
"username": "sample2user",
"avatar": "https:\\\/\\\/domain.com\/content\/avatar2.png",
"status": "free",
"planid": 1,
"expires": null,
"registered": "2020-11-10 18:01:43",
"apikey": "ABC123DEF456"
},
{
"id": 1,
"email": "sample@domain.com",
"username": "sampleuser",
"avatar": "https:\\\/\\\/domain.com\/content\/avatar.png",
"status": "pro",
"planid": 2,
"expires": "2022-11-15 15:00:00",
"registered": "2020-11-10 18:01:43",
"apikey": "ABC123DEF456"
}
]
}
List a Single User
GET
https://www.start.fr/api/user/:id
Get data for a single user.
curl --location --request GET 'https://www.start.fr/api/user/:id' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json'Server response
{
"error": 0,
"data": {
"id": 2,
"email": "sample2@domain.com",
"username": "sample2user",
"avatar": "https:\\\/\\\/domain.com\/content\/avatar2.png",
"status": "free",
"planid": 1,
"expires": null,
"registered": "2020-11-10 18:01:43",
"apikey": "ABC123DEF456"
}
}
Create User
POST
https://www.start.fr/api/user/add
To create a user, use this endpoint and send the following information as JSON.
| Parameter | Description |
|---|---|
| username | (required) User's username. Needs to be valid. |
| (required) User's email. Needs to be valid. | |
| password | (required) User's password. Must be 8 to 64 characters and include a lowercase letter, an uppercase letter, and a number. |
| planid | (optional) Premium plan. This can be found in the admin panel. |
| expiration | (optional) Membership expiration example 2020-12-26 12:00:00 |
curl --location --request POST 'https://www.start.fr/api/user/add' \
--header 'Authorization: Bearer YOURAPIKEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "user",
"password": "Password1",
"email": "demo@yourwebsite.com",
"planid": 1,
"expiration": "2020-11-20 11:00:00"
}'Server response
{
"error": 0,
"message": "User has been registered.",
"data": {
"id": 3,
"email": "demo@yourwebsite.com",
"username": "user"
}
}
Delete User
DELETE
https://www.start.fr/api/user/:id/delete
To delete a user, use this endpoint.
Login User
GET
https://www.start.fr/api/user/login/:id
This endpoint will generate a unique link that will allow the user to automatically login to the platform. SSO login urls are valid for 1 hour and they can be used a single time.