VERSION 2.0

GamePlan NIL API

Embed NIL education, track progress, and issue certifications—all with a few lines of code

All Systems Operational
99.9% Uptime
<50ms Response Time
15+
API Endpoints
250M+
API Calls/Month
40+
Integration Partners
24/7
Developer Support

Easy Integration

Drop-in widgets, REST API, or webhooks. Choose what works for your stack.

  • Iframe embeds
  • RESTful API
  • Webhook callbacks

Enterprise Security

OAuth 2.0, rate limiting, and encrypted data transfer built-in.

  • OAuth 2.0 authentication
  • TLS 1.3 encryption
  • API key management

Real-Time Analytics

Track usage, monitor performance, and optimize with detailed analytics.

  • Usage dashboards
  • Performance metrics
  • Error tracking

Getting Started

Integrate GamePlan NIL education modules into your platform in under 5 minutes. Follow these steps to get started:

1

Create an API Key

Sign up for a developer account and generate your API credentials from the dashboard.

Dashboard → API Keys → New Key
2

Choose Your Integration Method

Select the integration approach that works best for your application:

Embed Widget
Fastest setup
REST API
Full control
Webhooks
Event-driven
3

Test in Sandbox

Use our sandbox environment to test your integration before going live.

# Test API Endpoint
https://api-sandbox.gameplan-nil.com/v2/
4

Go Live

Once testing is complete, switch to production credentials and deploy.

Authentication

GamePlan NIL API uses OAuth 2.0 and API keys for authentication. All requests must include valid credentials.

API Key Authentication

Include your API key in the Authorization header of every request:

HTTP Request
GET /v2/modules
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Security Warning
Never expose your API key in client-side code. Always make API calls from your backend.

OAuth 2.0 Flow (Recommended)

For user-specific actions, use OAuth 2.0 authorization code flow:

1
Request Authorization
GET https://auth.gameplan-nil.com/oauth/authorize
2
User Approves
Redirect to your callback URL with authorization code
3
Exchange for Access Token
POST https://auth.gameplan-nil.com/oauth/token

Embed Widget

The fastest way to integrate GamePlan education modules. Just add 2 lines of code to your page.

Basic Implementation

HTML
// 1. Include the GamePlan SDK
<script src= "https://cdn.gameplan-nil.com/embed.js" ></script>
// 2. Add the widget container
<div
data-gameplan-widget= "education"
data-api-key= "YOUR_API_KEY"
data-user-id= "athlete_123"
></div>
That's it!
The widget will automatically load all available modules for the user.

Advanced Configuration

Attribute Type Description
data-api-key string Your API key *required
data-user-id string Unique user identifier *required
data-modules array Specific modules to show (optional)
data-theme string UI theme: "light" or "dark"
data-track-progress boolean Enable progress tracking (default: true)
data-on-complete function Callback when module is completed

REST API

Full programmatic control over modules, progress tracking, and certificates.

Base URL
https://api.gameplan-nil.com/v2/
GET /modules

Retrieve all available education modules

Response (200 OK)
{
"modules": [
{
"id": "nil-101",
"title": "NIL Fundamentals",
"duration": "45 minutes",
"difficulty": "beginner"
},
{
"id": "tax-101",
"title": "Tax Essentials",
"duration": "60 minutes",
"difficulty": "intermediate"
}
]
}
GET /users/{userId}/progress

Get a user's learning progress and completion status

Path Parameters
userId - The unique identifier for the user
Response (200 OK)
{
"user_id": "athlete_123",
"completed_modules": ["nil-101", "contract-101"],
"in_progress": [
{
"module_id": "tax-101",
"progress_percent": 65,
"last_accessed": "2024-12-01T14:30:00Z"
}
],
"certificates_earned": 2,
"total_learning_hours": 8.5
}
POST /enrollments

Enroll a user in a specific module

Request Body
{
"user_id": "athlete_123",
"module_id": "nil-101",
"auto_start": true
}
Response
{
"enrollment_id": "enr_abc123",
"status": "active",
"expires_at": "2025-12-01"
}
PUT /users/{userId}/progress

Update a user's progress in a module

Automatic Progress Tracking
When using the embed widget, progress is tracked automatically. This endpoint is for custom implementations.

Additional Endpoints

Method Endpoint Description
GET /certificates List all certificates
GET /certificates/{id} Get certificate details
POST /certificates/verify Verify certificate authenticity
GET /analytics/usage Get API usage statistics
DELETE /enrollments/{id} Cancel an enrollment

Webhooks

Receive real-time notifications when important events happen in your integration.

Setting Up Webhooks

  1. 1. Configure your webhook endpoint URL in the developer dashboard
  2. 2. Choose which events you want to receive
  3. 3. Verify the webhook signature in your handler

Available Events

enrollment.created

Fired when a user enrolls in a module

module.completed

Fired when a user completes a module

certificate.issued

Fired when a certificate is issued

progress.updated

Fired when progress is updated

Example Webhook Payload

POST https://your-app.com/webhooks/gameplan
{
"event": "module.completed",
"timestamp": "2024-12-01T15:30:00Z",
"data": {
"user_id": "athlete_123",
"module_id": "nil-101",
"completion_time": "42 minutes",
"score": 95,
"certificate_id": "cert_xyz789"
},
"signature": "sha256=abc123..."
}

SDKs & Libraries

Official SDKs to speed up your integration in your preferred language.

Node.js
v2.1.0
npm install @gameplan/nil-sdk
View on GitHub
Python
v1.8.0
pip install gameplan-nil
View on GitHub
Ruby
v1.5.2
gem install gameplan_nil
View on GitHub

Quick Example (Node.js)

const
GamePlan = require ( '@gameplan/nil-sdk' );
// Initialize client
const
client = new GamePlan( 'YOUR_API_KEY' );
// Get user progress
const
progress = await client.users.getProgress( 'athlete_123' );
console.log(progress);

Rate Limits

Free Tier $0/month
1,000
requests per hour
Pro Tier $99/month
10,000
requests per hour
Enterprise Custom
Unlimited
Contact sales

Error Codes

400 Bad Request
Invalid parameters
401 Unauthorized
Invalid API key
404 Not Found
Resource doesn't exist
429 Rate Limit
Too many requests
500 Server Error
Something went wrong

Need Help? We're Here for You

Join our developer community and get support from our team

Developer Discord

Chat with other developers and our engineering team in real-time

Email Support

Get technical support from our team within 24 hours

Code Examples

Browse sample code and integration examples on GitHub

Free tier includes 1,000 API calls per hour • No credit card required