https://api.dev.bifrostgaming.com/v1/graphqlpartnerRemoveRagnarokBan
v1Mark a Ragnarok ban as INACTIVE. The row is NOT deleted — its playerBanStatus is flipped from ACTIVE to INACTIVE, the supplied removeBanReason is recorded, and updatedAt is refreshed. INACTIVE bans no longer appear in partnerGetRagnarokBans but remain searchable via partnerSearchRagnarokBans.
Operation Type
Mutation
Rate Limit: 60 requests / 60 seconds per partner
Important usage notes
- The row is not deleted — only its playerBanStatus is flipped to INACTIVE. The full record (including removeBanReason) remains queryable via partnerSearchRagnarokBans.
- updatedAt is automatically refreshed by the server when the ban is removed.
- Idempotent: calling this on an already-INACTIVE ban succeeds and simply re-records the new removeBanReason.
- Returns 404 if no ban exists with the supplied ragnarokBanId.
Input Fields
| Field | Type | Required | Description |
|---|---|---|---|
partnerId | String! | Required | Your unique partner identifier. |
partnerEncryptionKey | String! | Required | Your partner encryption key (Base64-encoded). |
ragnarokBanId | String! | Required | The UUID of the ban to mark INACTIVE. Use partnerSearchRagnarokBans to resolve this from an appeal code if needed. |
removeBanReason | String! | Required | Free-text reason for removing the ban (e.g. "Successful appeal — evidence overturned"). Stored on the row alongside the new INACTIVE status. |
Code Examples
curl -X POST https://api.dev.bifrostgaming.com/v1/graphql \
-H "Content-Type: application/json" \
-d '{
"query": "mutation PartnerRemoveRagnarokBan($partnerId: String!, $partnerEncryptionKey: String!, $ragnarokBanId: String!, $removeBanReason: String!) { partnerRemoveRagnarokBan(partnerId: $partnerId, partnerEncryptionKey: $partnerEncryptionKey, ragnarokBanId: $ragnarokBanId, removeBanReason: $removeBanReason) { ragnarokBanId ragnarokBanAppealCode playerBanStatus updatedAt } }",
"variables": {
"partnerId": "your-partner-id",
"partnerEncryptionKey": "your-base64-encryption-key",
"ragnarokBanId": "9c54e3a2-7f8d-4a1b-9c2e-6a5d4e3f2b1c",
"removeBanReason": "Successful appeal — evidence overturned by guild moderation team."
}
}'Postman Collection
Download a ready-to-use Postman collection for this endpoint. Import it into Postman to start testing immediately.
How to import into Postman
- Open Postman and click Import (top-left)
- Drag and drop the downloaded
.jsonfile, or click Upload Files and select it - Click Import to confirm
- The collection appears in your sidebar — expand it and select the request
- In the Body tab, update the placeholder values (
your-partner-id, etc.) with your actual credentials - Click Send
The collection uses Postman's GraphQL body type, which provides syntax highlighting and variable editing. Make sure your Postman version is 7.2+ for GraphQL support.
Success Response200
{
"data": {
"partnerRemoveRagnarokBan": {
"ragnarokBanId": "9c54e3a2-7f8d-4a1b-9c2e-6a5d4e3f2b1c",
"ragnarokBanAppealCode": "RK-K4M9Q2",
"playerBanStatus": "INACTIVE",
"updatedAt": "2026-04-07T15:01:42.117Z"
}
}
}Error Responses
Response Fields
| Field | Type | Required | Description |
|---|---|---|---|
ragnarokBanId | String | Required | The UUID of the updated ban. |
ragnarokBanAppealCode | String | Required | The unchanged appeal code of the updated ban. |
playerBanStatus | String | Required | The new status — always "INACTIVE" on success. |
updatedAt | String | Required | The new updatedAt timestamp (ISO 8601). |