> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flynet.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Data model

> Core resources in the launch Flynet API.

Flynet exposes restaurants, locations, member context, check-ins,
and payment intents through stable resource shapes.

## Resources

| Resource        | `object` value   | Notes                                                                                                                                                                                                         |
| --------------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Restaurant      | `restaurant`     | Brand-level restaurant entity. Fetchable via `/restaurants`.                                                                                                                                                  |
| Location        | `location`       | Physical venue that belongs to a restaurant. Embeds restaurant + neighborhood.                                                                                                                                |
| Neighborhood    | `neighborhood`   | Geographic grouping. Only appears embedded inside a Location, not fetchable directly.                                                                                                                         |
| Check-in        | `check_in`       | Visit record linking a member to a location. Embeds the full location (with restaurant + neighborhood). No user data — partners cannot enumerate Blackbird's user base via `/check_ins`.                      |
| Member          | `user`           | The authenticated member's profile. Fetchable via `/users/me`.                                                                                                                                                |
| Member status   | `user_status`    | Member standing / tier context. Fetchable via `/users/me/status`.                                                                                                                                             |
| Wallet          | `user_wallet`    | Member wallet, either MEMBERSHIP or SPENDING. Auto-provisioned on first OAuth completion. Fetchable via `/users/me/wallets`.                                                                                  |
| Tag             | `user_tag`       | Member metadata. Lowercase `type` values; `industry` identifies restaurant employees. Fetchable via `/users/me/tags`.                                                                                         |
| Membership      | `membership`     | Member-to-restaurant membership record. Fetchable via `/users/me/memberships`.                                                                                                                                |
| PaymentIntent   | `payment_intent` | Payment from member to merchant in FLY. Fetchable via `/payment_intents`.                                                                                                                                     |
| Account Balance | (internal)       | FLY-denominated balance referenced by `payer_account_balance_id` / `payee_account_balance_id` on PaymentIntents. Not fetchable as a resource at launch; surfaces only as foreign-key fields on PaymentIntent. |

Member-context resources live under `/users/me/*`: the subject is resolved from your OAuth access token's `sub` claim, so no UUID appears in the path. Routes: `/users/me`, `/users/me/status`, `/users/me/wallets`, `/users/me/tags`, `/users/me/check_ins`, `/users/me/memberships`. Decode the `sub` claim yourself only if you need the member's UUID for your own state.

<Note>
  **Tasting note** - The published [`@flynetdev/core`](/concepts/typescript-client)
  SDK exposes these resources as typed methods: `FlynetDiscoveryClient` for
  restaurants and locations, `FlynetMemberClient` for the `/users/me/*`
  routes, check-ins, memberships, and Payment Intents.
</Note>

## Relationships

```mermaid theme={null}
erDiagram
  USER ||--o{ CHECK_IN : makes
  USER ||--o{ WALLET : has
  USER ||--o{ TAG : has
  USER ||--o| STATUS : has
  USER ||--o{ MEMBERSHIP : holds
  RESTAURANT ||--o{ LOCATION : has
  RESTAURANT ||--o{ MEMBERSHIP : grants
  LOCATION ||--o{ CHECK_IN : receives
  LOCATION }o--|| NEIGHBORHOOD : in
  PAYMENT_INTENT }o--|| ACCOUNT_BALANCE : payer
  PAYMENT_INTENT }o--|| ACCOUNT_BALANCE : payee
  USER ||--o{ ACCOUNT_BALANCE : owns
```

A typical member has two wallets (one `MEMBERSHIP`, one `SPENDING`), zero or more tags, zero or more check-ins, a status record, zero or more memberships, and account balances that fund Payment Intents.

## Restaurant assets

Restaurants include an `asset` object with image variants:

```json theme={null}
{
  "asset": {
    "preview_1x": "https://...",
    "web_2x": "https://...",
    "full_3x": "https://..."
  }
}
```

The entire `asset` object may be `null`. Individual variants may
also be `null`.

## Wallets

Wallets are created automatically on the member's first OAuth
completion. A member usually has:

* `MEMBERSHIP` - member status assets
* `SPENDING` - FLY available for transactions

## Tags

Tags attach structured metadata to a member. The current public tag
type is lowercase `industry`.

```json theme={null}
{
  "object": "user_tag",
  "type": "industry",
  "metadata": [
    { "key": "Employer", "value": ["FLYBAR"] }
  ]
}
```

## Member status

`/users/me/status` returns the authenticated member's standing.
If no active status exists for the member, the route returns
`404` with a `resource_not_found` body rather than an empty
object: branch on the status code, not on an empty payload.

## Memberships

`/users/me/memberships` returns the authenticated member's membership
records; each links the member to a restaurant. The collection is
paginated like every other list route. It accepts a `restaurant`
filter; an unrecognized filter param (such as `restaurant_id`) is
silently ignored and returns the unfiltered set.

## Reservations

Locations carry reservation-related fields describing whether and
how a venue takes bookings. These surface as fields on the Location
object returned by `/locations*`; see the
[API reference](/api-reference/introduction) for the per-field
shapes. There is no standalone reservation resource at launch.

## Money

Payment amounts use `{ value, currency }`, where `value` is a
stringified integer in FLY wei. See [Money + tokens](/concepts/money-and-tokens).
