API ọha

Endpoint niile ngwa ekwentị ahụ na-akpọtụrụ. E gosiri ndị chọrọ token na kaadị ọ bụla.

ỤDỊ v1 NHAZI JSON NKWENYE Dị ka endpoint si dị

01URL ntọala

Endpoint niile nọ na URL dị n'okpuru ebe a, ha na-eweghachikwa application/json. Ebe a chọrọ nkwenye njirimara, token ahụ na-aba na header Authorization: Bearer <token>; ndepụta ahụ na-egosi endpoint ndị chọrọ ya.

https://priamnetwork.com/api/v1

02Endpoint

Uru ndị dị na nzaghachi ọmụmaatụ bụ maka ngosi; ubi na ọdịdị ha bụ eziokwu. A na-emepụta ndepụta endpoint site na ndekọ dị na koodu isi, ọ bụghị site n'iji aka ede ya.

Authentication

POST /v1/auth/register Enweghị nkwenye arịrịọ 10 / 3600 s

Creates an account. The username doubles as the referral code.

Paramita Ụdị Achọrọ Nkọwa
accept_terms string ee Terms acceptance. Must be <code>1</code>.
username string ee 3–32 chars, letters/digits/underscore
password string ee At least 8 characters
confirm_age string ee Age declaration. Must be <code>1</code>.
referrer string — Referrer username
email string ee Required and unique; the only password recovery path
device_id string ee Stable per-device identifier
locale string — Language code
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "token": "…",
        "expires_at": "2026-08-29T18:00:00+00:00",
        "user": {
            "username": "ayse",
            "balance": "0.00000000"
        }
    }
}
Njehie pụrụ iche nke endpoint username_taken email_taken invalid_username invalid_email weak_password unknown_referrer
POST /v1/auth/check-username Enweghị nkwenye arịrịọ 60 / 60 s

Whether a username is available. Gates the sign-up button.

Paramita Ụdị Achọrọ Nkọwa
username string ee 3–32 chars, letters/digits/underscore
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "available": true
    }
}
Njehie pụrụ iche nke endpoint invalid_username
POST /v1/auth/check-email Enweghị nkwenye arịrịọ 30 / 3600 s

Whether an email address is available. ⚠️ Tight limit — this is a user-enumeration surface.

Paramita Ụdị Achọrọ Nkọwa
email string ee Address to check
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "available": false
    }
}
Njehie pụrụ iche nke endpoint invalid_email
POST /v1/auth/login Enweghị nkwenye arịrịọ 10 / 60 s

Signs in with username and password, returns an access token.

Paramita Ụdị Achọrọ Nkọwa
username string ee Username
password string ee Password
device_id string ee Device id
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "token": "…",
        "expires_at": "2026-08-29T18:00:00+00:00",
        "user": {
            "username": "ayse"
        }
    }
}
Njehie pụrụ iche nke endpoint invalid_credentials account_suspended
POST /v1/auth/social-nonce Enweghị nkwenye arịrịọ 30 / 900 s

Issues a single-use nonce for the device account picker (Credential Manager). Valid 5 minutes, bound to the device.

Paramita Ụdị Achọrọ Nkọwa
device_id string ee The nonce is bound to this device.
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "nonce": "a1b2…",
        "expires_in": 300
    }
}
Njehie pụrụ iche nke endpoint bad_request rate_limited
POST /v1/auth/social-token Enweghị nkwenye arịrịọ 10 / 900 s

Verifies the Google id_token from the native account picker. Signs in when the account exists. When it does NOT, no account is created — returns `signup_required` with a `pending_token`; the signup finishes via `auth/social-complete`.

Paramita Ụdị Achọrọ Nkọwa
provider string ee Only `google` for now.
id_token string ee The signed token returned by Credential Manager.
nonce string ee The value obtained from `auth/social-nonce`.
device_id string ee The SAME device id used for the nonce.
locale string — Device language code (`tr`, `en`). Used only for a NEW account.
signup_flow string — When non-empty, no account is created; returns `signup_required`.
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "token": "…",
        "expires_at": "…",
        "user": {
            "username": "ibrahim"
        },
        "signup_required": true,
        "pending_token": "…",
        "suggested_username": "ibrahim"
    }
}
Njehie pụrụ iche nke endpoint bad_request unauthorized forbidden unavailable rate_limited
POST /v1/auth/social-complete Enweghị nkwenye arịrịọ 10 / 900 s

Completes a pending social signup with the chosen username and starts a session. The referral code is optional; without it the account is linked to the system account.

Paramita Ụdị Achọrọ Nkọwa
accept_terms string ee Terms acceptance. Must be <code>1</code>.
confirm_age string ee Age declaration. Must be <code>1</code>.
pending_token string ee The value from `auth/social-token`. Single-use, 30 minutes.
username string ee 3–32 chars; lowercase letters, digits, underscore.
device_id string ee The SAME device id used for `auth/social-token`.
referrer string — Username of the referrer. The account must be `active`.
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "token": "…",
        "expires_at": "…",
        "user": {
            "username": "ibrahim"
        }
    }
}
Njehie pụrụ iche nke endpoint bad_request invalid_username username_taken unknown_referrer email_taken rate_limited
POST /v1/auth/password-forgot Enweghị nkwenye arịrịọ 3 / 900 s

Sends a password reset link. Returns the same response whether or not the address is registered, to prevent account enumeration. No code is sent to an account that is linked to a social login and whose address is not verified yet (the response is still the same), so the owner of a mistyped address cannot take the account; the real owner can still sign in with the social login.

Paramita Ụdị Achọrọ Nkọwa
email string ee The account email address.
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "sent": true
    }
}
Njehie pụrụ iche nke endpoint bad_request rate_limited
POST /v1/auth/password-reset-verify Enweghị nkwenye arịrịọ 10 / 900 s

Verifies the 6-digit code from the email and returns a short-lived ticket, required by step 3 to set the new password.

Paramita Ụdị Achọrọ Nkọwa
email string ee The address the code was sent to.
code string ee Six digits. Valid for 10 minutes, dies after 5 wrong tries.
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "ticket": "a1b2…",
        "expires_in": 600
    }
}
Njehie pụrụ iche nke endpoint bad_request rate_limited
POST /v1/auth/password-reset-confirm Enweghị nkwenye arịrịọ 5 / 900 s

Spends the ticket and writes the new password. All of the user's sessions are revoked.

Paramita Ụdị Achọrọ Nkọwa
ticket string ee The ticket returned by step 2.
new_password string ee At least 8 characters.
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "updated": true
    }
}
Njehie pụrụ iche nke endpoint bad_request rate_limited
POST /v1/auth/password-change Achọrọ nkwenye arịrịọ 5 / 300 s

Changes the password. The current password is required. Sessions on other devices are NOT closed.

Paramita Ụdị Achọrọ Nkọwa
current_password string ee The password in use
new_password string ee At least 8 characters
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "changed": true
    }
}
Njehie pụrụ iche nke endpoint invalid_password weak_password same_password
POST /v1/auth/refresh Achọrọ nkwenye arịrịọ 20 / 3600 s

Rotates the token. Only tokens within 7 days of expiry rotate; the old one is revoked at once.

Ọ naghị anara paramita ọ bụla.

Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "token": "…",
        "expires_at": "2026-09-28T18:00:00+00:00",
        "rotated": true
    }
}
Njehie pụrụ iche nke endpoint too_early
POST /v1/auth/logout Achọrọ nkwenye arịrịọ 30 / 3600 s

Revokes this device's token.

Paramita Ụdị Achọrọ Nkọwa
all_devices bool — Sign out everywhere
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "revoked": 1
    }
}

Account

POST /v1/me/avatar Achọrọ nkwenye arịrịọ 10 / 3600 s

Uploads a profile photo (multipart, field name `file`). JPEG/PNG, max 5 MB. The server re-encodes to a 512×512 square and stores it as JPEG.

Paramita Ụdị Achọrọ Nkọwa
file file ee JPEG or PNG, max 5 MB.
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "avatar_url": "https://priamnetwork.com/assets/uploads/avatars/2026/08/a1b2….jpg"
    }
}
Njehie pụrụ iche nke endpoint bad_request rate_limited
POST /v1/me/avatar-remove Achọrọ nkwenye arịrịọ 10 / 3600 s

Removes the profile photo and deletes the file from disk.

Ọ naghị anara paramita ọ bụla.

Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "avatar_url": null
    }
}
Njehie pụrụ iche nke endpoint rate_limited
POST /v1/auth/verify-request Achọrọ nkwenye arịrịọ 5 / 3600 s

Sends a 6-digit verification code to the account email address (the code is also in the subject). No email is sent if the address is already verified. Within 60 seconds of the last code no new code is issued and no email is sent: the response is `sent:false`, `already_sent:true` and `retry_after` (seconds); the code already sent stays valid.

Ọ naghị anara paramita ọ bụla.

Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "sent": true,
        "already_verified": false,
        "already_sent": false,
        "retry_after": 60,
        "expires_in": 600
    }
}
Njehie pụrụ iche nke endpoint unavailable
POST /v1/auth/verify-confirm Achọrọ nkwenye arịrịọ 10 / 900 s

Verifies the 6-digit code from the email and confirms the address.

Paramita Ụdị Achọrọ Nkọwa
code string ee 6 digits. Whitespace is ignored.
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "verified": true,
        "already_verified": false
    }
}
Njehie pụrụ iche nke endpoint bad_request rate_limited
GET /v1/me Achọrọ nkwenye arịrịọ 120 / 60 s

Profile, balance, current multiplier and open session state.

Ọ naghị anara paramita ọ bụla.

Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "id": 4271,
        "username": "ayse",
        "email": "ayse@example.com",
        "email_verified": false,
        "linked_identities": [
            {
                "provider": "google",
                "email": "ayse@gmail.com"
            }
        ],
        "balance": "12.45000000",
        "multiplier": {
            "referral": "1.30",
            "ad_boost": "0.50",
            "streak": "0.20",
            "total": "2.00",
            "cap": "5.0"
        },
        "referrals": {
            "total": 7,
            "active": 3
        },
        "streak": {
            "enabled": true,
            "days": 16,
            "bonus": "0.20",
            "tier": "silver",
            "next": {
                "key": "gold",
                "days": 30,
                "bonus": "0.35",
                "in": 14
            },
            "expires_at": "2026-08-02T18:00:00+00:00",
            "best": 41
        },
        "session": {
            "status": "active",
            "ends_at": "2026-07-31T18:00:00+00:00"
        },
        "dormancy": {
            "enabled": true,
            "idle_days": 12,
            "warn_days": 150,
            "forfeit_days": 180,
            "days_left": 168,
            "warned": false,
            "forfeited_at": null
        },
        "support": {
            "unread": 1
        }
    }
}
POST /v1/me/profile Achọrọ nkwenye arịrịọ 20 / 3600 s

Updates the display name and email address. ⚠️ Changing the email RESETS verification and sends a 6-digit code to the new address. Once the new address is verified, social sign-in links (Google) that do not match it are removed and a `security` notification is written for the user.

Paramita Ụdị Achọrọ Nkọwa
display_name string — Up to 64 characters; empty falls back to the username
email string — New address; verification resets when it changes
referral_nudge_optout string — "1" turns off the inviter reminder, "0" turns it on
locale string — Account language. ⚠️ NOTIFICATION TEXT IS WRITTEN FROM THIS COLUMN and frozen at send time. An inactive code falls back to the default.
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "display_name": "Ayşe",
        "email": "ayse@example.com",
        "email_verified": false,
        "verification_sent": true
    }
}
Njehie pụrụ iche nke endpoint email_taken no_changes
POST /v1/me/delete Achọrọ nkwenye arịrịọ 3 / 3600 s

Deletes the account from inside the app. ⚠️ The username must be typed to confirm. The account closes immediately, sessions are revoked and after 30 days the identity is erased irreversibly; until then support can undo it.

Paramita Ụdị Achọrọ Nkọwa
username string ee The account username — intent confirmation
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "deleted": true,
        "revoked_sessions": 2
    }
}
Njehie pụrụ iche nke endpoint username_mismatch deletion_failed
GET /v1/me/transactions Achọrọ nkwenye arịrịọ 60 / 60 s

Balance ledger: every movement, its amount and the balance at that moment. Cursor pagination (`before_id`) — no row is skipped when new entries arrive.

Paramita Ụdị Achọrọ Nkọwa
limit int — 1–100, default 50
before_id int — `next_before_id` from the previous response
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "total": 128,
        "next_before_id": 4412,
        "items": [
            {
                "id": 4461,
                "direction": "credit",
                "amount": "0.30000000",
                "balance_after": "12.45000000",
                "reference": "mining_session",
                "description": "Oturum ödülü",
                "created_at": "2026-07-31T18:00:00+00:00"
            }
        ]
    }
}

Social login

POST /v1/auth/social-start Enweghị nkwenye arịrịọ 10 / 60 s

Starts a social login flow and returns the URL to open in a browser.

Paramita Ụdị Achọrọ Nkọwa
provider string ee Only `google`.
device_id string ee Device id
handover_challenge string ee PKCE S256 (base64url, 43 chars) — binds the handover code to this app
native_failure string — Why the on-device account picker failed, if it did; only written to the server log
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "flow_id": "a1b2…",
        "start_url": "https://…/api/v1/oauth/start?f=a1b2…",
        "expires_in": 600
    }
}
Njehie pụrụ iche nke endpoint bad_request unavailable
POST /v1/auth/handover Enweghị nkwenye arịrịọ 10 / 60 s

Exchanges the handover code from social login for an access token. Single use, valid 60 seconds.

Paramita Ụdị Achọrọ Nkọwa
code string ee Handover code from the deep link
handover_verifier string ee Plain verifier for the challenge sent to social-start
device_id string ee Device id
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "token": "…",
        "expires_at": "2026-08-29T18:00:00+00:00",
        "user": {
            "username": "ayse"
        }
    }
}
Njehie pụrụ iche nke endpoint invalid_grant account_suspended
GET /v1/oauth/start Enweghị nkwenye arịrịọ 20 / 60 s

Redirects the flow to the provider (302). Opened in a browser; does not return JSON.

Paramita Ụdị Achọrọ Nkọwa
f string ee Flow id returned by auth/social-start
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "302": "https://accounts.google.com/o/oauth2/v2/auth?…"
    }
}
Njehie pụrụ iche nke endpoint not_found
GET /v1/oauth/google Enweghị nkwenye arịrịọ 20 / 60 s

Google callback. THIS IS THE URL TO PASTE INTO THE GOOGLE CONSOLE. Not called by the app.

Paramita Ụdị Achọrọ Nkọwa
code string ee Authorization code from Google
state string ee CSRF value identifying the flow
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "302": "priamnetwork://auth?code=…"
    }
}
Njehie pụrụ iche nke endpoint not_found

Missions

GET /v1/missions Achọrọ nkwenye arịrịọ 60 / 60 s

Published missions and the user's status on each. ⚠️ When the system is off it returns `enabled: false` and an EMPTY list.

Ọ naghị anara paramita ọ bụla.

Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "enabled": true,
        "items": [
            {
                "id": 12,
                "kind": "info",
                "reward": "8.00000000",
                "title": "Bizi takip et",
                "summary": "…",
                "steps": [
                    "Profili aç",
                    "Takip et"
                ],
                "field_label": "Kullanıcı adın",
                "target_url": "https://…",
                "quota": 500,
                "quota_used": 340,
                "ends_at": null,
                "status": "submitted",
                "reject_reason": ""
            }
        ]
    }
}
POST /v1/missions/submit Achọrọ nkwenye arịrịọ 10 / 3600 s

Submits an entry for a mission. ⚠️ The reward lands on the balance when an admin APPROVES it, not on submission.

Paramita Ụdị Achọrọ Nkọwa
mission_id int ee Mission id
payload string ee The requested value (max 2000 chars)
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "status": "submitted"
    }
}
Njehie pụrụ iche nke endpoint missions_disabled not_found already_submitted quota_full payload_too_long image_required
POST /v1/missions/submit-image Achọrọ nkwenye arịrịọ 5 / 3600 s

Submits a SCREENSHOT for a mission (multipart). ⚠️ Only missions with `answer_type = image` accept it. The reward lands on the balance when an admin APPROVES it, not on submission.

Paramita Ụdị Achọrọ Nkọwa
mission_id int ee Mission id
file file ee JPEG or PNG, up to 5 MB. ⚠️ PDF and SVG are refused: both can carry executable code. The image is re-encoded on the server (EXIF/GPS is stripped).
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "status": "submitted"
    }
}
Njehie pụrụ iche nke endpoint missions_disabled not_found already_submitted quota_full text_required proof_rejected

Support

GET /v1/support Achọrọ nkwenye arịrịọ 60 / 60 s

The user's own support tickets. ⚠️ Message BODIES are not returned, only the header; use `support/thread` for the conversation.

Ọ naghị anara paramita ọ bụla.

Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "topics": [
            "general",
            "account",
            "mining"
        ],
        "body_max": 2000,
        "subject_max": 120,
        "max_active": 3,
        "items": [
            {
                "id": 4,
                "topic": "mining",
                "subject": "Oturum başlamıyor",
                "status": "open",
                "last_sender": "admin",
                "message_count": 3,
                "unread": 1,
                "last_message_at": "2026-09-26T09:10:00Z",
                "created_at": "2026-09-25T18:00:00Z"
            }
        ]
    }
}
GET /v1/support/thread Achọrọ nkwenye arịrịọ 120 / 60 s

Messages of one ticket. ⚠️ Does NOT mark as read — that is `support/read`. If fetching counted as reading, an app opened and closed on a notification would clear the unread mark unseen.

Paramita Ụdị Achọrọ Nkọwa
ticket_id int ee Ticket id
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "id": 4,
        "topic": "mining",
        "subject": "Oturum başlamıyor",
        "status": "open",
        "messages": [
            {
                "id": 11,
                "sender": "user",
                "body": "Şimşeğe basınca hiçbir şey olmuyor.",
                "has_image": true,
                "created_at": "2026-09-25T18:00:00Z"
            }
        ]
    }
}
Njehie pụrụ iche nke endpoint not_found
GET /v1/support/image Achọrọ nkwenye arịrịọ 240 / 60 s

Returns the attachment (screenshot) of a message as BYTES; only to the ticket owner. Someone else's, missing or attachment-less messages get the SAME `not_found`. The response is `no-store`: it must not be cached or written to disk.

Paramita Ụdị Achọrọ Nkọwa
message_id int ee Message id (`id` in the thread)
Nzaghachi ọmụmaatụ
image/jpeg | image/png (bayt)
Njehie pụrụ iche nke endpoint not_found
POST /v1/support/open Achọrọ nkwenye arịrịọ 5 / 3600 s

Opens a new support ticket. ⚠️ LINKS ARE REFUSED in the text (it keeps a phishing address from being opened in the admin panel); a screenshot can be attached with `support/reply-image`.

Paramita Ụdị Achọrọ Nkọwa
topic string — Topic code (see `topics` in the `support` response). Empty means `general`.
subject string — Subject (max 120 chars). Empty means the first line of the message.
body string ee Message (max 2000 chars)
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "ticket_id": 4,
        "status": "open"
    }
}
Njehie pụrụ iche nke endpoint link_not_allowed body_too_long too_many_tickets too_many_messages too_fast
POST /v1/support/open-image Achọrọ nkwenye arịrịọ 5 / 3600 s

Opens a new support ticket WITH A SCREENSHOT (multipart). Same rules as `support/open`; a body is still required.

Paramita Ụdị Achọrọ Nkọwa
body string ee Message (max 2000 chars)
file file ee JPEG or PNG, up to 5 MB. Re-encoded on the server.
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "ticket_id": 4,
        "status": "open"
    }
}
Njehie pụrụ iche nke endpoint link_not_allowed body_too_long image_rejected too_many_tickets too_many_messages too_fast
POST /v1/support/reply Achọrọ nkwenye arịrịọ 20 / 3600 s

Replies to an existing ticket. ⚠️ A `solved` ticket REOPENS — otherwise a "no, it did not work" message would fall outside the queue. A `closed` ticket is refused.

Paramita Ụdị Achọrọ Nkọwa
ticket_id int ee Ticket id
body string ee Message (max 2000 chars)
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "status": "open"
    }
}
Njehie pụrụ iche nke endpoint not_found ticket_closed link_not_allowed body_too_long too_many_messages too_fast
POST /v1/support/reply-image Achọrọ nkwenye arịrịọ 10 / 3600 s

Replies to a ticket with a SCREENSHOT (multipart). ⚠️ A body is still REQUIRED: an image-only message does not tell the person in the admin panel what they are looking at.

Paramita Ụdị Achọrọ Nkọwa
ticket_id int ee Ticket id
body string ee Message (max 2000 chars)
file file ee JPEG or PNG, up to 5 MB. ⚠️ PDF and SVG are refused: both can carry executable code. The image is re-encoded on the server (EXIF/GPS is stripped).
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "status": "open"
    }
}
Njehie pụrụ iche nke endpoint not_found ticket_closed link_not_allowed body_too_long image_rejected too_many_messages too_fast
POST /v1/support/read Achọrọ nkwenye arịrịọ 60 / 3600 s

Marks admin replies as read.

Paramita Ụdị Achọrọ Nkọwa
ticket_id int ee Ticket id
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "status": "ok"
    }
}
Njehie pụrụ iche nke endpoint not_found

Mining

POST /v1/mining/start Achọrọ nkwenye arịrịọ 5 / 60 s

Starts a session. The multiplier is computed now and frozen onto the session; later changes in referral activity do not alter it.

Ọ naghị anara paramita ọ bụla.

Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "session_id": 128,
        "ends_at": "2026-07-31T18:00:00+00:00",
        "multiplier": "1.80",
        "expected_amount": "0.54000000"
    }
}
Njehie pụrụ iche nke endpoint session_already_active mining_disabled account_suspended ad_required
GET /v1/mining/status Achọrọ nkwenye arịrịọ 120 / 60 s

Remaining time and expected reward of the open session.

Ọ naghị anara paramita ọ bụla.

Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "status": "active",
        "seconds_left": 43200,
        "expected_amount": "0.54000000",
        "claimable": false
    }
}
POST /v1/mining/claim Achọrọ nkwenye arịrịọ 10 / 60 s

Credits a finished session. A session is never credited twice.

Ọ naghị anara paramita ọ bụla.

Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "credited": "0.54000000",
        "balance": "12.99000000"
    }
}
Njehie pụrụ iche nke endpoint no_session session_not_finished already_claimed

Referrals

GET /v1/referrals Achọrọ nkwenye arịrịọ 60 / 60 s

People you referred and how many are mining right now. Only active ones count. Cursor pagination (`before_id`), ordered by `id DESC` — `mining_now` is live and stays out of the ordering, otherwise rows would repeat or vanish across pages. `total` and `active` come from their own query, not from the page.

Paramita Ụdị Achọrọ Nkọwa
limit int — Max 100 (default 50)
before_id int — `next_before_id` from the previous response
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "total": 137,
        "active": 3,
        "cap": 40,
        "limit": 50,
        "next_before_id": 812,
        "items": [
            {
                "id": 812,
                "username": "mehmet",
                "mining_now": true,
                "status": "active",
                "joined_at": "2026-06-01T10:00:00+00:00",
                "nudge_after": null
            }
        ]
    }
}
POST /v1/referrals/nudge Achọrọ nkwenye arịrịọ 20 / 86400 s

Sends a reminder notification to someone you referred whose mining session is off. Once per 12 hours per target. Only your own referrals can be reached.

Paramita Ụdị Achọrọ Nkọwa
user_id int ee `items[].id` from the `referrals` list.
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "sent": true,
        "nudge_after": "2026-08-28T06:00:00+00:00"
    }
}
Njehie pụrụ iche nke endpoint not_eligible rate_limited

Ads

GET /v1/ads/status Achọrọ nkwenye arịrịọ 60 / 60 s

Ads watched in the current slice of the running session (the session is split into `slices` equal parts), ads watched across the whole session (`session_watched`, capped by `daily_total`), remaining quota, when the next slice starts and any live boost. Rewards are NOT granted here — Google verifies server-to-server.

Ọ naghị anara paramita ọ bụla.

Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "watched_today": 3,
        "daily_limit": 5,
        "remaining": 2,
        "slice_limit": 5,
        "slice_count": 2,
        "daily_total": 10,
        "session_watched": 3,
        "available": true,
        "next_available_at": null,
        "slice_index": 1,
        "next_slice_at": "2026-07-30T14:12:00+00:00",
        "next_slice_seconds": 35520,
        "boost": {
            "active": true,
            "multiplier": "0.6667",
            "prm": "0.2000",
            "expires_at": "2026-07-30T19:00:00+00:00",
            "seconds_left": 61200
        },
        "reward": {
            "multiplier": "0.6667",
            "hours": 24,
            "max_stacks": 1,
            "session_step": "0.6667",
            "prm": "0.2000"
        },
        "ad_unit": "ca-app-pub-…/…",
        "ad_unit_fallback": "",
        "required_to_start": true,
        "test_mode": false
    }
}
POST /v1/ads/fill Achọrọ nkwenye arịrịọ 30 / 60 s

Reports the outcome of a rewarded-ad load attempt. Sessions start with an ad, so fill rate is a direct measure of revenue: every unfilled attempt means a session that started without an ad.

Paramita Ụdị Achọrọ Nkọwa
result string ee filled · no_fill · error · consent · offline
unit string — primary · fallback · none (defaults to none)
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "recorded": true
    }
}

Notifications

POST /v1/push/register Achọrọ nkwenye arịrịọ 10 / 60 s

Registers the device FCM token. The app must call this on every <code>onNewToken</code>, independently of the login flow. Safe to call repeatedly for the same device.

Paramita Ụdị Achọrọ Nkọwa
device_id string ee Persistent device id (same as in the login request).
fcm_token string ee Firebase registration token.
lang string — Device language. Notification text is picked by this; the default language is used when empty.
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "registered": true,
        "lang": "tr"
    }
}
Njehie pụrụ iche nke endpoint bad_request
GET /v1/push/list Achọrọ nkwenye arịrịọ 60 / 60 s

In-app notification list. Push is not lossless (device off, permission denied, dead token) — this list is the durable record, and the text is stored already resolved to the language used at send time. `type` values: `announcement`, `mining` (session closed and reward credited), `kyc`, `withdrawal`, `wallet`.

Paramita Ụdị Achọrọ Nkọwa
limit int — Max rows (default 30, max 100).
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "unread": 2,
        "items": [
            {
                "id": 12,
                "type": "announcement",
                "title": "Yeni sürüm",
                "body": "v1.4 yayında.",
                "data": {
                    "type": "announcement",
                    "id": "7"
                },
                "read": false,
                "created_at": "2026-08-04T10:00:00+00:00"
            }
        ]
    }
}
POST /v1/push/read Achọrọ nkwenye arịrịọ 60 / 60 s

Marks a notification read. Without <code>id</code>, marks all of the user's unread notifications.

Paramita Ụdị Achọrọ Nkọwa
id int — Notification id. All when empty.
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "marked": 3,
        "unread": 0
    }
}
POST /v1/push/delete Achọrọ nkwenye arịrịọ 60 / 60 s

Deletes a notification. Without <code>id</code>, deletes the user's READ notifications — unread ones are kept, because destroying an unseen notification in one tap would lose something the user never saw.

Paramita Ụdị Achọrọ Nkọwa
id int — Notification id. All read ones when empty.
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "deleted": 3,
        "unread": 0
    }
}

Content

GET /v1/config Enweghị nkwenye arịrịọ 120 / 60 s

Startup configuration — which sign-in methods are ENABLED. <b>No auth</b>: social buttons are drawn before sign-in, when no token exists yet. ⚠️ Returns only availability; never a key, app id or secret.

Ọ naghị anara paramita ọ bụla.

Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "oauth": {
            "google": true,
            "google_client_id": "…"
        },
        "min_app_version": "",
        "mining_enabled": true
    }
}
Njehie pụrụ iche nke endpoint unavailable
GET /v1/content/languages Enweghị nkwenye arịrịọ 60 / 60 s

Languages enabled for the app, and the default.

Ọ naghị anara paramita ọ bụla.

Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "default": "en",
        "items": [
            {
                "code": "tr",
                "name": "Türkçe",
                "dir": "ltr"
            }
        ]
    }
}
GET /v1/content/translations Enweghị nkwenye arịrịọ 60 / 60 s

The app language pack. Returns an `ETag`; send `If-None-Match` and get **304** when unchanged. Editing a string in the panel changes the stamp immediately — no app release needed to fix wording.

Paramita Ụdị Achọrọ Nkọwa
lang string — Language code; default if omitted
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "lang": "tr",
        "version": "2026-07-30T18:00:00+00:00",
        "strings": {
            "auth": {
                "sign_in": "Giriş yap"
            }
        }
    }
}
Njehie pụrụ iche nke endpoint unknown_language
GET /v1/content/announcements Enweghị nkwenye arịrịọ 60 / 60 s

Published announcements.

Paramita Ụdị Achọrọ Nkọwa
lang string — Language code
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "lang": "tr",
        "items": [
            {
                "id": 4,
                "slug": "v2-lansman",
                "title": "V2 geliyor",
                "body": "…",
                "image_url": "/assets/uploads/2026/07/4fb3b4fddb59d0b05cec86de8aded35a.jpg",
                "link_url": "https://priamnetwork.com/tr/yol-haritasi",
                "published_at": "2026-07-01T09:00:00+00:00"
            }
        ]
    }
}
GET /v1/content/social Enweghị nkwenye arịrịọ 60 / 60 s

Social media accounts. An account left empty or `#` in the panel is OMITTED from the response, so the app never draws a dead button.

Ọ naghị anara paramita ọ bụla.

Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "items": [
            {
                "key": "twitter",
                "label": "X / Twitter",
                "url": "https://…"
            }
        ]
    }
}
GET /v1/content/partners Enweghị nkwenye arịrịọ 60 / 60 s

Published partners. No pagination by design: the list is entered by hand and is dozens of rows, not thousands. Rows with `is_active = 0` are never returned. Unlike blog, this endpoint DOES fall back to the default language — a partner name is a proper noun and hiding an untranslated row would drop the organisation from the list. `link_url` is raw; the client filters the scheme.

Paramita Ụdị Achọrọ Nkọwa
lang string — Language code
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "lang": "tr",
        "items": [
            {
                "id": 3,
                "title": "Örnek Kurum",
                "body": "Ödeme altyapısı sağlayıcısı.",
                "logo_url": "/assets/uploads/2026/08/ornek.png",
                "link_url": "https://ornek.test"
            }
        ]
    }
}
GET /v1/content/faq Enweghị nkwenye arịrịọ 60 / 60 s

Frequently asked questions and their categories.

Paramita Ụdị Achọrọ Nkọwa
lang string — Language code
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "lang": "tr",
        "groups": [
            {
                "key": "general",
                "label": "Genel"
            }
        ],
        "items": [
            {
                "id": 12,
                "question": "Priam Network tam olarak nedir?",
                "answer": "Android için topluluk destekli bir madencilik ağı.\\nKatkı, cihazın ağda **düzenli ve doğrulanabilir biçimde bulunması** üzerinden ölçülür.",
                "group": "general",
                "group_label": "Genel"
            }
        ]
    }
}
GET /v1/content/whitepaper Enweghị nkwenye arịrịọ 60 / 60 s

Protocol whitepaper, section by section.

Paramita Ụdị Achọrọ Nkọwa
lang string — Language code
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "lang": "tr",
        "title": "Priam Network Whitepaper",
        "lead": "Ağın nasıl çalıştığı…",
        "updated": "2026-07-01",
        "sections": [
            {
                "title": "Genel bakış",
                "body": "Priam Network, mobil cihazların…"
            }
        ]
    }
}

Blog

GET /v1/blog/list Enweghị nkwenye arịrịọ 60 / 60 s

Published blog posts. Pagination uses a TWO-PART cursor: `before_published_at` + `before_id`, ordered by `published_at DESC, id DESC` — an id-only cursor is not enough because publish dates can be scheduled. `featured` is NOT part of the ordering. No language fallback: a post without text in the requested language does not appear at all.

Paramita Ụdị Achọrọ Nkọwa
lang string — Language code; unknown values fall back to the default
limit int — 1–50, default 20
before_published_at string — `next_before_published_at` from the previous response — send WITH `before_id`
before_id int — `next_before_id` from the previous response
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "lang": "tr",
        "total": 5,
        "limit": 20,
        "next_before_published_at": "2026-07-19 08:00:00",
        "next_before_id": 3,
        "items": [
            {
                "id": 3,
                "slug": "madencilik-nasil-calisir",
                "title": "Madencilik nasıl çalışır",
                "excerpt": "Cihazın hesaplama yapmıyor…",
                "cover_url": "/assets/uploads/2026/07/4fb3b4fddb59d0b05cec86de8aded35a.jpg",
                "featured": false,
                "published_at": "2026-07-19T08:00:00+00:00"
            }
        ]
    }
}
GET /v1/blog/post Enweghị nkwenye arịrịọ 60 / 60 s

Full body of one post, addressed by SLUG (slug is per-language and is the post identity in that language). Unpublished posts also return `post_not_found` — saying "exists but draft" would leak draft titles. Body is `blocks` format: newline-separated lines in a markdown subset. The server emits no HTML; parsing is the client's job.

Paramita Ụdị Achọrọ Nkọwa
lang string — Language code
slug string ee Post slug in that language
Nzaghachi ọmụmaatụ
{
    "status": "success",
    "data": {
        "lang": "tr",
        "id": 3,
        "slug": "madencilik-nasil-calisir",
        "title": "Madencilik nasıl çalışır",
        "excerpt": "Cihazın hesaplama yapmıyor…",
        "body": "Giriş paragrafı.\n### Alt başlık\n- madde",
        "cover_url": null,
        "featured": false,
        "published_at": "2026-07-19T08:00:00+00:00"
    }
}
Njehie pụrụ iche nke endpoint post_not_found

03Njehie

Njehie na-eji koodu ọnọdụ HTTP a na-ejikarị; ubi error.code dị n'ahụ nzaghachi ahụ bụ nke igwe nwere ike ịgụ, ọ dabereghịkwa n'asụsụ. Ngwa na-eji API kwesịrị ịdabere na koodu ahụ, ọ bụghị n'ozi ahụ. Ozi na-agbaso Accept-Language.

Koodu njehie a na-ahụkarị

Koodu HTTP Ihe ọ pụtara
bad_request 400 Malformed request or missing parameter.
unauthorized 401 Missing, expired or revoked token.
forbidden 403 Account suspended.
not_found 404 No such endpoint.
method_not_allowed 405 Method not accepted by this endpoint.
rate_limited 429 Rate limit exceeded. Retry after retry_after seconds.
app_outdated 426 App version too old, update required.
server_error 500 Unexpected server error.
unavailable 503 Service temporarily unavailable.

04Oke arịrịọ

Oke dị iche iche dị ka endpoint si dị, e bipụtakwara ha na kaadị ọ bụla. Maka arịrịọ e nyochara njirimara ha, a na-agụ ọnụ dabere na onye ọrụ, maka ndị a na-amaghị aha dabere na IP. Ịgafe oke na-eweghachi 429 ya na Retry-After; nzaghachi ọ bụla na-ebukwa X-RateLimit-Limit, X-RateLimit-Remaining na X-RateLimit-Reset.

Ọ bụrụ na ị chọrọ oke dị elu karị, deere anyị site na nkwado.

Ị ka nọ na nsogbu?

Deere anyị. Anyị na-aza n'ime ụbọchị ọrụ abụọ.