Langkau ke kandungan utama
s.id Logo
Platform Pembangun

Rujukan API

Lihat setiap operasi REST dan OAuth berserta hos, kaedah pengesahan, skop, parameter, medan permintaan dan kod respons yang tepat.

OpenAPI v2.1.0

Gambaran keseluruhan API

Operasi awam /v2 menerima sama ada kunci API berskop atau token akses OAuth 2.0. Operasi pengurusan OAuth menggunakan keperluan pelayar, sesi atau kelayakan klien masing-masing.

Cuba Rujukan Interaktif
URL Asas:
https://api.s.id/v2
Operasi
38
Skop
10

Pengesahan

Kelayakan mempunyai skop. Skop wajib yang tiada mengembalikan 403 insufficient_scope. Minta hanya kebenaran yang diperlukan oleh integrasi anda.

Authorization: Bearer sk_live_...

Titik Akhir

Katalog endpoint

Kembangkan operasi untuk memeriksa URL asas, pengesahan, input dan kod respons yang mungkin dengan tepat.

Links

POST/links/availableSemak ketersediaan slug

Checks whether a custom slug is available before creating a link.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

links:read

Badan permintaan

  • shortstringDiperlukan
  • domain_aliasstring

    Custom domain, if any

Respons

200Slug is available
401
422Slug is taken or invalid
GET/links/{short}/statsGaris masa klik pautan

Returns a date-bucketed click-count timeline for the link.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

links:analytics

Parameter

  • shortpath · stringDiperlukan
  • startquery · string
  • endquery · string

Respons

200Click timeline
401
403
404
429
GET/links/{short}/stats/lifetimeJumlah klik sepanjang masa

Returns the all-time total click count for a single link.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

links:analytics

Parameter

  • shortpath · stringDiperlukan

Respons

200Lifetime click count
401
403
404
429

User

GET/userDapatkan pengguna yang disahkan
URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

user:read

Respons

200User profile
401
429
GET/quotaDapatkan kuota akaun

Returns the authenticated user's current plan limits and usage counters.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

user:read

Respons

200Account quota
401
429

Microsites

GET/micrositesSenaraikan microsite

Returns a paginated list of microsites owned by the authenticated user.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

microsites:read

Parameter

  • limitquery · integer
  • afterquery · string

    Cursor for the next page (opaque string from previous response)

Respons

200List of microsites
401
403
POST/micrositesCipta microsite
URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

microsites:write

Badan permintaan

  • slugstringDiperlukan

    URL-safe identifier (alphanumeric + hyphens/underscores)

  • titlestringDiperlukan
  • kindstringDiperlukan

    Microsite category (e.g. `personal_branding`, `brand`, `other`)

  • themestring

    Theme slug (optional, defaults to the platform default)

Respons

200Microsite created
400Validation error (slug already taken, quota exceeded, etc.)
401
403
GET/microsites/{slug}Dapatkan microsite
URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

microsites:read

Parameter

  • slugpath · stringDiperlukan

Respons

200Microsite detail
401
403
404Microsite not found
PUT/microsites/{slug}Kemas kini microsite

Patches title, description, and/or visibility. All fields are optional.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

microsites:write

Parameter

  • slugpath · stringDiperlukan

Badan permintaan

  • titlestring
  • descriptionstring
  • hideboolean

    Set `true` to hide the microsite from public (requires plan that supports visibility toggle)

Respons

200Updated microsite
401
403
404Microsite not found
DELETE/microsites/{slug}Padam microsite
URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

microsites:delete

Parameter

  • slugpath · stringDiperlukan

Respons

200Microsite deleted
401
403
404Microsite not found
POST/microsites/availableSemak ketersediaan slug microsite

Checks whether a microsite slug is available before creating a microsite.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

microsites:read

Badan permintaan

  • slugstringDiperlukan

Respons

200Slug availability result
401
403
429
GET/microsites/{slug}/componentsSenaraikan komponen microsite

Returns the components belonging to a microsite, in display order.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

microsites:read

Parameter

  • slugpath · stringDiperlukan

    The slug of the microsite

Respons

200List of microsite components
401
403
404
429
POST/microsites/{slug}/componentsTambah komponen microsite

Adds a new component to a microsite. The body is `{ kind, data, tag? }`. The shape of the `data` object depends on `kind`. Unknown fields are ignored, validation is per-kind, and invalid input returns `422`. All color fields are hex strings (e.g. `#1a56db`). **Kinds:** `PROFILE`, `LINK`, `HORIZONTAL_LINK`, `TEXT`, `IMAGE`, `MEDIA`, `DIVIDER`, `COUNTDOWN`, `MAPS`, `IMAGE_SLIDE`, `CV`, `AUTOPLAY_MUSIC`, `CONTACT`, `CALENDAR`, `SHOP_LISTING`, `SHOP_ITEM`, `SHOP_LEADERBOARD`. **Rules:** - `PROFILE`, `CV` and `AUTOPLAY_MUSIC` are unique — at most one per microsite. - `IMAGE_SLIDE` requires a plan with the Image Slide feature. - On create the password is always stored empty — set or change it via update (`PUT`). - Image fields (`image`, `imageBackground`, slide `image`) must be a local asset path, not a remote URL — they must match `[/.a-zA-Z0-9_-]+.(jpg|jpeg|png|svg|webp|gif|bmp)`; any value containing a scheme (`https://`), `//`, or `..` is rejected. **Shared field groups** (a kind that lists a group accepts all of its fields inside `data`): - **Button styling** (`LINK`, `CONTACT`, `CALENDAR`): `icon` (string, max 255), `textFont` (string, max 100), `textPosition` (string, max 100), `buttonEffect` (string, max 100), `buttonColor` (hex, max 20), `buttonBorderColor` (hex, max 20), `buttonIconBackground` (hex, max 20), `buttonShadowColor` (hex, max 20). - **Spoiler reveal** (`TEXT`, `IMAGE`, `MEDIA`, `MAPS`, `IMAGE_SLIDE`, `SHOP_LEADERBOARD`): `isSpoiler` (bool), `spoilerButtonText` (string, max 140), `spoilerButtonTextPosition` (string, max 100), `spoilerButtonIcon` (string), `spoilerButtonColor` (hex, max 20), `spoilerButtonFont` (string, max 100), `spoilerBackground` (string, max 100), `spoilerBackgroundOpacity` (string, max 100), `spoilerButtonBorderColor` (hex, max 20), `spoilerButtonIconBackground` (hex, max 20), `spoilerButtonShadowColor` (hex, max 20). - **Password protection** (`LINK`, `TEXT`, `IMAGE`, `MEDIA`, `MAPS`, `IMAGE_SLIDE`, `CONTACT`, `CV`, `SHOP_LEADERBOARD`): `passwordActive` (bool), `password` (string, max 255 — set via update only), `passwordMessage` (string, max 255).

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

microsites:write

Parameter

  • slugpath · stringDiperlukan

    The slug of the microsite

Badan permintaan

  • kindstringDiperlukan

    Component kind. The shape of `data` depends on this value.

  • dataobjectDiperlukan

    Kind-specific component data. Its shape depends on `kind`. See the operation description and examples below.

  • tagstring

    Optional grouping tag

Respons

200Component created
401
403
404
422
429
PUT/microsites/{slug}/components/{componentId}Kemas kini komponen microsite

Updates a single microsite component.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

microsites:write

Parameter

  • slugpath · stringDiperlukan

    The slug of the microsite

  • componentIdpath · stringDiperlukan

    The component ID

Badan permintaan

  • activebooleanDiperlukan

    Whether the component is shown

  • kindstringDiperlukan

    Component kind (e.g. `LINK`, `PROFILE`, `TEXT`)

  • dataobjectDiperlukan

    Kind-specific component data

Respons

200Component updated
401
403
404
422
429
DELETE/microsites/{slug}/components/{componentId}Padam komponen microsite

Deletes a single microsite component.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

microsites:delete

Parameter

  • slugpath · stringDiperlukan

    The slug of the microsite

  • componentIdpath · stringDiperlukan

    The component ID

Respons

200Component deleted
401
403
404
429
POST/microsites/{slug}/components/orderSusun semula komponen microsite

Reorders a microsite's components according to the provided list of component IDs.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

microsites:write

Parameter

  • slugpath · stringDiperlukan

    The slug of the microsite

Badan permintaan

  • ordersarray<string>Diperlukan

    Component IDs in the desired display order

Respons

200Components reordered
401
403
404
422
429

Analytics

GET/statsAnalitik klik peringkat akaun

Returns a timeline of clicks plus breakdowns by top links, referers, locations, devices, and browsers for the authenticated account. Date range is gated by subscription plan.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

links:analytics

Parameter

  • startquery · string

    Start date (YYYY-MM-DD). Defaults to 30 days ago.

  • endquery · string

    End date (YYYY-MM-DD). Defaults to today.

  • additionalquery · boolean

    Include referer, location, device, browser breakdowns

Respons

200Account analytics
401
403

QR

GET/qrDapatkan tetapan QR global

Returns the account-level (global) QR code settings applied to QR codes by default.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

qr:read

Respons

200Global QR settings
401
403
429
PUT/qrSesuaikan tetapan QR global

Updates the account-level (global) QR code settings. All fields are optional; omitted fields are left unchanged.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

qr:write

Badan permintaan

  • logostring

    URL of the logo image embedded in the QR code

  • colorstring

    Foreground color as a hex value, e.g. #1a56db

Respons

200Updated global QR settings
401
403
422
429
GET/links/{short}/qrDapatkan tetapan QR pautan

Returns the QR code settings for a single link.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

qr:read

Parameter

  • shortpath · stringDiperlukan

    The short code of the link

Respons

200Link QR settings
401
403
404
429
PUT/links/{short}/qrSesuaikan tetapan QR pautan

Updates the QR code settings for a single link. All fields are optional; omitted fields are left unchanged.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API atau OAuth 2.0

Skop

qr:write

Parameter

  • shortpath · stringDiperlukan

    The short code of the link

Badan permintaan

  • logostring

    URL of the logo image embedded in the QR code

  • colorstring

    Foreground color as a hex value, e.g. #1a56db

Respons

200Updated link QR settings
401
403
404
422
429

OAuth 2.0

GET/oauth/authorizeDapatkan data skrin persetujuan

A plain browser navigation here (no `Accept: application/json`) 302-redirects to the dash.s.id consent UI, preserving the query string. With `Accept: application/json`, returns application name, logo, and requested scopes for the consent UI to render.

URL Asas
https://api.s.id
Pengesahan
Kunci API

Parameter

  • client_idquery · stringDiperlukan
  • redirect_uriquery · stringDiperlukan
  • response_typequery · stringDiperlukan
  • scopequery · string
  • statequery · string

    Recommended. Opaque value for CSRF protection. Returned unchanged in the redirect.

Respons

200Consent screen data
400Bad request
POST/oauth/tokenTukar kod atau token muat semula
URL Asas
https://api.s.id
Pengesahan
Kunci API

Badan permintaan

  • grant_typestring
  • codestring
  • redirect_uristring
  • client_idstring
  • client_secretstring
  • refresh_tokenstring

Respons

200Token response
400Invalid grant, unsupported_grant_type, or invalid_client
401Invalid client credentials
POST/oauth/revokeBatalkan token

Revokes an access or refresh token. Always returns 200 OK regardless of whether the token was valid (RFC 7009).

URL Asas
https://api.s.id
Pengesahan
Kunci API

Badan permintaan

  • tokenstringDiperlukan

Respons

200Token revoked
POST/oauth/introspectPeriksa token

Reports whether a token is currently active and, if so, which scopes and client it belongs to (RFC 7662). Client-credential protected: `client_id`/`client_secret` identify the caller, not the token owner. Always returns `200` — including for an unknown, expired, or revoked token (`{"active": false}`) — to avoid leaking token validity to unauthenticated probing.

URL Asas
https://api.s.id
Pengesahan
Kunci API

Badan permintaan

  • tokenstringDiperlukan
  • client_idstringDiperlukan
  • client_secretstringDiperlukan

Respons

200Introspection result
400Missing token/client_id, or invalid client credentials
GET/oauth/userinfoDapatkan profil pengguna yang dibenarkan

Returns the profile of the user who authorized the OAuth app. Requires `Authorization: Bearer <access_token>` (the OAuth access token, not an sk_live_ key).

URL Asas
https://api.s.id
Pengesahan
OAuth 2.0

Skop

user:read

Respons

200User profile
401Unauthorized
GET/.well-known/oauth-authorization-serverMetadata Pelayan Kebenaran OAuth 2.0

RFC 8414 discovery document advertising every OAuth endpoint URL, supported scopes, and PKCE methods, so standards-compliant client libraries can configure themselves instead of hard-coding s.id's URLs.

URL Asas
https://api.s.id
Pengesahan
Kunci API

Respons

200Authorization server metadata
GET/api/user/oauth/appsSenaraikan aplikasi yang dibenarkan oleh pengguna semasa

Returns all OAuth clients that have active tokens for the authenticated user. Auth: user session cookie (not API key).

URL Asas
https://api.s.id
Pengesahan
Kunci API

Respons

200List of connected apps
401Unauthorized
DELETE/api/user/oauth/apps/{clientId}Batalkan semua token untuk aplikasi

Revokes all active tokens granted by the current user to the specified OAuth client.

URL Asas
https://api.s.id
Pengesahan
Kunci API

Parameter

  • clientIdpath · stringDiperlukan

Respons

200App access revoked
401Unauthorized
404App not found

Integrations

POST/integrations/make/webhook/subscribeLanggan webhook Make.com

Registers a Make.com (Integromat) scenario webhook URL to receive s.id events. Authenticated via DeveloperAPIAuth (API key or OAuth Bearer) with no scope requirement — every authenticated developer credential can subscribe.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API

Respons

200Subscribed
401Unauthorized
POST/integrations/make/webhook/unsubscribeHentikan langganan webhook Make.com

Removes a previously registered Make.com scenario webhook subscription. Authenticated via DeveloperAPIAuth with no scope requirement.

URL Asas
https://api.s.id/v2
Pengesahan
Kunci API

Respons

200Unsubscribed
401Unauthorized

Rujukan Skop

links:read

Senaraikan dan baca pautan

links:write

Cipta dan kemas kini pautan (cipta, edit, pulihkan)

links:archive

Arkibkan pautan

links:analytics

Baca statistik klik setiap pautan dan jumlah sepanjang masa

qr:read

Baca tetapan kod QR (global dan setiap pautan)

qr:write

Sesuaikan tetapan kod QR (global dan setiap pautan)

user:read

Baca profil pengguna yang disahkan dan kuota akaun

microsites:read

Baca microsite

microsites:write

Cipta, kemas kini dan urus komponen microsite

microsites:delete

Padam microsite dan komponennya

Had Kadar

Had lalai ialah 38 permintaan seminit bagi setiap kelayakan—setiap kunci API atau token akses OAuth. Aplikasi OAuth juga mempunyai had gabungan 500 permintaan seminit merentasi tokennya.

Respons ralat biasa

400
Permintaan rosak atau tidak disokong
401
Kelayakan hilang, tidak sah, dibatalkan atau tamat tempoh
403
Kelayakan tidak mempunyai skop yang diperlukan
404
Sumber yang diminta tidak ditemui
422
Pengesahan permintaan gagal
429
Had kadar telah dilebihi

Bersedia untuk mula membina?

Cipta kunci API dalam beberapa minit. Peringkat percuma disertakan, tiada kad kredit diperlukan.

Dapatkan kunci API anda