SocialEarning API Documentation
API Details
- Base URL:
https://socialearning.org/api - Allowed Methods:
GET,POST - Response:
JSON - Authentication: Token (Your Key)
Endpoints
| Endpoint | Method | Parameters | Response |
|---|---|---|---|
| /balance | GET | None | Current balance and total withdrawal |
| /service/list | GET | None | List of services and IDs |
| /order/list | GET | status (optional),id (optional),link (optional) |
All orders you have placed |
| /get/order | GET | id or link |
Order details for the given ID/Link |
| /update/order | GET | id, type (pause, resume, cancel, stopandrefund) |
Status update response |
| /create/post | POST | Social_Media, link, rate_needed, custom_text (optional) |
Success message with order ID |
| /increase/audience | POST | id, rate_needed |
Success message with updated order |
| /search/order | POST | filt_data (required), social_media (optional) |
Filtered list of orders from all general orders placed on socialearning |
| /download/audience_list | GET | id |
Download a PDF list of earners who submitted approved tasks for an order |
Retrieves your current balance and total withdrawal.
https://socialearning.org/api/balance
Request
curl -X GET 'https://socialearning.org/api/balance' \ -H 'Authorization: Token YOUR_API_KEY'
Response
{
"status": true,
"data": {
"Wallet_balance": "27839.00",
"Total_deposit": "2254237.00"
}
}
Retrieves all the active services.
curl -X GET "https://socialearning.org/api/service/list" \ -H "Authorization: Token YOUR_API_KEY"
{
"status": true,
"data": [
{
"id": 60,
"Social_Media": "YOUTUBEMUSIC",
"Type": "Music Like",
"poster_price": "8.00",
"partner_price": "5.00",
"is_active": true,
"poster_descriptions":"Service Instructions"
}
{
"id": 60,
"Social_Media": "TWITTRER POST",
"Type": "Music Like",
"poster_price": "8.00",
"partner_price": "5.00",
"is_active": false,
"poster_descriptions":"Service Instructions"
}
]
}
Creates a new order.
Social_Media– Service ID (Required)link– Valid link (Required)rate_needed– Audience count (Required)custom_text– Custom text (Optional)
curl -X POST 'https://socialearning.org/api/create/post' \
-H 'Authorization: Token YOUR_API_KEY' \
-H 'Content-Type: application/json' \
--data-raw '{
"Social_Media": "11",
"link": "https://twitter.com/Social_Earning",
"rate_needed": "50",
"custom_text": "Good job \r\n Keep going"
}'
{
"status": true,
"message": "Order posted successfully",
"data": {
'id': 106,
'Social_Media': 11,
'status': 'approved',
'message': None,
'progressing': False,
'link': 'https://twitter.com/Social_Earning/',
'date_posted': '2023-04-19T09:29:51.826621Z',
'rate_needed': 510,
'rate_done': 0,
'amount_paid':1000.00
'amount_refunded':0.00
'custom_text': 'Good boy \r\n Bad boy Spending',
'order_method': 'API'
}
}
Retrieves all the orders you have placed (paginated).
Status– (pending, approved, rejected, finished, cancel, paused) (Optional)link– Valid link (Optional)id– Custom text (Optional)
curl -X GET 'https://socialearning.org/api/order/list' \ -H 'Authorization: Token YOUR_API_KEY'
{
"status":true or false,
"count":9434,
"total_pages":189,
"current_page_number":1,
"next":"https://socialearning.org/api/order/list?page=2",
"next_page_number":2,
"previous":null,
"previous_page_number":null,
'data':
[
{
'id': 106,
'Social_Media': 11,
'status': 'approved',
'message': None,
'progressing': True,
'link': 'https://twitter.com/Social_Earning/',
'date_posted': '2023-04-19T09:29:51.826621Z',
'rate_needed': 510,
'rate_done': 500,
'amount_paid':1000.00
'amount_refunded':0.00
'custom_text': 'Good boy \r\n Bad boy Spending',
'order_method': 'API'
},
{
'id': 105,
'Social_Media': 11,
'status': 'pending',
'message': None,
'progressing': False,
'link': 'https://twitter.com/Social_Earning/status/1639208170282270720',
'date_posted': '2023-04-16T09:03:39.972090Z',
'rate_needed': 500,
'rate_done': 0,
'custom_text': '',
'order_method': 'API'
},
]
}
Retrieves a post by ID or link.
id or link– Post id or the Post link (Required)
curl -X GET 'https://socialearning.org/api/get/order?id=106' \ -H 'Authorization: Token YOUR_API_KEY'
{
"status": true,
"data": {
'id': 106,
'Social_Media': 11,
'status': 'approved',
'message': None,
'progressing': True,
'link': 'https://twitter.com/Social_Earning',
'date_posted': '2023-04-19T09:29:51.826621Z', '
rate_needed': 510,
'rate_done': 500,
'custom_text': '',
'order_method': 'API'
}
}
Update an order status (pause, resume, cancel, stopandrefund).
id– Post ID (Required)type– (pause,resume,cancel, stopandrefund) (Required)
curl -X GET 'https://socialearning.org/api/update/order?id=106&type=pause' \ -H 'Authorization: Token YOUR_API_KEY'
{
"status": true,
"message": "Order paused successfully",
"post_id": 106
}
Increase the rate needed for an existing order.
id– The id of the order you want you want to continue. (Required)rate_needed– The amount of the audience you need more. (Required)
curl -X POST 'https://socialearning.org/api/increase/audience' \
-H 'Authorization: Token YOUR_API_KEY' \
-H 'Content-Type: application/json' \
--data-raw '{
"id": "106",
"rate_needed": "50"
}'
{
"status": true,
"message": "Order updated successfully",
"post_id": 106
}
Search from all socialearning orders using ID or link.
filt_data– it can be a post link or a post id. (Required)social_media– Service ID (Optional)
curl -X GET 'https://socialearning.org/api/search/order?filt_data=instagram&social_media=1' \ -H 'Authorization: Token YOUR_API_KEY'
{
"status":true or false,
"count":9434,
"total_pages":189,
"current_page_number":1,
"next":"https://127.0.0.1:9000/api/search/order?page=2",
"next_page_number":2,
"previous":null,
"previous_page_number":null,
'data':
[
{
'id': 106,
'Social_Media': 11,
'status': 'approved',
'message': None,
'progressing': True,
'link': 'https://twitter.com/Social_Earning/',
'date_posted': '2023-04-19T09:29:51.826621Z',
'rate_needed': 510,
'rate_done': 500,
'amount_paid':1000.00
'amount_refunded':0.00
'custom_text': 'Good boy \r\n Bad boy Spending',
'order_method': 'API'
},
{
'id': 105,
'Social_Media': 11,
'status': 'pending',
'message': None,
'progressing': False,
'link': 'https://twitter.com/Social_Earning/status/1639208170282270720',
'date_posted': '2023-04-16T09:03:39.972090Z',
'rate_needed': 500,
'rate_done': 0,
'custom_text': '',
'order_method': 'API'
},
]
}
Generates and downloads a PDF report containing all approved task submissions for a specific order.
id– The ID of the order (Required)- Authorization: Must include a valid
Tokenfor an authenticated advertiser
📥 Example Request
curl -X GET 'https://socialearning.org/api/download_audience_list?id=106' \
-H 'Authorization: Token YOUR_API_KEY' \
--output Order_106_audience_list.pdf
📄 Example Response
Content-Type: application/pdf
Content-Disposition: attachment; filename="Order_106_audience_list.pdf"
(Binary PDF file returned)
🔒 Notes
- Only authenticated Advertisers can access this endpoint.
- The response is a direct PDF download, not JSON.
- The file includes each approved earner’s handle, proof link, submission date, and custom text.
Webhooks
Instead of you polling /order/list for status changes, you can register a
webhook URL and we'll POST a JSON payload to it automatically whenever one of your
orders changes status. Set this up on your
settings page.
Events
event_type value |
Fires when... |
|---|---|
placed | A new order is placed |
approved | The order is approved |
paused | An order is paused |
resumed | A paused order is resumed |
finished | An is completed |
stopped | An order is stopped (and refunded) |
rejected | An order is rejected |
cancelled | An order is cancelled |
increased | An order is increased |
By default your endpoint receives all five. On your settings page you can narrow this down to only the events you care about — but note that leaving every checkbox unchecked is treated as "send me everything," not "send me nothing."
Every request is sent as POST with a JSON body shaped like this:
{
"event_type": "placed",
"order_id": "473153",
"status": "pending",
"message": null,
"progressing": false,
"link": "http://127.0.0.1:9000/action/posts/pending/list",
"Social_Media": 1,
"rate_needed": 65,
"rate_done": 0,
"amount_paid": "250.00",
"amount_refunded": 0.0,
"custom_text": "jklskfjosgjdsg\r\ndgfdfs\r\n;'gfdl;kgdf'g\r\nasdf;'fsdlfs\r\nafsadlk;sfd;ks af\r\nsafsa\r\nljflsad",
"order_method": manually,
"date_posted": "2026-07-24T22:32:39.515Z"
}
Along with these headers on every request:
| Header | Description |
|---|---|
Content-Type | application/json |
X-Webhook-Event | Same value as event_type in the body |
X-Webhook-Attempt | Which attempt this is: 1, 2, or 3 |
Your endpoint should respond with any 2xx status code to acknowledge receipt. Anything else (including no response) is treated as a failed delivery and queues a retry.
- Each attempt times out after 10 seconds if your server doesn't respond.
- We make up to 3 attempts total before giving up on a given notification.
| Attempt | Timing |
|---|---|
| 1st | Immediately, when the event happens |
| 2nd | ~5 minutes after attempt 1 fails |
| 3rd | ~15 minutes after attempt 2 fails |
If the 3rd attempt still fails, we stop trying for that notification and mark it as failed. You'll still be able to see exactly what response (or error) we got back on each attempt, and you can manually resend it any time from your dashboard — a resend counts as the next attempt rather than restarting the count from zero.
For every delivery attempt, whether it succeeds or fails, we keep:
- The HTTP status code your server returned (if any)
- The response body your server returned (first 5,000 characters)
- The connection/timeout error message, if the request itself couldn't complete
Response Codes
| Code | Description |
|---|---|
| 200 | OK – Request was successful |
| 400 | Bad Request – Invalid input |
| 401 | Unauthorized – Invalid/missing token |
| 404 | Not Found – Resource does not exist |
| 500 | Internal Server Error – Try again later |