Docs
grovs.io Start for free
Examples for

Links

Create links from your server. Read their details and lifetime metrics.

These endpoints live on the SDK host: https://sdk.sqd.link on grovs Cloud, https://sdk.<SERVER_HOST> when you self-host. Send your project key in the PROJECT-KEY header. Send production or test in the ENVIRONMENT header.

Each environment has its own links. A link created in test is not visible in production.

Get project metrics

GET/api/v1/sdk/metrics_for_project

Returns every active link in the environment named by the ENVIRONMENT header, with its lifetime totals, sorted by views from most to least. Everything comes back in one response; there is no pagination.

AuthProject keyAuthentication ›
Headers
PROJECT-KEYstringRequired

Your project key. Find it in Developers › API Key in the dashboard.

ENVIRONMENTstringRequired

production or test. Any other value returns 400.

The endpoint takes no query parameters and no body.

Returns

A JSON array. Each item has the same shape as the metrics object of Get link metrics: the link's descriptive fields plus total_views, total_opens, total_installs, total_reinstalls, total_time_spent, total_reactivations, total_app_opens, total_user_referred and total_revenue.

Links deactivated in the dashboard are left out, and so are the links smart banners create. Totals cover each link's whole life, limited by your plan's analytics retention.

A project with many links gets a large response. Cache it on your side instead of polling it often.

Errors

400PROJECT-KEY is missing or ENVIRONMENT is not production or test.
403The PROJECT-KEY does not match a project.

See Errors for the shared error format.

Request · cURL
curl -X GET "https://sdk.sqd.link/api/v1/sdk/metrics_for_project" \
  -H "PROJECT-KEY: $GROVS_PROJECT_KEY" \
  -H "ENVIRONMENT: production"
JSON
[
  {
    "id": 50510,
    "name": null,
    "path": "2c1e79",
    "title": "Book a check-up",
    "subtitle": "Same-week appointments at Medly clinics",
    "active": true,
    "sdk_generated": true,
    "data": { "screen": "booking", "clinic_id": "42" },
    "tags": ["clinics", "autumn"],
    "updated_at": "2026-10-02T12:43:53.604Z",
    "show_preview_ios": true,
    "show_preview_android": false,
    "copy_to_clipboard_ios": null,
    "copy_to_clipboard_android": null,
    "ads_platform": null,
    "generated_from_platform": "API",
    "tracking_source": "newsletter",
    "tracking_medium": "email",
    "tracking_campaign": "autumn_checkups",
    "visitor_id": null,
    "campaign_id": null,
    "total_views": 1250,
    "total_opens": 840,
    "total_installs": 312,
    "total_reinstalls": 18,
    "total_time_spent": 96420,
    "total_reactivations": 41,
    "total_app_opens": 2210,
    "total_user_referred": 0,
    "total_revenue": 149900
  },
  {
    "id": 50488,
    "name": "Flu shot reminder",
    "path": "8f21ac",
    "title": "Flu shots are open",
    "subtitle": null,
    "active": true,
    "sdk_generated": false,
    "data": { "screen": "vaccines" },
    "tags": [],
    "updated_at": "2026-09-28T08:10:02.117Z",
    "show_preview_ios": null,
    "show_preview_android": null,
    "copy_to_clipboard_ios": null,
    "copy_to_clipboard_android": null,
    "ads_platform": null,
    "generated_from_platform": null,
    "tracking_source": "email",
    "tracking_medium": "newsletter",
    "tracking_campaign": "flu_2026",
    "visitor_id": null,
    "campaign_id": 41,
    "total_views": 630,
    "total_opens": 402,
    "total_installs": 95,
    "total_reinstalls": 3,
    "total_time_spent": 31877,
    "total_reactivations": 12,
    "total_app_opens": 1104,
    "total_user_referred": 0,
    "total_revenue": 0
  }
]
Was this page helpful?
Last updated 2026-10-26