# Launch tracker card

> Canonical HTML: https://screenrig.ai/docs/cards/launch-tracker/

The next rocket launch with a live countdown to liftoff, its status, pad and mission events, and the launches after it.

Category: Public information. Tags: Countdowns and timers, Weather and environment.

## Previews

![Launch tracker](/cards/launch-tracker/v1/screenshots/canvas-bloom.webp?sha=78bf8451057b5a96631eff7cce8441e0fa34d04a4941b3c4e5da70dcc46808bc)

Canvas

![Launch tracker](/cards/launch-tracker/v1/screenshots/corner-bloom.webp?sha=9d2fc4b37a90f0d60cc0ee8b710c2873c1ed236e55b0c60c67aca15ba52804b1)

Corner

![Launch tracker](/cards/launch-tracker/v1/screenshots/chip-bloom.webp?sha=2e8a37b9018ec37825a5f663a936130ab2799019b843406f3e294b1354725ecb)

Chip

## Views and forms

Views: canvas, corner, chip. Canvas forms: landscape, portrait, square, strip.

[Card views, themes and publishing](/docs/cards/). [Browse the gallery](/apps/#cards).

## Data and privacy

Feed: `screenrig.launches/v1`.

Feed documents carry source attribution. The Player supplies the feed to the card.

## Properties

For theme, background, accent and position, see [Common properties](/docs/cards/#common-properties).

Set static properties in `params`. Bind `data` to a project card data key for live values; that document holds only dynamic properties. Without a data key, put the complete configuration in `params`. Nested rows describe the contents of their parent property.

### Static properties

| Name | Type | Default | Values and limits | Description |
| --- | --- | --- | --- | --- |
| `title` | string | `"Launches"` | maxLength: `40` |  |
| `count` | integer | `5` | minimum: `2`; maximum: `8` | Launches in the upcoming list. |
| `staleMinutes` | integer | `180` | minimum: `5`; maximum: `1440` |  |
| `hour12` | boolean | `false` |  |  |

### Dynamic properties

| Name | Type | Default | Values and limits | Description |
| --- | --- | --- | --- | --- |
| `launches` | array | `[]` | minItems: `0`; maxItems: `30` | Upcoming and recent launches. A feed (screenrig.launches/v1) wins when present; the data store supplies the same rows otherwise. |
| `launches[].id` | string |  | maxLength: `40` |  |
| `launches[].name` | string |  | minLength: `1`; maxLength: `80`; Required | The mission: Starlink Group 12-4. |
| `launches[].provider` | string |  | maxLength: `40` | SpaceX, Rocket Lab, ULA. |
| `launches[].vehicle` | string |  | maxLength: `40` | Falcon 9 Block 5. |
| `launches[].pad` | string |  | maxLength: `60` | SLC-40, Cape Canaveral, FL. |
| `launches[].net` | string |  | maxLength: `32`; Required | No earlier than, ISO 8601. |
| `launches[].precision` | string | `"second"` | `"second"`, `"minute"`, `"hour"`, `"day"`, `"month"` | How exact net is. A day or month shows a date and no countdown. |
| `launches[].status` | string |  | maxLength: `20` | go, tbc, tbd, hold, scrubbed, in-flight, success, partial or failure. |
| `launches[].windowEnd` | string |  | maxLength: `32` | When the launch window closes, ISO 8601. |
| `launches[].orbit` | string |  | maxLength: `40` |  |
| `launches[].events` | array |  | maxItems: `20` | Mission events by time from liftoff. |
| `launches[].events[].t` | number |  | Required | Seconds from liftoff; negative before. |
| `launches[].events[].name` | string |  | minLength: `1`; maxLength: `40`; Required |  |
| `updated` | string | `""` | maxLength: `32` | When the list was fetched, ISO 8601 (data store only; a feed carries fetchedAt). |

## Canvas example

Add this item to a playlist page’s `primitives`. [Publish the playlist and assign a screen](/docs/cards/#publish-a-card-canvas).

```json
{
  "id": "launch-tracker",
  "primitive": "card",
  "card": "launch-tracker",
  "major": 1,
  "params": {
    "theme": "neomustard"
  },
  "rect": {
    "x": 0,
    "y": 0,
    "width": 1920,
    "height": 1080
  },
  "layer": 0,
  "content_fit": "fill",
  "data": "launch-tracker-main"
}
```

## Write live data

Create this document before showing the card, then replace it to update the screen without republishing. Use the same project as the playlist. Supply your API authorization through the environment; see [API authentication](/docs/authentication/).

```console
curl --request PUT "https://api.screenrig.ai/api/card-data/launch-tracker-main" \
  --header "Authorization: Bearer $SCREENRIG_TOKEN" \
  --header "ScreenRig-Project: $SCREENRIG_PROJECT" \
  --header "Content-Type: application/json" \
  --data '{"document":{"launches":[],"updated":""}}'
```
