Base URL and format
All calls use /v1 on this site. Send and receive JSON. Every reply uses the same shape.
https://argbet.co/v1
GET https://argbet.co/v1/platforms
Example call returns live supported bookies. Manage keys in SettingsAPI keys.
Call convert, merge, and split from your own app with an API key. Limits match your plan on the site - Free starts at about 3 converts and 2 splits a day. Argbet does not place the bet.
Authorization: Bearer argb_ab12…
Sign in, open Account, then Settings, then API keys. Add a name and the IPs your app will call from, then copy the key once. You will not see the full secret again.
Add Authorization: Bearer YOUR_API_KEY. Convert, merge, split, quota, and account reads use your plan - same limits as on the website.
Call GET /v1/auth/me and GET /v1/conversions/quota so your app knows your plan and how many converts, merges, and splits you have left today.
POST a convert, merge, or split. If status is queued or running, call GET /v1/conversions/{id} until it is ok, partial, or failed.
All calls use /v1 on this site. Send and receive JSON. Every reply uses the same shape.
https://argbet.co/v1
GET https://argbet.co/v1/platforms
Example call returns live supported bookies. Manage keys in SettingsAPI keys.
Create an API key in Settings, then send it in the header on every call:
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
Choose an expiry (never, 30 days, 90 days, or 1 year) and the IP addresses allowed to call with that key. Calls from unlisted IPs are blocked. Keep your key private, and delete it if it is ever shared by mistake.
On success, the data is in data. On failure, success is false and you get an error.code with a clear explanation.
{
"success": true,
"data": {},
"meta": {},
"error": null
}
{
"success": false,
"data": null,
"meta": {},
"error": {
"code": "CONVERT_LIMIT",
"message": "Daily convert limit reached"
}
}
Your plan controls your daily and monthly limits:
Check GET /v1/conversions/quota anytime to see your remaining converts. See Pricing for plan details.
removed.CONVERT_LIMIT - daily or monthly convert limit reached.MERGE_LIMIT - too many codes in one merge request.CONVERT_IN_FLIGHT - another convert is currently running for your account.RATE_LIMITED - requests sent too quickly; wait a few seconds before retrying.UNAUTHORIZED - missing or invalid API key.FORBIDDEN - feature not available on your plan, or IP not allowed.UNSUPPORTED_PLATFORM - bookmaker is not currently active for converts./v1/account/api-keys
Website sign-in
Create an API key
Create an API key with allowed IPs and expiry. The secret key is returned once.
POST /v1/account/api-keys
Content-Type: application/json
Cookie: user_session=…
{
"name": "My app",
"expires_in_days": 90,
"allowed_ips": ["203.0.113.10", "198.51.100.0/24"]
}
{
"success": true,
"data": {
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "My app",
"prefix": "argb_ab12",
"key": "argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF",
"created_at": "2026-09-11T10:00:00Z",
"last_used_at": null,
"expires_at": "2026-12-10T10:00:00Z",
"allowed_ips": ["203.0.113.10", "198.51.100.0/24"]
},
"meta": {},
"error": null
}
/v1/account/api-keys
Website sign-in
List API keys
View your active API keys with names, prefixes, created dates, and allowed IPs.
GET /v1/account/api-keys
Cookie: user_session=…
{
"success": true,
"data": [
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"name": "My app",
"prefix": "argb_ab12",
"created_at": "2026-09-11T10:00:00Z",
"last_used_at": "2026-09-11T12:00:00Z",
"expires_at": "2026-12-10T10:00:00Z",
"allowed_ips": ["203.0.113.10"]
}
],
"meta": {},
"error": null
}
/v1/account/api-keys/{id}
Website sign-in
Revoke an API key
Deactivate an API key immediately. Requests using this key will be blocked.
DELETE /v1/account/api-keys/7c9e6679-7425-40de-944b-e07fc1f90ae7
Cookie: user_session=…
{
"success": true,
"data": { "revoked": true },
"meta": {},
"error": null
}
/v1/auth/me
API key
Account profile
Your account id, plan, email status, and feature access.
GET /v1/auth/me
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
{
"success": true,
"data": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"email": "ada@example.com",
"full_name": "Ada Okonkwo",
"username": "ada_ok",
"phone": "+2348012345678",
"country": "Nigeria",
"plan": "free",
"email_verified": true
},
"meta": {},
"error": null
}
/v1/conversions/quota
API key
Convert quota
Remaining converts today and this month, merge code caps, and plan features.
GET /v1/conversions/quota
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
{
"success": true,
"data": {
"convert_day_left": 8,
"convert_month_left": 40,
"merge_max_codes": 3,
"ai_tokens_remaining": 0,
"plan": "free"
},
"meta": {},
"error": null
}
/v1/account/summary
API key
Account overview
Overview of your converts, merges, slip outcomes, and recent activity.
GET /v1/account/summary
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
{
"success": true,
"data": {
"role": "user",
"convert_n": 14,
"merge_n": 5,
"jobs": {
"booked": 18,
"failed": 1,
"pending": 0,
"partial": 2
},
"results": {
"posts": 0,
"won": 8,
"lost": 4,
"pending": 2,
"partial": 0
},
"quota": {
"convert_day_left": 6,
"convert_month_left": 36,
"merge_max_codes": 3,
"plan": "free"
}
},
"meta": {},
"error": null
}
/v1/account/history/converts
API key
Convert history
Page through your past converts with input codes, target codes, and booking status.
GET /v1/account/history/converts?page=1&per_page=20
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
{
"success": true,
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"kind": "convert",
"source_platform": "sportybet",
"target_platform": "melbet",
"input_code": "kldpzt",
"target_code": "48291057",
"status": "ok",
"total_games": 3,
"total_odds": "4.20",
"created_at": "2026-09-12T14:30:00Z"
}
],
"meta": {
"page": 1,
"per_page": 20,
"total": 14
},
"error": null
}
/v1/account/history/merges
API key
Merge history
Page through your past merges with input codes, generated code, and status.
GET /v1/account/history/merges?page=1&per_page=20
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
{
"success": true,
"data": [
{
"id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"kind": "merge",
"source_platform": "sportybet",
"target_platform": "sportybet",
"input_codes": ["UE8LBC", "K2N9PQ"],
"target_code": "MRG8K2",
"status": "ok",
"total_games": 5,
"total_odds": "6.80",
"created_at": "2026-09-12T11:00:00Z"
}
],
"meta": {
"page": 1,
"per_page": 20,
"total": 5
},
"error": null
}
/v1/account/history/jobs/{id}
API key
Job details
Full details for one convert or merge, showing each kept pick and any skipped games.
GET /v1/account/history/jobs/550e8400-e29b-41d4-a716-446655440000
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"kind": "convert",
"source_platform": "sportybet",
"target_platform": "melbet",
"input_code": "kldpzt",
"target_code": "48291057",
"status": "ok",
"total_games": 1,
"total_odds": "2.10",
"kept": [
{
"sport": "football",
"home": "Arsenal",
"away": "Chelsea",
"market": "1x2",
"outcome": "1",
"odd": "2.10"
}
],
"removed": [],
"created_at": "2026-09-12T14:30:00Z"
},
"meta": {},
"error": null
}
/v1/account/history/payments
API key
Payment history
List of your payments, amounts, currency, and plan upgrades.
GET /v1/account/history/payments?page=1&per_page=20
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
{
"success": true,
"data": [
{
"id": "pay_9a2b8c7d",
"amount": 2500,
"currency": "NGN",
"plan": "starter",
"status": "successful",
"created_at": "2026-09-01T09:15:00Z"
}
],
"meta": {
"page": 1,
"per_page": 20,
"total": 1
},
"error": null
}
/v1/account/plans
API key
Available plans
Plan catalog showing daily convert caps, merge limits, and included features.
GET /v1/account/plans
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
{
"success": true,
"data": [
{
"id": "free",
"name": "Free",
"converts_per_day": 8,
"converts_per_month": 40,
"merge_max_codes": 3
},
{
"id": "starter",
"name": "Starter",
"converts_per_day": 20,
"converts_per_month": 150,
"merge_max_codes": 5
},
{
"id": "pro",
"name": "Pro",
"converts_per_day": 50,
"converts_per_month": 400,
"merge_max_codes": 10
}
],
"meta": {},
"error": null
}
/v1/account/billing
API key
Billing status
Your active plan name, renewal date, and billing status.
GET /v1/account/billing
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
{
"success": true,
"data": {
"plan": "free",
"status": "active",
"renewal_date": null
},
"meta": {},
"error": null
}
/v1/account/analytics
API key
Convert analytics
Daily breakdown of your converts, merges, and outcomes over the last 30 days.
GET /v1/account/analytics?days=30
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
{
"success": true,
"data": {
"days": 30,
"totals": {
"converts": 14,
"merges": 5,
"won": 8,
"lost": 4,
"pending": 2
},
"chart": [
{
"date": "2026-09-12",
"convert": 3,
"merge": 1,
"won": 2,
"lost": 1,
"pending": 0,
"void": 0
}
]
},
"meta": {},
"error": null
}
/v1/platforms
API key or public
List bookmakers
All supported bookmakers with country sites and logos.
GET /v1/platforms
{
"success": true,
"data": [
{
"id": "sportybet",
"name": "SportyBet",
"logo_url": "/static/web/platforms/sportybet.png",
"sites": []
},
{
"id": "melbet",
"name": "Melbet",
"logo_url": "/static/web/platforms/melbet.png",
"sites": [
{ "id": "global", "label": "Global", "default": true, "host": "melbet.com", "available": true }
]
}
],
"meta": {},
"error": null
}
/v1/conversions
API key
Convert a code
Submit a booking code to convert from one bookmaker to another. Returns a job id to check next.
POST /v1/conversions
Content-Type: application/json
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
{
"source_platform": "sportybet",
"target_platform": "melbet",
"source_site": null,
"target_site": "global",
"betslip_code": "kldpzt",
"show_live": false
}
{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"kind": "convert",
"source_platform": "sportybet",
"target_platform": "melbet",
"source_site": null,
"target_site": "global",
"input_code": "kldpzt",
"target_code": null,
"status": "queued",
"kept": [],
"removed": [],
"use_ai_filter": false,
"progress": "Queued",
"progress_percent": 0,
"total_odds": null,
"total_games": null,
"target_url": null,
"show_live": false
},
"meta": {},
"error": null
}
/v1/conversions/{id}
API key
Get convert status
Check status of a convert job. Returns the target code and pick details once completed.
GET /v1/conversions/550e8400-e29b-41d4-a716-446655440000
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
{
"success": true,
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"kind": "convert",
"source_platform": "sportybet",
"target_platform": "melbet",
"input_code": "kldpzt",
"target_code": "48291057",
"status": "ok",
"kept": [
{
"sport": "football",
"home": "Arsenal",
"away": "Chelsea",
"competition": "England - Premier League",
"kickoff_at": "2026-09-12T15:00:00Z",
"market": "1x2",
"market_label": "1X2",
"outcome": "1",
"odd": "2.10",
"line": null,
"period": "ft",
"home_logo": "/static/web/crests/arsenal.png",
"away_logo": "/static/web/crests/chelsea.png"
}
],
"removed": [],
"use_ai_filter": false,
"progress": "Done",
"progress_percent": 100,
"total_odds": "2.10",
"total_games": 1,
"target_url": "https://melbet.com/en/office/share/?code=48291057",
"show_live": false
},
"meta": {},
"error": null
}
/v1/ws/conversions/{id}
API key
Convert progress stream
Optional WebSocket connection to receive real-time progress events for a convert.
WS /v1/ws/conversions/550e8400-e29b-41d4-a716-446655440000
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
app_user_id: 3fa85f64-5717-4562-b3fc-2c963f66afa6
{
"type": "progress",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "running",
"progress": "Booking picks on Melbet",
"progress_percent": 65
}
}
/v1/merges
API key
Merge codes
Combine picks from two or more booking codes into one new code.
POST /v1/merges
Content-Type: application/json
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
{
"source_platform": "sportybet",
"codes": ["UE8LBC", "K2N9PQ"],
"convert": false
}
{
"success": true,
"data": {
"id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"kind": "merge",
"source_platform": "sportybet",
"target_platform": "sportybet",
"input_code": "UE8LBC",
"input_codes": ["UE8LBC", "K2N9PQ"],
"target_code": "MRG8K2",
"status": "ok",
"kept": [
{
"sport": "football",
"home": "Liverpool",
"away": "Everton",
"competition": "England - Premier League",
"kickoff_at": "2026-09-13T12:30:00Z",
"market": "1x2",
"market_label": "1X2",
"outcome": "1",
"odd": "1.85",
"home_logo": "/static/web/crests/liverpool.png",
"away_logo": "/static/web/crests/everton.png"
}
],
"removed": [],
"progress": "Done",
"progress_percent": 100,
"total_odds": "1.85",
"total_games": 1,
"target_url": "https://www.sportybet.com/ng/sport/football?shareCode=MRG8K2"
},
"meta": {},
"error": null
}
/v1/splits/preview
API key
Load a code to split
Return ordered picks (with keys) so you can trim, reorder, or split into groups.
POST /v1/splits/preview
Content-Type: application/json
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
{
"platform": "sportybet",
"booking_code": "UE8LBC"
}
{
"success": true,
"data": {
"platform": "sportybet",
"booking_code": "UE8LBC",
"site": null,
"split_max_groups": 2,
"legs": [
{
"index": 0,
"key": "sr:match:1|1x2|ft||home",
"sport": "football",
"home": "Liverpool",
"away": "Everton",
"competition": "England - Premier League",
"market": "1x2",
"market_label": "1X2",
"outcome": "home",
"odds": "1.85"
}
]
},
"meta": {},
"error": null
}
/v1/splits
API key
Split a booking code
Split into groups, then rebook on the same bookie or convert to another. Several groups in one request still count as one split.
POST /v1/splits
Content-Type: application/json
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
{
"platform": "sportybet",
"booking_code": "UE8LBC",
"groups": [["sr:match:1|1x2|ft||home"]],
"target_platform": "bet9ja"
}
{
"success": true,
"data": {
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"kind": "split",
"source_platform": "sportybet",
"target_platform": "bet9ja",
"input_code": "UE8LBC",
"target_code": "BJ9K2A",
"status": "ok",
"kept": [],
"removed": [],
"progress": "Done",
"progress_percent": 100,
"target_url": "https://sports.bet9ja.com/?bookABetCode=BJ9K2A"
},
"meta": {},
"error": null
}
/v1/account/ai-analyser
API key
AI Analyser
Evaluate picks with AI and return the strongest selections for your slip.
POST /v1/account/ai-analyser
Content-Type: application/json
Authorization: Bearer argb_ab12k9Qm2xL4nP8vR1sT0uW3yZ5cD7eF
{
"platform": "sportybet",
"booking_code": "UE8LBC",
"game_count": 4
}
{
"success": true,
"data": {
"kept": [
{
"sport": "football",
"home": "Barcelona",
"away": "Sevilla",
"competition": "Spain - La Liga",
"kickoff_at": "2026-09-14T19:00:00Z",
"market": "1x2",
"market_label": "1X2",
"outcome": "1",
"odd": "1.55",
"analysis": "Home form and recent H2H favour Barcelona."
}
],
"note": "Kept the strongest four legs.",
"ai_tokens_used": 12,
"ai_tokens_remaining": 88
},
"meta": {},
"error": null
}
Convert booking codes between bookmakers, merge several codes into one, split or trim one code into new codes, check your remaining quota, and view convert history. Limits match your plan on the website.
Sign in to your account, open Settings, and tap API keys. Enter a name and your server IP, then copy your key. You can revoke it anytime to create a new one.
Include it as a Bearer token in the Authorization header on every call: Authorization: Bearer YOUR_API_KEY.
Yes. Send POST /v1/account/ai-analyser with your key, the bookmaker name, and your booking code. It evaluates the matches and returns the strongest selections using your monthly AI tokens.
When you start a convert, you get a job id. Check GET /v1/conversions/{id} until the status shows ok or partial with your new booking code.
The convert finishes as partial. All available picks are booked into the new code, and any skipped picks are listed under removed with the reason.
POST /v1/splits/preview to load the picks and keys, arrange groups, then POST /v1/splits. Omit target_platform to rebook on the same bookie. Set target_platform to convert after edit. Several groups in one request still count as one split.