Auto-Fill Integration Guide

Generate ProphetX deep links that prefill an order ticket using CFTC market-data terminology and the required legacy deep-link parameters.

ProphetX Auto-Fill Integration Guide

Generate ProphetX deep links that prefill a user’s order ticket in the mobile app or website.

Overview

This integration lets you generate URIs and URLs that automatically populate the ProphetX order ticket when a user clicks them. Use the CFTC market-data response fields—such as strike_id and price—in your integration. The deep-link transport contract still uses literal legacy keys such as addtobetslip, line_id, and odds; preserve those keys only when constructing the URI or URL.

Authentication

Authenticate all API requests with your ProphetX API credentials and partner ID. Contact ProphetX support if you do not have them yet.

Integration Steps

API Environments

  • Sandbox: API_HOST: https://api.sandbox.prophetx.dev
  • Production: API_HOST: https://api.prophetx.co

1. Fetch Available Tournaments

Make a GET request to retrieve the list of available tournaments.

Endpoint:

GET {{API_HOST}}/affiliate/get_tournaments

Example Response:

{
  "data": {
    "tournaments": [
      {
        "category": {
          "countryCode": "N/A",
          "name": "N/A"
        },
        "id": 2568,
        "name": "French Open (M)",
        "sport": {
          "id": 5,
          "name": "Tennis"
        },
        "updated_at": 1734425801889462000
      },
      {
        "category": {
          "countryCode": "N/A",
          "name": "N/A"
        },
        "id": 2739,
        "name": "ATP Indian Wells",
        "sport": {
          "id": 5,
          "name": "Tennis"
        },
        "updated_at": 1735116943350715000
      },
      {
        "category": {
          "countryCode": "N/A",
          "name": "N/A"
        },
        "id": 4221,
        "name": "WTA Doha",
        "sport": {
          "id": 5,
          "name": "Tennis"
        },
        "updated_at": 1735116943385637000
      }
    ]
  }
}

2. Fetch Available Events

Make a GET request to retrieve the list of available events. The response field names still use the existing sport_events terminology. You can find the affiliate API calls here.

Endpoint:

GET {{API_HOST}}/affiliate/get_sport_events?tournament_id={tournament_id}

Example Response:

{
  "data": {
    "sport_events": [
      {
        "competitors": [
          {
            "abbreviation": "DET",
            "display_name": "Detroit Lions",
            "id": 11,
            "name": "Detroit Lions",
            "side": "home"
          },
          {
            "abbreviation": "MIN",
            "display_name": "Minnesota Vikings",
            "id": 20,
            "name": "Minnesota Vikings",
            "side": "away"
          }
        ],
        "display_name": "Minnesota Vikings at Detroit Lions",
        "event_id": 18925,
        "live_disabled": false,
        "name": "Minnesota Vikings at Detroit Lions",
        "scheduled": "2025-01-06T01:20:00Z",
        "sport_name": "American Football",
        "status": "live",
        "tournament_id": 31,
        "tournament_name": "NFL",
        "updated_at": 1736126653111674000
      }
    ]
  }
}

3. Fetch Market Data

Use the event_id from the previous step to retrieve detailed market data for the selected event.

Endpoint:

GET {{API_HOST}}/v3/affiliate/get_markets?event_id={event_id}
X-CFTC-Terminology: true

Send X-CFTC-Terminology: true to receive CFTC field names in the market response.

Example Response:

{
  "data": {
    "event_id": 18925,
    "markets": [
      {
        "category_name": "Game Lines",
        "display_name": "Moneyline",
        "id": 219,
        "name": "Moneyline",
        "selections": [
          {
            "competitor_id": 11,
            "display_name": "Detroit Lions -470",
            "display_price": "-470",
            "strike": 0,
            "strike_id": "90de769f4f4977a04446ed203e957351",
            "name": "Detroit Lions",
            "price": -470,
            "outcome_id": 4,
            "quantity": 100,
            "updated_at": 1736126912002271000,
            "value": 470
          },
          {
            "competitor_id": 20,
            "display_name": "Minnesota Vikings -136",
            "display_price": "-136",
            "strike": 0,
            "strike_id": "7d75b0c55f5578219f534413d0bd872b",
            "name": "Minnesota Vikings",
            "price": -136,
            "outcome_id": 5,
            "quantity": 100,
            "updated_at": 1736127082575143000,
            "value": 71.06
          }
        ],
        "sub_type": "moneyline",
        "type": "moneyline"
      },
      {
        "category_name": "Game Lines",
        "display_name": "Spread",
        "id": 223,
        "strike": -5.5,
        "name": "Fixed home -5.5",
        "selections": [
          {
            "competitor_id": 11,
            "display_strike": "-5.5",
            "display_name": "Detroit Lions -5.5",
            "display_price": "-112",
            "strike": -5.5,
            "strike_id": "b288cdeffc0f3ba7e384009a3502543f",
            "name": "Detroit Lions -5.5",
            "price": -112,
            "outcome_id": 1714,
            "quantity": 200,
            "updated_at": 1736127295209374000,
            "value": 112
          },
          {
            "competitor_id": 20,
            "display_strike": "+5.5",
            "display_name": "Minnesota Vikings +5.5",
            "display_price": "-112",
            "strike": 5.5,
            "strike_id": "52882b69700724c6332375283b6e7f2a",
            "name": "Minnesota Vikings +5.5",
            "price": -112,
            "outcome_id": 1715,
            "quantity": 100,
            "updated_at": 1736127190680127000,
            "value": 12
          }
        ],
        "sub_type": "spread",
        "type": "spread"
      }
    ]
  }
}

The response includes the strike_id values you need to identify the selected strike. Map that value to the literal legacy line_id deep-link parameter when you construct an auto-fill link.

4. Generate Auto-Fill URI (Mobile App)

Note: This URI works only if the ProphetX app is already installed.

After the user selects a market option, generate a URI using the selected strike_id value in the literal legacy line_id parameter.

URI Format:

prophetx://addtobetslip?line_id={line_id}&line_ids={line_ids}&partner_id={partner_id}&odds={odds}

5. Generate Auto-Fill OneLink (Mobile App)

Note: OneLink supports both cases—whether the app is installed or not. If the user hasn't installed the app, OneLink redirects them to the App Store or Google Play to download it.

After the user selects a market option, generate a URL using the selected strike_id value in the literal legacy line_id parameter.

URL Format:

https://prophetx.onelink.me/E5Yi/autofill?deep_link_value=addtobetslip&deep_link_sub1={partner_id}&deep_link_sub2={line_id}&deep_link_sub3={odds}

6. Generate Auto-Fill URL (Website)

After the user selects a market option, generate a URL with the line_id from the selected market.

URL Format:

https://www.prophetx.co/?action=addtobetslip&line_id={line_id}&line_ids={line_ids}&partner_id={partner_id}&odds={odds}

Examples

OneLink:

https://prophetx.onelink.me/E5Yi/autofill?deep_link_value=addtobetslip&deep_link_sub1=ProphetX&deep_link_sub2=7203332a11f8f1bea399fc063c67ca0d&deep_link_sub3=101
https://prophetx.onelink.me/E5Yi/autofill?deep_link_value=addtobetslip&deep_link_sub1=ProphetX&deep_link_sub2=7203332a11f8f1bea399fc063c67ca0d,308a315777a0a3d56f2a325ea6b4941b&deep_link_sub3=101

URI Schema:

prophetx://addtobetslip?line_id=0a5bc0bf30bf1a2a9dd324c77bb687a8&partner_id=ProphetX&odds=102
prophetx://addtobetslip?line_ids=7203332a11f8f1bea399fc063c67ca0d,308a315777a0a3d56f2a325ea6b4941b&partner_id=ProphetX&odds=102

Best Practices

  • Authenticate every API request.
  • Record the strike_id for each strike you want to support in the auto-fill flow, then map it to the literal legacy line_id parameter when you build a deep link.
  • Test every link format in the sandbox environment before moving to production.
  • Verify the mobile-app flow separately from the website flow.

Troubleshooting

Common issues and solutions:

  • Issue: Authentication errors.

    • Solution: Verify your API credentials and partner ID.
  • Issue: URI not working.

    • Solution: Ensure the ProphetX app is installed on the user’s device and confirm the URI format includes the expected parameters.
  • Issue: OneLink does not open the expected screen.

    • Solution: Confirm that deep_link_value, deep_link_sub1, deep_link_sub2, and deep_link_sub3 are populated correctly.
  • Issue: The website link does not prefill the expected strike.

    • Solution: Confirm that the strike_id values come from the latest market response and are mapped to the literal legacy line_id or line_ids link parameters. Confirm that the link also includes the correct partner_id and odds values.

Did this page help you?