Overview
Getting started
From zero to your first API call in a few minutes (plus the time we need to approve your access).
1. Request developer access#
The API is open to every Linework user, but access is reviewed by hand so that bots stay useful and spam stays out.
- Sign in to the web app and open web.linework.app → Settings → Developers.
- Fill in the request:
- Use case — what your integration does, in a few sentences (for example “publish the daily menu of my restaurant and reply to questions in chat”).
- Website — your site or the project page, if you have one.
- Bot name — the name of your app or bot, shown to us and in your key list.
- Send it. You will see the status (pending, approved or declined) in the same page.
The API works on your own account. If the bot should have its own identity (for example “Pizza Roma Bot”), create a separate Linework account for it, with a profile photo and a cover, and request access from that account.
2. Create an API key#
When access is approved, the Developers page lets you create API keys:
- Click Create key, give it a name (for example “store-sync production”).
- Select only the scopes the integration needs.
- Copy the key. It looks like
lwk_followed by 40 characters and is shown only once.
Store it in an environment variable or a secret manager, never in your source code:
export LINEWORK_API_KEY="lwk_your_key_here"
More about keys, limits and revocation in Authentication & API keys.
3. Make your first call#
GET /me returns the account the key belongs to. It is the quickest way to check that everything works.
curl -i https://api.linework.app/open/v1/me \
-H "Authorization: Bearer $LINEWORK_API_KEY"
const res = await fetch("https://api.linework.app/open/v1/me", {
headers: { Authorization: `Bearer ${process.env.LINEWORK_API_KEY}` },
});
if (!res.ok) throw new Error(JSON.stringify(await res.json()));
console.log(await res.json());
import os, requests
r = requests.get(
"https://api.linework.app/open/v1/me",
headers={"Authorization": f"Bearer {os.environ['LINEWORK_API_KEY']}"},
timeout=30,
)
r.raise_for_status()
print(r.json())
A successful response is a JSON object describing your profile. If you get 401 INVALID_API_KEY, check that the header is exactly Authorization: Bearer lwk_… and that the key has not been revoked. The exact response fields are listed in the API Reference.
4. Build something#
Post with media
Upload a photo and publish it.
Reply to comments
Answer your community.
Run a Bloop store
Products, stock, orders, shipping.
Support chat bot
Reply to customers in chat.
Before you go live#
- Use one key per integration, so you can revoke one without stopping the others.
- Respect the rate limits and daily quotas and handle
429with a retry. - Handle errors by their
code, not by the message text. - Read the API Terms of Use.