Global site configuration: name, domain, timezone, locales, language detection, and other site-wide preferences.

9 endpoints

GET /site/info

Get basic site info

Returns the site name, domain, slug, logo, and active status.

Responses

Status

Description

200

Successful response

401

Unauthorized — invalid or missing API token

403

Forbidden — insufficient permissions

Examples

Bash
curl https://api.lynkow.com/v1/site/info \
  -H "Authorization: Bearer $API_TOKEN"

Response Example

JSON
{
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "name": "My Website",
    "domain": "www.example.com",
    "slug": "my-website",
    "logoUrl": "https://cdn.lynkow.com/sites/abc123/logo.png",
    "faviconUrl": "https://cdn.lynkow.com/sites/abc123/favicon.ico",
    "isActive": true
  }
}

GET /site/settings

Get all site settings

Returns the complete settings object including timezone, locale config, and features.

Responses

Status

Description

200

Successful response

401

Unauthorized — invalid or missing API token

403

Forbidden — insufficient permissions

Examples

Bash
curl https://api.lynkow.com/v1/site/settings \
  -H "Authorization: Bearer $API_TOKEN"

Response Example

JSON
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "name": "My Website",
  "domain": "www.example.com",
  "slug": "my-website",
  "description": "Company website and blog",
  "logoUrl": "https://cdn.lynkow.com/sites/abc123/logo.png",
  "faviconUrl": "https://cdn.lynkow.com/sites/abc123/favicon.ico",
  "timezone": "Europe/Paris",
  "isActive": true,
  "showBranding": false,
  "previewUrl": "https://www.example.com",
  "organizationId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "createdAt": "2025-01-01T00:00:00.000Z",
  "updatedAt": "2025-04-05T14:30:00.000Z"
}

PUT /site/settings

Update site settings

Updates site settings. Only include the fields you want to change.

Request Body

Content-Type: application/json

Field

Type

Required

Description

name

string

No

Display name. 1-255 characters

domain

string

No

1-255 characters

description

string | null

No

Description text

logoUrl

string | null

No

Site logo URL

faviconUrl

string | null

No

Site favicon URL

timezone

string

No

Max 100 characters

isActive

boolean

No

Boolean

showBranding

boolean

No

Boolean

previewUrl

string | null

No

Frontend preview URL

Responses

Status

Description

200

Successful response

401

Unauthorized — invalid or missing API token

403

Forbidden — insufficient permissions

422

Validation error

Examples

Bash
curl -X PUT https://api.lynkow.com/v1/site/settings \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My Updated Website",
    "timezone": "America/New_York",
    "previewUrl": "https://staging.example.com"
  }'

Response Example

JSON
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "name": "My Updated Website",
  "domain": "www.example.com",
  "slug": "my-website",
  "description": "Company website and blog",
  "logoUrl": "https://cdn.lynkow.com/sites/abc123/logo.png",
  "faviconUrl": "https://cdn.lynkow.com/sites/abc123/favicon.ico",
  "timezone": "America/New_York",
  "isActive": true,
  "showBranding": false,
  "previewUrl": "https://staging.example.com",
  "organizationId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "createdAt": "2025-01-01T00:00:00.000Z",
  "updatedAt": "2025-04-06T11:00:00.000Z"
}

GET /site/settings/timezones

List available timezones

Returns all IANA timezone identifiers that can be set for the site.

Responses

Status

Description

200

Successful response

401

Unauthorized — invalid or missing API token

403

Forbidden — insufficient permissions

Response Example

JSON
{
  "data": [
    "Africa/Abidjan",
    "America/New_York",
    "America/Los_Angeles",
    "Europe/London",
    "Europe/Paris",
    "Asia/Tokyo"
  ]
}

GET /site/settings/locales

List enabled locales

Returns the locales currently enabled for the site.

Responses

Status

Description

200

Successful response

401

Unauthorized — invalid or missing API token

403

Forbidden — insufficient permissions

Response Example

JSON
{
  "data": [
    {
      "code": "en",
      "label": "English",
      "flag": "gb",
      "direction": "ltr"
    },
    {
      "code": "fr",
      "label": "French",
      "flag": "fr",
      "direction": "ltr"
    }
  ]
}

GET /site/settings/language

Get language settings

Returns the default locale, enabled locales, and fallback behavior.

Responses

Status

Description

200

Successful response

401

Unauthorized — invalid or missing API token

403

Forbidden — insufficient permissions

Examples

Bash
curl https://api.lynkow.com/v1/site/settings/language \
  -H "Authorization: Bearer $API_TOKEN"

Response Example

JSON
{
  "defaultLocale": "en",
  "multiLanguageEnabled": true,
  "enabledLocales": [
    "en",
    "fr",
    "es"
  ],
  "availableLocales": [
    {
      "code": "en",
      "label": "English",
      "flag": "gb",
      "direction": "ltr",
      "enabled": true
    },
    {
      "code": "fr",
      "label": "French",
      "flag": "fr",
      "direction": "ltr",
      "enabled": true
    },
    {
      "code": "es",
      "label": "Spanish",
      "flag": "es",
      "direction": "ltr",
      "enabled": true
    },
    {
      "code": "de",
      "label": "German",
      "flag": "de",
      "direction": "ltr",
      "enabled": false
    }
  ]
}

PUT /site/settings/language

Update language settings

Updates locale configuration (default locale, enabled locales).

Request Body

Content-Type: application/json

Field

Type

Required

Description

defaultLocale

string

Yes

Required

multiLanguageEnabled

boolean

Yes

Required. Boolean

enabledLocales

string[]

Yes

Required. 1-50 characters. Array of strings

Responses

Status

Description

200

Successful response

401

Unauthorized — invalid or missing API token

403

Forbidden — insufficient permissions

422

Validation error

Response Example

JSON
{
  "defaultLocale": "en",
  "multiLanguageEnabled": true,
  "enabledLocales": [
    "en",
    "fr",
    "es",
    "de"
  ],
  "redirects": {
    "created": 0,
    "deleted": 0
  },
  "message": "Multi-langue activé. 0 redirections créées."
}

GET /site/settings/i18n-detection

Get i18n detection settings

Returns how visitor locale is detected (URL prefix, cookie, browser header).

Responses

Status

Description

200

Successful response

401

Unauthorized — invalid or missing API token

403

Forbidden — insufficient permissions

Response Example

JSON
{
  "data": {
    "detectionMethod": "url_prefix",
    "redirectToDefault": true,
    "hideDefaultLocale": false
  }
}

PUT /site/settings/i18n-detection

Update i18n detection settings

Changes the locale detection method.

Request Body

Content-Type: application/json

Field

Type

Required

Description

detectionEnabled

boolean

Yes

Required. Boolean

detectionOrder

"cookie" | "browser" | "geo"[]

Yes

Required. 0-3 characters. Array of strings

cookieName

string

Yes

Required. 1-50 characters

cookieMaxAge

number

Yes

Required. Between 1 and 3650

Responses

Status

Description

200

Successful response

401

Unauthorized — invalid or missing API token

403

Forbidden — insufficient permissions

422

Validation error

Response Example

JSON
{
  "data": {
    "detectionMethod": "url_prefix",
    "redirectToDefault": true,
    "hideDefaultLocale": false
  }
}