Skip to main content

Check-in feed

Goal: Render an activity feed from one filtered call.
Prep time: ~5 minutes

What you will use

  • GET /flynet/v1/check_ins

Code

curl -sS "https://api.staging.blackbird.xyz/flynet/v1/check_ins?restaurant={uuid}&page_size=25" \
  -H "X-API-Key: $API_KEY" \
  -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0 Safari/537.36"
const params = new URLSearchParams({
  restaurant: "{uuid}",
  page_size: "25",
});

const res = await fetch(
  `https://api.staging.blackbird.xyz/flynet/v1/check_ins?${params}`,
  {
    headers: {
      "X-API-Key": process.env.API_KEY!,
      "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0 Safari/537.36",
    },
  }
);

const data = await res.json();
const first = data.check_ins[0];
console.log(first?.location.restaurant.name, first?.created_at);
The feed is API-key authenticated (the key needs the read:checkins scope) and sorted newest first. Each row embeds location with restaurant and neighborhood, plus timestamps, so one call powers a complete feed row. Check-ins carry no member identity — render venue and time, not a name.
Tasting note - To show a member their own visit history, use /users/me/check_ins: the subject comes from the token, no UUID needed.
Tasting note - ended_at may be null for ongoing visits. Handle it explicitly in UI.

Alternative: narrow by time

To window the feed by restaurant, location, or time, combine filters on the same endpoint:
curl "https://api.staging.blackbird.xyz/flynet/v1/check_ins?restaurant={uuid}&created_after=2026-06-01T00:00:00Z&page_size=25" \
  -H "X-API-Key: $API_KEY" \
  -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0 Safari/537.36"
Tasting note - /check_ins filters are optional ([restaurant, location, created_after, created_before]) — there is no user filter; the feed is anonymized. A bare unfiltered list returns the full paginated set rather than a 400, so always page deliberately when you omit filters. See the reference for the full filter matrix.
Combinations AND together: ?restaurant={uuid}&created_after=2026-06-01T00:00:00Z returns only that restaurant’s check-ins since the cutoff. Next: First payment - accept FLY from a member.