Official SDKs
Official software development kits for popular programming languages. Get started quickly with type-safe, well-documented libraries.
🟨
JavaScript/TypeScript SDK
Official SDK for Node.js and browser environments
Installation
npm install @linkup/sdkQuick Start
import { LinkUp } from '@linkup/sdk'
const linkup = new LinkUp({
apiKey: process.env.LINKUP_API_KEY,
environment: 'production'
})
// Generate a strategy
const strategy = await linkup.strategies.create({
questionnaire: {
company_size: '50-200',
industry: 'SaaS',
target_market: 'SMB',
goals: ['increase_leads', 'improve_conversion']
},
preferences: {
timeline: '90_days',
budget_range: '10k-50k'
}
})
console.log(strategy.recommendations)Features
Full TypeScript support
Promise-based API
Automatic retries and rate limiting
Built-in error handling
Real-time webhook support
Browser and Node.js compatible
Advanced Examples
Real-world patterns for common use cases
Webhook Handling
import express from 'express'
import { LinkUp } from '@linkup/sdk'
const app = express()
const linkup = new LinkUp({ apiKey: process.env.LINKUP_API_KEY })
app.post('/webhooks/linkup', async (req, res) => {
const signature = req.headers['linkup-signature']
try {
const event = linkup.webhooks.verify(req.body, signature)
switch (event.type) {
case 'strategy.completed':
console.log('Strategy completed:', event.data)
break
case 'workflow.triggered':
console.log('Workflow triggered:', event.data)
break
}
res.status(200).send('OK')
} catch (error) {
console.error('Webhook verification failed:', error)
res.status(400).send('Invalid signature')
}
})
app.listen(3000)Pagination
// Automatic pagination with async iterators
for await (const integration of linkup.integrations.list()) {
console.log(integration.name)
}
// Manual pagination
let cursor = null
do {
const page = await linkup.integrations.list({
limit: 50,
cursor
})
page.data.forEach(integration => {
console.log(integration.name)
})
cursor = page.next_cursor
} while (cursor)