Skip to content

Quickstart

Create an API key and make your first calls to the Sureshake API with curl.

By the end of this page you will have an API key, you will have read your own organizations with it, and you will have searched the public directory.

You need a Sureshake account (create one if you don’t have one), curl, and optionally jq to read the output.

  1. Create an API key

    1. Sign in and open Settings.
    2. Open the Security section.
    3. Under API Keys, select Create API Key.
    4. Enter a Key Name. Leave Permissions set to Read.
    5. Select Create Key, then copy the key.

    The key starts with sk_. Sureshake shows it once, so store it before you select Done.

  2. Put the key in your shell

    export SURESHAKE_API_KEY="sk_..."

    Keep it out of source control and out of browser code.

  3. Read your organizations

    curl -sS https://api.sureshake.com/v2/organizations/me \
      -H "X-API-Key: $SURESHAKE_API_KEY"

    A 200 response means your key works. data lists the organizations you are an active member of, and it is an empty array if you have none:

    {
      "data": [
        {
          "id": "org-acme-holdings",
          "name": "Acme Holdings",
          "slug": "acme-holdings",
          "status": "active",
          "createdAt": "2026-11-03T18:00:00.000Z",
          "updatedAt": "2026-11-03T18:00:00.000Z",
          "myRole": "owner",
          "activeMemberCount": 3,
          "pendingMemberCount": 0
        }
      ],
      "meta": { "total": 1, "limit": 100, "offset": 0, "hasMore": false }
    }

    See GET /v2/organizations/me for every field.

  4. Search the directory

    curl -sS "https://api.sureshake.com/v2/directory?query=acme&limit=5" \
      -H "X-API-Key: $SURESHAKE_API_KEY" \
      | jq '.data[] | {slug, name: .snapshot.identity.displayName}, .pagination'

    You get one object per published listing, then the paging details:

    { "slug": "acme-saas-inc-6b81a75d", "name": "Acme SaaS Inc." }
    { "nextCursor": "eyJzIjoi...", "hasMore": true, "limit": 5 }

    To get the next page, pass nextCursor back as cursor. See GET /v2/directory for the filters.

If a call fails

Response What it means What to do
401 with Invalid or expired API key The key is wrong, revoked or expired Check the value, or create a new key
401 with Authentication failed. This route does not accept API keys See which routes accept an API key
403 with API key scope 'read' is not permitted The route changes data and your key is read-only Create a key with Write permission
400 with FST_ERR_VALIDATION A parameter or the body is invalid The message lists the problem fields

Next

Type to search…

↑↓ navigate↵ selectEsc close