API Setup
Trigger a release with a single POST request. Use it as a post-deploy step in CI, or call it any time for a general product demo. Works with any CI provider, hosting platform, or custom script.
Two release modes
- Product demo - Send an empty body. LaunchStation analyzes your site and generates a general product walkthrough.
- Latest changes - Include
pullRequests. LaunchStation fetches the specified PRs and highlights what changed.
Prerequisites
Before configuring your post-deploy step, you need an API key to authenticate requests.
- Open your project in the LaunchStation dashboard and go to Settings.
- In the API Keys section, click New Key and give it a name (e.g. "Production").
- Copy the key immediately - it won't be shown again.
- Store the key as a secret/environment variable in your deploy platform (instructions for each provider below).
Generic (curl)
The simplest integration - a single curl command you can add anywhere. Replace YOUR_API_KEY with your key.
# Product demo - no commit info needed
curl -X POST https://launchstation.dev/api/webhooks/deploy \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'To highlight specific changes, include the pull request numbers:
# Latest changes from specific PRs
curl -X POST https://launchstation.dev/api/webhooks/deploy \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"pullRequests": [42, 43],
"instructions": "Focus on the new search feature"
}'Request Body
| Field | Type | Description |
|---|---|---|
pullRequests | number[] (optional) | Array of pull request numbers to include in the release. LaunchStation fetches each PR and highlights the combined changes. Omit for a general product demo. |
deploymentUrl | string (optional) | Override the project's base URL for this deploy (e.g. preview URL). |
instructions | string (optional) | Per-release script instructions (max 2,000 characters). Appended to project-level instructions. Requires Indie plan or above. |
GitHub Actions
Add this step to your existing deploy workflow (e.g. .github/workflows/deploy.yml). Place it after your deploy step so your site is live when LaunchStation records it. Store your API key as a repository secret named LAUNCHSTATION_API_KEY.
# Add this step to your deploy workflow
# Place it AFTER your deploy step so the site is live when recorded
# pullRequests is optional - omit it to generate a general product demo
- name: Notify LaunchStation
if: success()
run: |
curl -X POST https://launchstation.dev/api/webhooks/deploy \
-H "Authorization: Bearer ${{ secrets.LAUNCHSTATION_API_KEY }}" \
-H "Content-Type: application/json" \
-d '{
"pullRequests": [${{ github.event.pull_request.number }}]
}'GitLab CI
Add this job to your .gitlab-ci.yml. Place it after your deploy stage so your site is live when LaunchStation records it. Store the API key as a CI/CD variable named LAUNCHSTATION_API_KEY.
# Add to your .gitlab-ci.yml
notify-launchstation:
stage: deploy
script:
- |
curl -X POST https://launchstation.dev/api/webhooks/deploy \
-H "Authorization: Bearer $LAUNCHSTATION_API_KEY" \
-H "Content-Type: application/json" \
-d '{}'
only:
- mainNetlify
Create a local Build Plugin with an onSuccess hook. This runs after a successful deploy. Store the API key as an environment variable named LAUNCHSTATION_API_KEY in your Netlify site settings.
// netlify/plugins/launchstation/index.js
module.exports = {
onSuccess: async () => {
const res = await fetch("https://launchstation.dev/api/webhooks/deploy", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.LAUNCHSTATION_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({}),
});
if (!res.ok) {
console.error("LaunchStation notify failed:", await res.text());
}
},
};Then register the plugin in your netlify.toml:
[[plugins]] package = "./netlify/plugins/launchstation"
Customizing your releasesIndie
Add Script Instructions in your project settings to control how LaunchStation writes your scripts. Instructions are applied automatically on each release generation.
Use them to set the tone, target audience, focus areas, or specific talking points. For example:
• Friendly and concise tone, speak to developers • Always demo the new dashboard charts • Highlight the CLI workflow over the web UI • Mention that setup takes under 2 minutes • End with "Star us on GitHub" instead of a generic CTA
How it works
- Project-level instructions (in Settings) set the default tone and audience for all releases.
- Per-release instructions (API body or dashboard) are appended to project-level instructions for that specific release.
- If no instructions are set, LaunchStation generates the release with its default style - no action needed.
- Instructions are limited to 2,000 characters each.
Generating without PRs
The pullRequests field is optional. When omitted, LaunchStation generates a general product demo without PR-specific context.
- To generate a release without PR context, omit
pullRequestsfrom the request body, or use the dashboard's Generate Release button. - You can also pass per-release
instructionsto guide the script without linking to specific PRs.