Skip to main content

Admin API reference

Swetrix provides the ability to control your projects (and soon your account) via an API as well.

Each request must be authenticated with an API key using X-Api-Key HTTP header. You can obtain an API key in your Swetrix account settings.

Rate limit for the API depends on your plan, you can find more information on the billing (or the main) page. As of 9 February 2023, the rate limits are as follows:

  • Free plan: 600 requests per hour;
  • Any paid plan: 600 requests per hour.

If you have special needs for more requests, please contact us to request more capacity.

Concepts

Projects manipulation

'Create project' / 'Update project' payload

NameTypeRequiredDescription
namestringtrueA display name for your project, max length is 50 chars.
isCaptchabooleanfalse(Only supported when creating a new project). Set to true if your project is a CAPTCHA project. false by default.
publicbooleanfalseSet to true if your project should have a publicly available dashboard. false by default.
isPasswordProtectedbooleanfalseSet to true if your project's dashboard should be password protected. false by default.
passwordstringfalseRequired only if isPasswordProtected is set to true. That is the password unauthorised people will have to enter to access your project's dashboard.
originsArray<string>falseAn array of origins (domains) which are allowed to use script with your ProjectID. For example: ['cornell.edu', 'app.example.com', '*.gov.ua']. By default all origins are allowed.
ipBlacklistArray<string>falseAn aeeay of IP addresses from which no analytics will be collected on this project. This functionality is handy if you want to ignore analytics from your IP. For example: ['172.126.10.16', '192.168.0.1/32', '::1']
botsProtectionLeveloff or basicfalseSet to basic or off. basic will block common bots by user agent and off will allow all traffic. basic by default.

Endpoints

POST /v1/project

This endpoint allows you to create a new project.

Request
curl -i -X POST https://api.swetrix.com/v1/project \
-H "X-Api-Key: ${SWETRIX_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"name": "PASSWORD PROTECTED","isPasswordProtected": true,"password": "12345678"}'
Response (201 Created)
{
"id": "WvZCYTrOPzSK",
"name": "PASSWORD PROTECTED",
"origins": [],
"isPasswordProtected": true,
"ipBlacklist": null,
"captchaSecretKey": null,
"active": true,
"public": false,
"isTransferring": false,
"isAnalyticsProject": true,
"isCaptchaProject": false,
"isCaptchaEnabled": false,
"botsProtectionLevel": "basic",
"created": "2023-10-07T10:23:09.000Z"
}

PUT /v1/project/:id

This endpoint allows you to edit an existing project.

Request
curl -i -X PUT https://api.swetrix.com/v1/project/WvZCYTrOPzSK \
-H "X-Api-Key: ${SWETRIX_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"origins": ["example.com", "example.co.uk"],"public": true}'
Response (200 OK)
{
"id": "WvZCYTrOPzSK",
"name": "PASSWORD PROTECTED",
"origins": [
"example.com",
"example.co.uk"
],
"ipBlacklist": null,
"active": true,
"public": true,
"isTransferring": false,
"isAnalyticsProject": true,
"isCaptchaProject": false,
"isCaptchaEnabled": false,
"captchaSecretKey": null,
"botsProtectionLevel": "basic",
"created": "2023-10-07T10:23:09.000Z",
"isPasswordProtected": true
}

DELETE /v1/project/:id

This endpoint allows you to delete a project.

Request
curl -i -X DELETE https://api.swetrix.com/v1/project/WvZCYTrOPzSK \
-H "X-Api-Key: ${SWETRIX_API_KEY}" \
-H "Content-Type: application/json"
Response (204 No Content)

Status and error codes

200 OK

Typical successful response when updating a project or account settings.

201 Created

The request was successful and the project was created.

204 No Content

The request was successful and there is no data to return. Usually this code is sent when deleting an entity.

400 Bad Request

This error is usually returned when the request body is malformed (for example, the pid parameter is missing or invalid).

500 Internal Server Error

This error is usually returned when the server is unable to process the request due to a temporary problem (for example, the database is unavailable). If you receive this error, please try again later. If the problem persists, please contact us.