openapi: 3.1.0
info:
title: Spindl Server-to-Server Events Short Links API
version: v1
description: Spindl's Server-to-Server API provides access to campaign and attribution management, short (redirect) links, server-side custom event ingestion, and daily data exports for Web3 growth analytics and onchain attribution. This OpenAPI description was generated by the API Evangelist enrichment pipeline from Spindl's published API reference documentation; endpoints, methods, parameters, and example payloads are transcribed from docs.spindl.xyz.
contact:
name: Spindl
email: contact@spindl.xyz
url: https://docs.spindl.xyz/spindl/techncial/api.md
license:
name: Proprietary
servers:
- url: https://api.spindl.xyz/v1
description: Spindl management API (short links, attribution management)
security:
- ApiKeyAuth: []
tags:
- name: Short Links
description: Redirect links mapping a Spindl link to a destination URL.
paths:
/links:
get:
operationId: listLinks
summary: Get all links for your organization
description: Returns all short (redirect) links for your organization, sorted by the time they were created, descending.
tags:
- Short Links
security:
- ApiKeyAuth: []
responses:
'200':
description: A list of short links.
content:
application/json:
schema:
type: object
properties:
links:
type: array
items:
$ref: '#/components/schemas/Link'
'401':
description: Missing or invalid API key.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
operationId: createLink
summary: Create a link
description: Create a new short link with Spindl tracking.
tags:
- Short Links
security:
- ApiKeyAuth: []
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- name
- url
properties:
name:
type: string
description: The internal name of the link. Names need not be unique; descriptive names are recommended (e.g. "Winter Campaign - Twitter Post 1").
url:
type: string
format: uri
description: The URL to redirect to (typically where your app lives).
example:
name: Winter Campaign - Twitter Post 1
url: https://demo.spindl.xyz/
responses:
'200':
description: The created short link.
content:
application/json:
schema:
type: object
properties:
link:
$ref: '#/components/schemas/Link'
'400':
description: Incorrect or incomplete request (e.g. a required parameter was omitted).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
Link:
type: object
properties:
id:
type: string
format: uuid
example: dfec5988-5108-465c-be87-ce42039f572e
name:
type: string
example: Spindl Campaign - 2022 - Twitter
link:
type: string
format: uri
example: https://spindl.link/abcd
redirectUrl:
type: string
format: uri
example: https://demo.spindl.xyz/
createdAt:
type: string
format: date-time
totalVisits:
type: integer
latestVisit:
type:
- string
- 'null'
format: date-time
Error:
type: object
properties:
statusCode:
type: integer
example: 404
message:
type: string
example: link not found
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key
description: Server-to-Server API key generated on the Settings page in the Spindl app (https://app.spindl.xyz/settings). Distinct from the client-side SDK key.
x-generated: '2026-07-21'
x-method: generated
x-source: https://docs.spindl.xyz/spindl/techncial/api.md