Skip to content
Developers

Search

Search accounts, events, courses, content, quests and jobs with the same ranking as Hive3 search.

Use search to build a lookup box, resolve an @handle to an account ID before calling another endpoint, or find events, courses, content, quests and jobs by keyword. Results use the same ranking as search in the Hive3 app, evaluated for the account that owns the API key. Visibility is stricter than in the app: public and paid-preview (protected) items are listed for everyone, but another account's members-only and private items appear only when the key has communities:read and its account allowlist, if it has one, includes that account. Your own items always appear.

Search needs the resources:read scope (scopes); add communities:read so that members-only and private items of other accounts can appear when the key owner may see them. There is no ?account= targeting: the key owner is always the viewer. API access needs Honey Bee or above; see the developer overview.

The API calls an account that others join a community. In search results, accounts are the items with "type": "account".

#Search accounts and resources

#Result shapes

Every item has a type. Account items and resource items carry different fields.

FieldAccount itemsResource items
typeaccountevent, course, content, quest or job
idAccount IDResource ID
handle, name, avatarUrlThe accountIn owner, the account that publishes the item
titleNot presentResource title
descriptionShort descriptionText excerpt
imageUrl, tagsNot presentCover image URL or null; tag names
visibilityNot presentEffective visibility: public, protected, members_only or private. It combines the item's own setting with its account's access type, so every item of a private account reads as members_only or private.
accessTypeopen, private, open-subscription or private-subscriptionNot present
memberCount, isMemberMembers of the account; whether the key owner belongs to itNot present

handle and avatarUrl can be null. Use id with the endpoints in Events, courses, content, quests, jobs and Communities and members to read or act on an item.

#Page through results

page.nextCursor is an opaque string. It looks like a number today, but do not parse or compute it: pass it back unchanged as cursor and stop when page.hasMore is false. A cursor the API does not recognize starts again from the first result. See pagination.

The app ranks at most 100 matches per search, so paging ends after those. A type=all search splits that window into 50 accounts and 50 resources.

js
let cursor;
do {
  const params = new URLSearchParams({ q: "design", limit: "50" });
  if (cursor) params.set("cursor", cursor);
  const res = await fetch(`https://app.hive3.tech/api/v1/search?${params}`, {
    headers: { Authorization: `Bearer ${process.env.HIVE_API_KEY}` },
  });
  const { data, page } = await res.json();
  for (const item of data) console.log(item.type, item.id);
  cursor = page.hasMore ? page.nextCursor : undefined;
} while (cursor);