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

# Create number and JSON flags

> Ship numeric knobs and JSON payloads beside boolean and variant flags.

## Overview

Not every flag is on/off. Fieldkit caps outbound retries with `max-retries` and ships checkout UI config as `checkout-payload`.

## Number

```ts theme={null}
"max-retries": {
  type: "number",
  default: 3,
  description: "Max retries for outbound API calls",
},
```

```ts theme={null}
const retries = shipd.getNumber("max-retries");
await fetchInvoice(id, { retries });
```

```tsx theme={null}
const retries = useNumber("max-retries");
```

## JSON

```ts theme={null}
"checkout-payload": {
  type: "json",
  default: { mode: "strict", showPromo: true },
  description: "Checkout UI payload",
},
```

```ts theme={null}
const ui = shipd.getJson("checkout-payload");
// typed as the default object shape from FlagDefinitions
```

```tsx theme={null}
const ui = useJson("checkout-payload");
```

Push both with the rest of `shipd.config.ts`:

```bash theme={null}
shipd push --project web-app --env production --yes
```
