Website widgets
Design once. Publish on WordPress.
Style a football match centre in your account and add it directly to WordPress pages using separate shortcodes. These widgets render real saved football data as HTML on your website. They do not use iframes. The match-centre widget is separate from the ball tracker SDK.
Growth or Pro access and one website
Website widget installation is included with an active Growth plan (€99/month) or Pro plan (€249/month), at no extra widget fee. Starter does not include it. Any signed-in account can design, save and preview without activating installation. Read the Widgets information page or try the free public widget demo.
Each account can register one HTTPS WordPress website and hold one active widget key. Enter the exact public WordPress home URL, including any installation subdirectory, for example https://your-site.com or https://your-site.com/sports. HTTP, credentials, custom ports, queries and fragments are not accepted. A subdomain or www hostname is a different address. Once registered, the website cannot be changed in the editor; contact support@footballapi.net for a website change.
Design, preview and save
Open Dashboard → Widgets. Create a named design, choose its default view and table or cards layout, then set colours, font, border colour and corner radius. Choose which supported competitions to show; leaving the competition filter empty includes all widget-supported leagues. Toggle the header, calendar, team crests and match-winner odds.
Bookmaker links are optional HTTPS destinations that you supply. Match the bookmaker name to the name in the odds table. Links are marked sponsored and open separately. No affiliate account or commercial agreement is created for you. Do not enter secret keys in link URLs.
The preview reads saved data, not invented matches. Desktop, tablet and phone preview widths help you check your design. Controls inside the editor preview are intentionally inactive; use the editor’s default-view controls to see another feed. Save to get a persistent design ID. You can keep up to 20 designs on the same registered website. Changes to a saved design update that ID; creating a new design produces a different ID.
Install and verify the WordPress plugin
- Use WordPress 6.0 or newer with PHP 7.4 or newer and a publicly reachable HTTPS home URL.
- Activate Growth or Pro, then register your website in the Install step. Check the address before confirming: it is locked after registration.
- Generate your widget API key. Copy it immediately into a secure location; it is shown only once.
- Download footballapi-widgets.zip. In WordPress choose Plugins → Add New → Upload Plugin, select the ZIP, install and activate it.
- Open WordPress Settings → FootballAPI Widgets. Paste your widget key and press Save key.
- Press Verify website. FootballAPI checks that the registered WordPress site can prove possession of that key through the plugin’s public verification endpoint.
- Copy a shortcode from your account into a WordPress Shortcode block, save the page and view the published page.
The ZIP is a standard plugin package and does not contain your secret key. The key is entered manually on your WordPress server. The plugin sends authenticated requests to FootballAPI over HTTPS; browsers call your WordPress REST endpoint without receiving the secret.
Separate default-view shortcodes
Replace YOUR-DESIGN-ID with an ID saved in the same account as the widget key. Each named shortcode chooses its initial view. Visitors can then switch tabs and use the calendar when enabled.
| Shortcode | Initial content |
|---|---|
[footballapi_widget design="YOUR-DESIGN-ID"] | The default view saved in your design. |
[footballapi_scheduled design="YOUR-DESIGN-ID"] | Scheduled fixtures. |
[footballapi_results design="YOUR-DESIGN-ID"] | Finished matches and scores. |
[footballapi_live design="YOUR-DESIGN-ID"] | Matches currently in play. |
[footballapi_predictions design="YOUR-DESIGN-ID"] | Saved daily tips derived from real bookmaker odds. |
Place different shortcodes on separate pages or use several on one page. Each instance has independent view and date controls. Empty sections mean there are no saved matching records for that view/date; widgets do not invent data to fill an empty screen.
Saved data, updates and usage
Widgets read our background-prepared fixtures, live states, tips, odds and stored team crests. Opening an installed widget does not trigger a new football-source request. Match details appear only where the background collector has saved them. Coverage and update timing vary by competition and match.
The WordPress plugin initially renders the widget HTML on the server. JavaScript handles tab/date changes and match selection and refreshes visible instances every 15 seconds. WordPress caches identical delivery responses for five seconds to coalesce visitors. This refresh interval does not guarantee that a source has published new information at the same interval. Historical snapshots and future schedules are shown when collected.
Widget delivery is separate from your customer REST API daily allowance and does not add REST API overages. A delivery safety limit of 10 requests per second applies per widget key. The underlying API plan allowances and €0.002 REST overages remain as documented in the API usage guide.
Saved tips use bookmaker-implied estimates, not guaranteed outcomes or measured model accuracy. A current date without saved tips stays empty rather than presenting an older tip as today’s. Missing odds remain missing; absent data is not a zero price.
Full-page or CDN caches can retain the first server-rendered HTML after a design change. Clear those caches when necessary. Live page refreshes retrieve the saved design again. Native HTML avoids an iframe, but it does not guarantee search indexing or ranking.
Key rotation, revocation and website verification
Widget keys are separate from ordinary REST API keys. Use only the widget key in this plugin. FootballAPI stores a hash, not the recoverable secret. Generating a replacement immediately invalidates the previous key and clears website verification. Save the replacement in WordPress and verify the website again. Revoking the key disables new authenticated deliveries; a page or brief cache may still contain previously rendered HTML.
Every delivery checks the key, registered website, current Growth or Pro entitlement and design ownership. A design from another account is rejected. The verification endpoint returns a one-time challenge proof, never the key. Keep WordPress administrator access and backups secure. Website binding is not DRM: it cannot prevent someone copying already displayed content, and a stolen server-side secret must still be revoked promptly.
Installation checklist
| Problem | What to check |
|---|---|
| Eligible plan required | The current account must have active Growth or Pro access. Starter does not include installation. |
| Website mismatch | Compare the registered URL with the exact home URL displayed in WordPress plugin settings, including www and subdirectories. |
| Verification failed | Activate the plugin, save the key, allow public WordPress REST access and remove login/firewall challenges from its verification endpoint. HTTPS must work without redirects at that endpoint. |
| Invalid or revoked key | Generate a replacement in your account, save it in WordPress and verify again. Do not paste a normal customer API key. |
| Design not found | Use a design ID saved under the account that owns the widget key. Deleting a design stops its shortcodes. |
| No matches or missing details | Check the selected view, date and competition filters. The collector may not yet have saved that match or date. |
| Old appearance | Save the design, then clear WordPress page/CDN caches. Confirm that the shortcode points to the design you edited. |
| No tab/date updates | Allow the plugin JavaScript and your own /wp-json/footballapi/v1/render REST endpoint. Exclude the plugin script from incompatible optimisation settings. |