API Overview
Manage your projects, dynamic links, and app registrations programmatically via the LinkSense REST API.
Introduction
The LinkSense REST API gives you programmatic access to all resources in your account — projects, dynamic links, iOS apps, and Android apps. Every action available in the dashboard can also be performed through the API, making it straightforward to integrate LinkSense into your CI/CD pipelines, internal tooling, or backend services.
API access is available on the Pro plan. Requests are authenticated using API keys scoped to your account. All responses are JSON.
Pro plan required
The REST API is a Pro-only feature. Upgrade your plan to generate API keys and start making requests.
Base URL
All API requests are made to the following base URL. Append the endpoint path to this URL for each request.
https://linksense.net/api/v1Authentication
Authenticate every request by including your API key as a Bearer token in the Authorization header. API keys begin with ls_live_.
Authorization: Bearer ls_live_your_api_key_hereGenerating API keys
Generate and manage your API keys from Dashboard › Settings › API Keys. Treat your keys like passwords — never commit them to source control or expose them in client-side code.
Rate Limits
The API enforces a limit of 60 requests per minute per API key. If you exceed this limit, the API returns a 429 Too Many Requests response. Each response includes the following headers so you can track your usage:
| Field | Type | Required | Description |
|---|---|---|---|
X-RateLimit-Limit | number | No | Maximum number of requests allowed per window. |
X-RateLimit-Remaining | number | No | Number of requests remaining in the current window. |
X-RateLimit-Reset | number | No | Unix timestamp (seconds) at which the current window resets. |
Response Format
All successful responses wrap the result in a data envelope. Error responses use an error envelope with a machine-readable code and a human-readable message.
{
"data": {
"id": "abc123",
"name": "My Project",
"subdomain": "my-project",
"created_at": "2024-01-01T00:00:00Z"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "The requested resource does not exist."
}
}Error Codes
The API uses consistent error codes across all endpoints. Use the code field in error responses to handle specific failure cases in your integration.
| Field | Type | Required | Description |
|---|---|---|---|
INVALID_INPUT | 400 | No | Request body or query parameter validation failed. |
UNAUTHORIZED | 401 | No | API key is missing, invalid, or has been revoked. |
ACCESS_DENIED | 403 | No | Your plan doesn't include API access or the resource belongs to another account. |
NOT_FOUND | 404 | No | The requested resource does not exist. |
IOS_APP_NOT_FOUND | 404 | No | The iOS app referenced by ios_app_id does not exist in the project. |
ANDROID_APP_NOT_FOUND | 404 | No | The Android app referenced by android_app_id does not exist in the project. |
SUBDOMAIN_TAKEN | 409 | No | The subdomain is already in use by another project. |
SUBDOMAIN_RESERVED | 400 | No | The subdomain uses a reserved word that cannot be assigned to projects. |
CUSTOM_PATH_EXISTS | 409 | No | A link with this custom path already exists in the project. |
BUNDLE_ID_EXISTS | 409 | No | An iOS app with this bundle ID already exists in the project. |
PACKAGE_NAME_EXISTS | 409 | No | An Android app with this package name already exists in the project. |
LINKED_REFERENCES | 409 | No | The app cannot be deleted because it is referenced by one or more dynamic links. |
RATE_LIMITED | 429 | No | You have exceeded the rate limit. Wait until the window resets. |
HTTP status codes
The Type column above shows the HTTP status code returned for each error. Always check the HTTP status first, then use the code field for precise error handling.
Quick Example
Here is a minimal example that lists your projects using cURL. Replace the API key with your own from the dashboard.
curl -H "Authorization: Bearer ls_live_abc123..." \
https://linksense.net/api/v1/projectsReady to explore all available endpoints? Continue to the API Endpoints reference.