myaffiliatesjs
v3.0.0
Published
A JavaScript/TypeScript client for the MyAffiliates XML API.
Readme
MyAffiliates XML API JavaScript Client
A JavaScript/TypeScript client for the MyAffiliates XML API.
Documentation Reference
- Official API Docs: http://www.myaffiliates.com/xmlapi
- Perl Reference: https://github.com/binary-com/perl-WebService-MyAffiliates
Requirements
Contact MyAffiliates support to get admin access to the XML API.
Installation
npm install myaffiliatesjs
# or
bun add myaffiliatesjsConfiguration
Create a .env file with:
admin_base=your-admin.myaffiliates.com
admin_username=your_username
admin_password=your_passwordSupported Feeds
| Feed ID | Name | Status | |---------|------|--------| | 1 | User Feed | Implemented (rich fields/filters) | | 2 | User Details Feed | Implemented | | 3 | User Status Feed | Implemented | | 4 | Decode Token | Implemented | | 5 | Encode Token | Implemented (includes banner/media/authcode) | | 6 | User Transactions Feed | Implemented (list/update) | | 7 | Email Match-Up Tool | Implemented | | 8 | Create Player | Implemented | | 10 | Customer Feed | Implemented | | 13 | Create Campaign | Implemented | | 14 | Create Landing Page | Implemented | | 15 | Offline Codes | Not Implemented | | 16 | Media Feed | Implemented (create/update) | | 17 | View Campaigns | Implemented (date filters) | | 20 | Media Details | Implemented | | 22 | Remapped Players | Implemented | | 25 | Affiliate Earnings | Implemented (typed rows) | | 26 | Affiliate Account Creation | Implemented | | 27 | Transaction Creation | Implemented |
Usage
import {
decode_token,
get_players,
create_player,
create_campaign,
create_affiliate,
create_transaction
} from 'myaffiliatesjs';
// Decode a tracking token
const token = await decode_token('iPf0f63L7Qdhg6WO2I1rgWNd7ZgqdRLk');
// Get players
const players = await get_players({ from_date: '2024-01-01' });
// Create a player
const newPlayer = await create_player({
client_reference: '12345',
client_group: 'casino',
join_date: '2024-01-01',
display_name: 'player1',
token: 'ieQz0IK_kMIWqcfzuvZcQMni_MQzyHn0',
country: 'GB'
});
// Create an affiliate (shell account)
const affiliate = await create_affiliate({
account_type: 'shell',
username: 'newuser',
password: 'SecurePass123',
email: '[email protected]',
plan_force: '1',
plans: '1,2,3'
});
// Create a manual transaction
const transaction = await create_transaction({
user_id: '1',
transaction_type: 11, // Manual Payment Issued
transaction_date: '2024-01-15',
display_date: '2024-01-15',
amount: -50.00,
converted_amount: -75.00,
visibility: true,
status: 'Pending'
});API Reference
Users
get_users(filters)- Fetch users with filters and optional included blocks (Feed 1)get_users_by_ids(user_ids: string[])- Get users by IDs (Feed 1)get_users_details(user_details)- Get/set user detail fields (Feed 2)get_user_status(filters)- List/filter user statuses (Feed 3)set_user_status(user_ids, status)- Update user status (Feed 3)
Tokens
decode_token(token: string)- Decode a tracking token (Feed 4)encode_token(params)- Generate a token/link (Feed 5, returns token/link plus ids/banner/media/authcode)
Players/Customers
create_player(params)- Create a new player (Feed 8)get_players(params)- Search/filter players (Feed 10)
Campaigns
view_campaigns(params)- Get campaign details (Feed 17)create_campaign(campaign_id, user_id, description)- Create campaign (Feed 13)
Affiliates
create_affiliate(params)- Create new affiliate (Feed 26)get_affiliate_earnings(params)- Get affiliate earnings (Feed 25, typed rows)
Transactions
create_transaction(params)- Create manual/administrative transaction (Feed 27);visibilitymaps toVISIBILITYyes/noget_transactions(filters)- List/filters user transactions (Feed 6)update_transaction(params)- Update a transaction field/value (Feed 6)
Media
get_media(id)- Get media details (Feed 20)create_media(payload)- Create media (Feed 16)update_media(media_id, payload)- Update media (Feed 16)
Dashboards
dashboard_graph_data()- Get admin dashboard graph dataget_top_comissions_by_channel()- Get top commissions by channel
match_email(email)- Match email to tracking codes (Feed 7)
Compatibility
This module is compatible with the MyAffiliates XML API as of 2024-07-15.
TODO
See TODO.md for a detailed list of improvements and unimplemented features.
