Skip to content

API introduction

The REST API gives your own code everything the assistant can do, plus account management, approvals and webhooks. It’s the same engine underneath: every write is paced, budgeted, approved when needed and kept inside working hours.

Base URL https://api.linnia.ai
Auth Authorization: Bearer lin_… (Authentication)
Format JSON in and out. Successful responses have "ok": true; errors have "ok": false and an error object.
Spec OpenAPI 3.1 at /openapi.json, browsable in the API reference.
  1. Check your key

    Terminal window
    curl https://api.linnia.ai/v1/me -H "Authorization: Bearer $LINNIA_KEY"
  2. List accounts, with status, health, working hours and budgets left today:

    Terminal window
    curl https://api.linnia.ai/v1/accounts -H "Authorization: Bearer $LINNIA_KEY"
  3. Send a connection request. Commands are POST /v1/accounts/{id}/{command} with the command’s input as the body. You get a job back at once (202):

    Terminal window
    curl -X POST https://api.linnia.ai/v1/accounts/$ACCOUNT/connect \
    -H "Authorization: Bearer $LINNIA_KEY" \
    -H "Content-Type: application/json" \
    -H "Idempotency-Key: crm-lead-88412-connect" \
    -d '{"person":"https://www.linkedin.com/in/jana-novak","note":"Hi Jana, enjoyed your post on RevOps hiring."}'
  4. Wait for the outcome. Long-poll the job for up to 60 seconds, or get a job.completed webhook:

    Terminal window
    curl "https://api.linnia.ai/v1/jobs/$JOB?wait=60" -H "Authorization: Bearer $LINNIA_KEY"
Read Write
get_profile, get_company, search_people, search_companies, get_posts, get_post, list_chats, get_conversation, list_invites, profile_viewers, ssi connect, withdraw_invite, send_message, accept_invite, decline_invite, endorse, save_lead, react, comment, create_post

Each is also available as POST /v1/jobs with { "account", "command", "input" }, and they can be chained in one job with workflows.