Skip to content

Test Your new Connection

Diving Deep?

This page is designed for AI Agents & users developing code directly. See Getting Started and Platform Guides

Testing is a crucial part of building any software. Shipp is no exception, so make sure your feed is doing what you intend as early as possible!


Call the connection

use the connection_id of the feed you want to use. Our example here is 01KFXTX1WDQ68A1GS77T1XJ5YB You have 3 optional fields to reduce cost and total time to retrieve events. Once you've pulled the initial data, set since_event_id to only new events.

  • since (string, ISO 8601 / RFC 3339, optional): A reference time to pull results starting from. Default: 48 hours ago
  • limit (int, optional): a limit of events to return. Default: 100
  • since_event_id (ULID, optional): id of the last received event

Get more info about creating / using connections

curl https://api.shipp.ai/api/v1/connections/01KFXTX1WDQ68A1GS77T1XJ5YB?api_key=<Your API Key> -d '{
  "since": "2026-01-27T16:48:41-05:00",
  "limit": 100
}'
const apiKey = "YOUR_API_KEY_HERE";
const url = `https://api.shipp.ai/api/v1/connections/01KFXTX1WDQ68A1GS77T1XJ5YB?api_key=${apiKey}`;

const response = await fetch(url, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    since: "2026-01-27T16:48:41-05:00",
    limit: 100
  })
});

const result = await response.json();
import requests

url = "https://api.shipp.ai/api/v1/connections/01KFXTX1WDQ68A1GS77T1XJ5YB"
api_key = "YOUR_API_KEY_HERE"

params = {
    "api_key": api_key
}

payload = {
    "since": "2026-01-27T16:48:41-05:00",
    "limit": 100
}

response = requests.post(url, json=payload, params=params)

200 Response Code, should return something like

{
  "connection_id": "01KFXTX1WDQ68A1GS77T1XJ5YB",
  "data": [
    {
      "id": "01KGE0VFBBEX367CT75MPVW1D9",
      "game_id": "01KFXTXKW5NDCMF58FKWJHCFCB",
      "sport": 1,
      "home_name": "Team A",
      "away_name": "Team B",
      "desc": "Some event description",
      "game_clock": "12:34",
      "game_period": 2,
      "home_points": 54,
      "away_points": 51,
      "wall_clock_start": "2026-01-28T12:34:56Z"
    }
  ]
}

Note

  • The data array contains rows of event data. Each row is a JSON object with fields that may vary based on what the feed’s filter retrieves and what data is available.
  • Many fields are omitted if they’re not present or not requested by the underlying filter logic.
  • Go deeper when you're ready

Save the ID

saving the id is crucial for managing spend and eliminating duplicate data. You'll pass this ID next time you call this connection


Editing Connections

Shipp will be adding support for editing connections soon. For now simply create a new feed.

Enable your App

After testing, add the new connection directly to your app. Users should call your backend endpoint, which forwards requests to shipp with an API Key.

Many apps will display future sport games with the API, or create custom connections ad-hoc to specific games to use when live.

To get the future schedule

curl https://api.shipp.ai/api/v1/sports/nba?api_key=<Your API Key>
const apiKey = "YOUR_API_KEY_HERE";
const url = `https://api.shipp.ai/api/v1/sports/nba?api_key=${apiKey}`;

const response = await fetch(url, {
  method: 'GET',
  headers: {
    'Content-Type': 'application/json'
  },
});

const result = await response.json();
import requests

url = "https://api.shipp.ai/api/v1/sports/nba"
api_key = "YOUR_API_KEY_HERE"

params = {
    "api_key": api_key
}

response = requests.get(url, params=params)
{
  "schedule": [
    {
      "game_id": "01KG974NP72YXW37WT41EG7388",
      "scheduled": "2026-02-02T02:00:00Z",
      "home": "Portland Trail Blazers",
      "away": "Cleveland Cavaliers"
    },
    {
      "game_id": "01KG974NJJ1H0QTEGRB31TKEVX",
      "scheduled": "2026-02-02T02:00:00Z",
      "home": "San Antonio Spurs",
      "away": "Orlando Magic"
    },
  ]
}