Aller au contenu

Pagine e link di una pagina

Tutte le route delle pagine e dei loro link, con per ciascuna un esempio di richiesta e la risposta restituita. Una pagina si indica con il suo identificativo o con il suo indirizzo personalizzato (slug).

Elencare le pagine

GET/v1/pages

Le pagine dello spazio di lavoro, dalla più recente alla più vecchia. Ogni pagina riporta le sue visualizzazioni in stats: total dalla creazione, last_30_days negli ultimi 30 giorni. Ambito Lettura.

  • ?search= — cerca nel nome, nell'indirizzo personalizzato e nell'identificativo
  • ?tag= — identificativo di un tag: solo le pagine che lo portano
  • ?page= e ?per_page= — paginazione, 50 per pagina per impostazione predefinita, 100 al massimo
curl "https://api.tinylink.fr/v1/pages?per_page=2" \
  -H "Authorization: Bearer tl_il_tuo_token"

Risposte possibili

{
  "data": [
    {
      "id": "P6ac40109381964",
      "type": "page",
      "name": "Ma page",
      "description": "Tous mes liens au même endroit.",
      "slug": "ma-page",
      "url": "https://tnylnk.fr/ma-page",
      "status": "active",
      "password_protected": false,
      "restricted": false,
      "tags": [],
      "qr_code": null,
      "created_at": "2026-10-05T21:56:57+02:00",
      "edit_url": "https://app.tinylink.fr/page-edit?id=P6ac40109381964",
      "stats": {
        "metric": "views",
        "total": 340,
        "last_30_days": 85
      }
    }
  ],
  "pagination": {
    "page": 1,
    "per_page": 2,
    "total": 1,
    "total_pages": 1
  }
}

Creare una pagina

POST/v1/pages

name è obbligatorio. La risposta è la pagina creata, con i suoi link. Ambito Scrittura.

  • name — il nome della pagina, 100 caratteri al massimo
  • description — 2 000 caratteri al massimo
  • slug — l'indirizzo personalizzato: lettere, numeri, -, _ e ., 40 caratteri al massimo
  • password — protegge la pagina con una password
  • tags — elenco di identificativi di tag dello spazio di lavoro
  • qr_code — true per il codice QR classico, oppure l'identificativo di un modello
  • links — link da aggiungere in una volta (100 al massimo), descritti come in « Aggiungere un link »
curl -X POST https://api.tinylink.fr/v1/pages \
  -H "Authorization: Bearer tl_il_tuo_token" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Ma page",
    "slug": "ma-page",
    "links": [
      {
        "title": "Mon site",
        "url": "https://exemple.fr"
      },
      {
        "title": "Contact",
        "url": "bonjour@exemple.fr"
      }
    ]
  }'

Risposte possibili

{
  "id": "P6ac40109381964",
  "type": "page",
  "name": "Ma page",
  "description": "",
  "slug": "ma-page",
  "url": "https://tnylnk.fr/ma-page",
  "status": "active",
  "password_protected": false,
  "restricted": false,
  "tags": [],
  "qr_code": null,
  "created_at": "2026-10-05T21:56:57+02:00",
  "edit_url": "https://app.tinylink.fr/page-edit?id=P6ac40109381964",
  "stats": {
    "metric": "views",
    "total": 0,
    "last_30_days": 0
  },
  "links": [
    {
      "id": "L6ac4011edb7c6",
      "title": "Mon site",
      "description": "",
      "url": "https://exemple.fr",
      "type": "url",
      "format": "LIST",
      "size": "FULL",
      "visible": true,
      "archived": false,
      "position": 1,
      "status": "active",
      "image": null,
      "created_at": "2026-10-05T21:57:18+02:00"
    },
    {
      "id": "L6ac4011ee9fab",
      "title": "Contact",
      "description": "",
      "url": "bonjour@exemple.fr",
      "type": "email",
      "format": "LIST",
      "size": "FULL",
      "visible": true,
      "archived": false,
      "position": 2,
      "status": "active",
      "image": null,
      "created_at": "2026-10-05T21:57:18+02:00"
    }
  ]
}

Leggere una pagina

GET/v1/pages/{id}

La pagina e i suoi link, nell'ordine di visualizzazione; i link archiviati vengono per ultimi. Ambito Lettura.

curl https://api.tinylink.fr/v1/pages/ma-page \
  -H "Authorization: Bearer tl_il_tuo_token"

Risposte possibili

{
  "id": "P6ac40109381964",
  "type": "page",
  "name": "Ma page",
  "description": "Tous mes liens au même endroit.",
  "slug": "ma-page",
  "url": "https://tnylnk.fr/ma-page",
  "status": "active",
  "password_protected": false,
  "restricted": false,
  "tags": [],
  "qr_code": null,
  "created_at": "2026-10-05T21:56:57+02:00",
  "edit_url": "https://app.tinylink.fr/page-edit?id=P6ac40109381964",
  "stats": {
    "metric": "views",
    "total": 340,
    "last_30_days": 85
  },
  "links": [
    {
      "id": "L6ac4011edb7c6",
      "title": "Mon site",
      "description": "",
      "url": "https://exemple.fr",
      "type": "url",
      "format": "LIST",
      "size": "FULL",
      "visible": true,
      "archived": false,
      "position": 1,
      "status": "active",
      "image": null,
      "created_at": "2026-10-05T21:57:18+02:00"
    },
    {
      "id": "L6ac4011ee9fab",
      "title": "Contact",
      "description": "",
      "url": "bonjour@exemple.fr",
      "type": "email",
      "format": "LIST",
      "size": "FULL",
      "visible": true,
      "archived": false,
      "position": 2,
      "status": "active",
      "image": null,
      "created_at": "2026-10-05T21:57:18+02:00"
    }
  ]
}

Modificare una pagina

PATCH/v1/pages/{id}

Invia solo i campi da cambiare: name, description, slug, password. null rimuove l'indirizzo personalizzato o la password. La risposta è la pagina aggiornata. Ambito Scrittura.

curl -X PATCH https://api.tinylink.fr/v1/pages/P6ac40109381964 \
  -H "Authorization: Bearer tl_il_tuo_token" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "Tous mes liens au même endroit.",
    "password": null
  }'

Risposte possibili

{
  "id": "P6ac40109381964",
  "type": "page",
  "name": "Ma page",
  "description": "Tous mes liens au même endroit.",
  "slug": "ma-page",
  "url": "https://tnylnk.fr/ma-page",
  "status": "active",
  "password_protected": false,
  "restricted": false,
  "tags": [],
  "qr_code": null,
  "created_at": "2026-10-05T21:56:57+02:00",
  "edit_url": "https://app.tinylink.fr/page-edit?id=P6ac40109381964",
  "stats": {
    "metric": "views",
    "total": 340,
    "last_30_days": 85
  },
  "links": [
    {
      "id": "L6ac4011edb7c6",
      "title": "Mon site",
      "description": "",
      "url": "https://exemple.fr",
      "type": "url",
      "format": "LIST",
      "size": "FULL",
      "visible": true,
      "archived": false,
      "position": 1,
      "status": "active",
      "image": null,
      "created_at": "2026-10-05T21:57:18+02:00"
    },
    {
      "id": "L6ac4011ee9fab",
      "title": "Contact",
      "description": "",
      "url": "bonjour@exemple.fr",
      "type": "email",
      "format": "LIST",
      "size": "FULL",
      "visible": true,
      "archived": false,
      "position": 2,
      "status": "active",
      "image": null,
      "created_at": "2026-10-05T21:57:18+02:00"
    }
  ]
}

Eliminare una pagina

DELETE/v1/pages/{id}

Elimina la pagina, i suoi link e le sue statistiche. Irreversibile. Ambito Eliminazione.

curl -X DELETE https://api.tinylink.fr/v1/pages/P6ac40109381964 \
  -H "Authorization: Bearer tl_il_tuo_token"

Risposte possibili

Senza contenuto

Duplicare una pagina

POST/v1/pages/{id}/duplicate

Crea una copia della pagina nello stesso spazio di lavoro: impostazioni di aspetto e stile seguito, logo e banner, tutti i link, titoli, componenti e blocchi di integrazione, nello stesso ordine, con visibilità, archiviazione e immagini (file propri della copia). Non vengono ripresi né l'indirizzo personalizzato, né la password, né i tag, né il codice QR. name (altrimenti lo stesso nome) e slug sono facoltativi. Si applica il limite di pagine del piano. Ambito Scrittura.

curl -X POST https://api.tinylink.fr/v1/pages/P6ad34a0e4fef09/duplicate \
  -H "Authorization: Bearer tl_il_tuo_token" \
  -H "Content-Type: application/json" \
  -d '{"name":"Ma page (copie)","slug":"ma-page-copie"}'

Risposte possibili

{
  "id": "P6ad34edcdd6ab6",
  "type": "page",
  "name": "Ma page (copie)",
  "description": "",
  "slug": "ma-page-copie",
  "url": "https://tnylnk.fr/ma-page-copie",
  "status": "active",
  "password_protected": false,
  "restricted": false,
  "tags": [],
  "qr_code": null,
  "created_at": "2026-10-17T12:33:00+02:00",
  "edit_url": "https://app.tinylink.fr/page-edit?id=P6ad34edcdd6ab6",
  "stats": {
    "metric": "views",
    "total": 0,
    "last_30_days": 0
  },
  "links": [
    {
      "id": "L6ad34edcdd9c3",
      "title": "Site",
      "description": "",
      "url": "https://exemple.fr",
      "type": "url",
      "format": "LIST",
      "size": "FULL",
      "visible": true,
      "archived": false,
      "position": 1,
      "status": "active",
      "image": "https://content.tinylink.fr/page-image/logo_6ad34edcdd8b7.webp",
      "created_at": "2026-10-17T12:33:00+02:00"
    },
    {
      "id": "L6ad34edcddab2",
      "title": "Section",
      "description": "",
      "url": null,
      "type": "title",
      "format": "TITLE",
      "size": "FULL",
      "visible": true,
      "archived": false,
      "position": 2,
      "status": "active",
      "image": null,
      "created_at": "2026-10-17T12:33:00+02:00"
    },
    {
      "id": "L6ad34edcddb85",
      "title": "Caché",
      "description": "",
      "url": "https://exemple.org",
      "type": "url",
      "format": "LIST",
      "size": "FULL",
      "visible": false,
      "archived": false,
      "position": 3,
      "status": "active",
      "image": null,
      "created_at": "2026-10-17T12:33:00+02:00"
    },
    {
      "id": "L6ad34edcddc64",
      "title": "Mes réseaux",
      "description": null,
      "url": null,
      "type": "component",
      "format": "COMPONENT",
      "size": "FULL",
      "visible": true,
      "archived": false,
      "position": 4,
      "status": "active",
      "image": null,
      "created_at": "2026-10-17T12:33:00+02:00",
      "component_id": "C6ad34ed4599305"
    }
  ]
}

Elencare i link di una pagina

GET/v1/pages/{id}/links

I link della pagina, nell'ordine di visualizzazione. type vale url, email, tel, title, component (un componente posizionato sulla pagina, con component_id) o integration (un blocco di integrazione, con integration); status vale active, pending_review o blocked. Ambito Lettura.

curl https://api.tinylink.fr/v1/pages/P6ac40109381964/links \
  -H "Authorization: Bearer tl_il_tuo_token"

Risposte possibili

{
  "data": [
    {
      "id": "L6ac4011edb7c6",
      "title": "Mon site",
      "description": "",
      "url": "https://exemple.fr",
      "type": "url",
      "format": "LIST",
      "size": "FULL",
      "visible": true,
      "archived": false,
      "position": 1,
      "status": "active",
      "image": null,
      "created_at": "2026-10-05T21:57:18+02:00"
    },
    {
      "id": "L6ac4011eeb074",
      "title": "Mes réseaux",
      "description": "",
      "url": null,
      "type": "title",
      "format": "TITLE",
      "size": "FULL",
      "visible": true,
      "archived": false,
      "position": 2,
      "status": "active",
      "image": null,
      "created_at": "2026-10-05T21:57:18+02:00"
    }
  ]
}

Aggiungere un link

POST/v1/pages/{id}/links

Aggiunge un link in fondo alla pagina, o più link con {"links": [ … ]} (100 al massimo): la risposta è allora {"data": [ … ]}. I limiti di link del tuo piano si applicano come nell'applicazione. Ambito Scrittura.

  • title — obbligatorio, tranne per il formato SOCIAL; 100 caratteri al massimo
  • url — un indirizzo web, un'e-mail o un telefono, con o senza mailto: / tel:; inutile per un TITLE
  • description — 1 000 caratteri al massimo
  • format — LIST (predefinito), BANNER, SQUARE, SOCIAL, oppure TITLE per un titolo di sezione
  • size — FULL (predefinito) o HALF, per LIST, BANNER e SQUARE
  • visible — false per aggiungerlo nascosto
  • position — posizione nella pagina, 1 = in alto
  • image — l'indirizzo pubblico di un'immagine o una data URI in base64, ritagliata in quadrato e in banner; crop.square e crop.banner ({"x", "y", "w", "h"}) scelgono le zone
  • integration_id, source… — per un blocco alimentato da un account collegato, vedi Integrazioni
curl -X POST https://api.tinylink.fr/v1/pages/P6ac40109381964/links \
  -H "Authorization: Bearer tl_il_tuo_token" \
  -H "Content-Type: application/json" \
  -d '{"title":"Mon site","url":"https://exemple.fr"}'

Risposte possibili

{
  "id": "L6ac4011edb7c6",
  "title": "Mon site",
  "description": "",
  "url": "https://exemple.fr",
  "type": "url",
  "format": "LIST",
  "size": "FULL",
  "visible": true,
  "archived": false,
  "position": 1,
  "status": "active",
  "image": null,
  "created_at": "2026-10-05T21:57:18+02:00"
}

Leggere un link

GET/v1/pages/{id}/links/{lien}

Un solo link della pagina, tramite il suo identificativo. Ambito Lettura.

curl https://api.tinylink.fr/v1/pages/P6ac40109381964/links/L6ac4011edb7c6 \
  -H "Authorization: Bearer tl_il_tuo_token"

Risposte possibili

{
  "id": "L6ac4011edb7c6",
  "title": "Mon site",
  "description": "",
  "url": "https://exemple.fr",
  "type": "url",
  "format": "LIST",
  "size": "FULL",
  "visible": true,
  "archived": false,
  "position": 1,
  "status": "active",
  "image": null,
  "created_at": "2026-10-05T21:57:18+02:00"
}

Modificare un link

PATCH/v1/pages/{id}/links/{lien}

Invia solo i campi da cambiare: title, description, url, format, size, visible (nascondere o mostrare), archived (archiviare o ripristinare) , position (spostare) e image (come all'aggiunta; null la toglie). Un componente può solo essere nascosto, archiviato o spostato; un blocco di integrazione ha i suoi campi, vedi Integrazioni. Ambito Scrittura.

curl -X PATCH https://api.tinylink.fr/v1/pages/P6ac40109381964/links/L6ac4011edb7c6 \
  -H "Authorization: Bearer tl_il_tuo_token" \
  -H "Content-Type: application/json" \
  -d '{"title":"Mon site web","position":2,"visible":false}'

Risposte possibili

{
  "id": "L6ac4011edb7c6",
  "title": "Mon site web",
  "description": "",
  "url": "https://exemple.fr",
  "type": "url",
  "format": "LIST",
  "size": "FULL",
  "visible": false,
  "archived": false,
  "position": 2,
  "status": "active",
  "image": null,
  "created_at": "2026-10-05T21:57:18+02:00"
}

Eliminare un link

DELETE/v1/pages/{id}/links/{lien}

Elimina il link, la sua immagine e le sue statistiche, poi rinumera quelli successivi. Ambito Eliminazione.

curl -X DELETE https://api.tinylink.fr/v1/pages/P6ac40109381964/links/L6ac4011edb7c6 \
  -H "Authorization: Bearer tl_il_tuo_token"

Risposte possibili

Senza contenuto

Modificare più link

PATCH/v1/pages/{id}/links

Cambia più link in una sola richiesta — per esempio il layout di un'intera serie: links elenca fino a 100 voci {"id": …} seguite dai campi da cambiare, come per un solo link. Tutto o niente: al primo errore non viene salvato nulla, e il campo errato viene indicato (links[1].url). Le immagini si inviano un link alla volta. La risposta è l'elenco dei link della pagina. Ambito Scrittura.

curl -X PATCH https://api.tinylink.fr/v1/pages/P6ad34a0e4fef09/links \
  -H "Authorization: Bearer tl_il_tuo_token" \
  -H "Content-Type: application/json" \
  -d '{
    "links": [
      {
        "id": "L6ad34a0e84122",
        "format": "BANNER",
        "size": "HALF"
      },
      {
        "id": "L6ad34a0e8467f",
        "format": "BANNER",
        "size": "HALF"
      }
    ]
  }'

Risposte possibili

{
  "data": [
    {
      "id": "L6ad34a0e849a2",
      "title": "Mes réseaux",
      "description": "",
      "url": null,
      "type": "title",
      "format": "TITLE",
      "size": "FULL",
      "visible": true,
      "archived": false,
      "position": 1,
      "status": "active",
      "image": null,
      "created_at": "2026-10-17T12:12:30+02:00"
    },
    {
      "id": "L6ad34a0e84122",
      "title": "Mon site",
      "description": "",
      "url": "https://exemple.fr",
      "type": "url",
      "format": "BANNER",
      "size": "HALF",
      "visible": true,
      "archived": false,
      "position": 2,
      "status": "active",
      "image": null,
      "created_at": "2026-10-17T12:12:30+02:00"
    },
    {
      "id": "L6ad34a0e8467f",
      "title": "Ma boutique",
      "description": "",
      "url": "https://exemple.fr/boutique",
      "type": "url",
      "format": "BANNER",
      "size": "HALF",
      "visible": true,
      "archived": false,
      "position": 3,
      "status": "active",
      "image": null,
      "created_at": "2026-10-17T12:12:30+02:00"
    }
  ]
}

Riordinare i link

PUT/v1/pages/{id}/links/order

ids dà il nuovo ordine: i link, i titoli e i componenti citati passano in cima, in quell'ordine; gli altri seguono nel loro ordine attuale. La risposta è l'elenco dei link della pagina. Ambito Scrittura.

curl -X PUT https://api.tinylink.fr/v1/pages/P6ad34a0e4fef09/links/order \
  -H "Authorization: Bearer tl_il_tuo_token" \
  -H "Content-Type: application/json" \
  -d '{"ids":["L6ad34a0e849a2","L6ad34a0e84122"]}'

Risposte possibili

{
  "data": [
    {
      "id": "L6ad34a0e849a2",
      "title": "Mes réseaux",
      "description": "",
      "url": null,
      "type": "title",
      "format": "TITLE",
      "size": "FULL",
      "visible": true,
      "archived": false,
      "position": 1,
      "status": "active",
      "image": null,
      "created_at": "2026-10-17T12:12:30+02:00"
    },
    {
      "id": "L6ad34a0e84122",
      "title": "Mon site",
      "description": "",
      "url": "https://exemple.fr",
      "type": "url",
      "format": "LIST",
      "size": "FULL",
      "visible": true,
      "archived": false,
      "position": 2,
      "status": "active",
      "image": null,
      "created_at": "2026-10-17T12:12:30+02:00"
    },
    {
      "id": "L6ad34a0e8467f",
      "title": "Ma boutique",
      "description": "",
      "url": "https://exemple.fr/boutique",
      "type": "url",
      "format": "LIST",
      "size": "FULL",
      "visible": true,
      "archived": false,
      "position": 3,
      "status": "active",
      "image": null,
      "created_at": "2026-10-17T12:12:30+02:00"
    }
  ]
}

Cambiare l'immagine di un link

PUT/v1/pages/{id}/links/{lien}/image

POST/v1/pages/{id}/links/{lien}/image

image: l'indirizzo pubblico di un'immagine o una data URI in base64; per inviare un file, POST in multipart/form-data con un campo image. JPEG, PNG o WebP, 5 MB al massimo. Vengono prodotti due formati: un quadrato (formati LIST, SQUARE) e un banner (BANNER), ritagliabili con crop.square e crop.banner. Un titolo o un componente non accetta immagini. Ambito Scrittura.

curl -X PUT https://api.tinylink.fr/v1/pages/P6ad34a0e4fef09/links/L6ad34a0e84122/image \
  -H "Authorization: Bearer tl_il_tuo_token" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://exemple.fr/visuel.jpg",
    "crop": {
      "square": {
        "x": 0,
        "y": 0,
        "w": 800,
        "h": 800
      }
    }
  }'

Risposte possibili

{
  "id": "L6ad34a0e84122",
  "title": "Mon site",
  "description": "",
  "url": "https://exemple.fr",
  "type": "url",
  "format": "LIST",
  "size": "FULL",
  "visible": true,
  "archived": false,
  "position": 1,
  "status": "active",
  "image": "https://content.tinylink.fr/page-image/logo_6ad34a0e8e7da.webp",
  "created_at": "2026-10-17T12:12:30+02:00"
}

Togliere l'immagine di un link

DELETE/v1/pages/{id}/links/{lien}/image

Elimina l'immagine del link; la risposta è il link. Nient'altro viene eliminato: basta l'ambito Scrittura.

curl -X DELETE https://api.tinylink.fr/v1/pages/P6ad34a0e4fef09/links/L6ad34a0e84122/image \
  -H "Authorization: Bearer tl_il_tuo_token"

Risposte possibili

{
  "id": "L6ad34a0e84122",
  "title": "Mon site",
  "description": "",
  "url": "https://exemple.fr",
  "type": "url",
  "format": "LIST",
  "size": "FULL",
  "visible": true,
  "archived": false,
  "position": 1,
  "status": "active",
  "image": null,
  "created_at": "2026-10-17T12:12:30+02:00"
}

Non trovi la tua risposta?

Scrivici dalla scheda Supporto del tuo spazio, rispondiamo entro 24 ore lavorative.

Contatta il supporto