X-CARD Dynamic Card Service

Overview
X-CARD delivers in-app announcement cards without redeploying your front end. With a single API you can create, sort, expire, and measure operational messages that render across web and mobile surfaces.
Quick Start
- Visit https://card.xabcstack.com to see sample cards and sign in using your
sk-prefixed XAPI private key for management calls. - Call
POST /x-cardto publish a card with title, content, links, and lifetime in days. - Fetch cards on the client with
GET /x-card/{pk-...}βthe public key can safely live in front-end code. - Update copy or priority via
PUT /x-card/{id}and remove obsolete cards usingDELETE /x-card/{id}.
Key Capabilities
- Centralized content drops: Priority and expiration fields control ordering and auto-offline behavior.
- Zero-deploy updates: All copy and imagery lives behind the API, enabling rapid ops iteration.
- Multi-channel ready: The same public key feeds web, native, or desktop clients securely.
- Event hooks: Create/update/delete events emit to the event bus for downstream dashboards or audits.
API Reference
| Method | Path | Description |
|---|---|---|
POST | /x-card | Create a card (requires sk- private key) |
GET | /x-card | Admin view of cards for the account (all=true shows history) |
GET | /x-card/{pk-...} | Fetch public card list with an optional limit |
PUT/POST | /x-card/{id} | Update card metadata or priority |
DELETE | /x-card/{id} | Delete a card |
Public endpoints do not need authentication; private endpoints return full management data.
Example: Publish a Maintenance Notice
export XAPI_KEY="your-xapi-key" # sk- prefixed key
curl -X POST https://api.xabcstack.com/x-card \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $XAPI_KEY" \
-d '{
"title": "Scheduled Maintenance",
"content": "We'll upgrade systems on Sep 1, 02:00-04:00 UTC. Please save work in advance.",
"link": "https://status.yoursite.com",
"priority": 10,
"days": 3
}'
FAQ
- Can I attach images? Include the
image_urlfield during creation and clients will render it inline. - Limit card impressions? Set
max_viewsto hide the card after a number of displays. - Bulk operations? Use
GET /x-card?all=trueto fetch all cards and synchronize with your admin tools via the event bus.