{
  "app": {
    "name": "Mokabla",
    "url": "https://www.mokabla.com",
    "description": "Real interview questions from companies in Egypt, organised by company. Access is sold per company for 30 days."
  },
  "page": {
    "kind": "question",
    "title": "Question · scalable-rest-api-design",
    "humanPath": "/en/c/itworx/scalable-rest-api-design",
    "humanOnly": false
  },
  "identity": {
    "class": "declared",
    "agent": "ClaudeBot",
    "operator": "Anthropic",
    "verified": false,
    "reason": "The user agent is ClaudeBot (Anthropic), which identifies itself as an AI agent.",
    "signals": [
      "Known agent user agent"
    ],
    "claimable": false
  },
  "state": {
    "question": {
      "slug": "scalable-rest-api-design",
      "title": "Scalable REST API Design",
      "difficulty": "medium",
      "tags": [
        "system-design",
        "technical",
        "swe",
        "backend"
      ],
      "is_free": true,
      "locked": false,
      "frequency": 0.667,
      "last_reported_at": "2026-03-27T10:13:08.862314Z",
      "url": "https://www.mokabla.com/en/c/itworx/scalable-rest-api-design",
      "agent": {
        "page": "https://www.mokabla.com/agent/en/c/itworx/scalable-rest-api-design",
        "question": "https://www.mokabla.com/agent/_call/get_question?company=itworx&question=scalable-rest-api-design"
      },
      "company": {
        "slug": "itworx",
        "name_en": "ITWorx"
      },
      "body_md": "## What they ask\nThe technical round is run by a senior engineer and mixes three things: a design discussion, a bit of live coding and a scenario or two. The design part is the one people remember. After a few minutes on your stack (the recruiter screen already asked about JavaScript, React and Node.js), you are asked to design a REST API for a service that has to keep working as traffic grows. Typical framing: an orders endpoint for a retail client, or a notifications service used by several apps.\n\nYou are expected to talk through resources and routes, request and response shapes, pagination, authentication, rate limiting, caching, how the service scales horizontally, what the database looks like and how you keep a POST idempotent when a client retries.\n\nThe scenario part is usually a short Node snippet with a bug (a promise that is never awaited, an off-by-one in pagination, an unhandled rejection) that you debug out loud.\n\n## What they look for\n- A clean resource model before any talk of scaling.\n- Tradeoffs stated explicitly: offset vs cursor pagination, cache invalidation cost, when a queue is worth it.\n- Failure modes: what happens when the DB is slow, when a downstream call times out, when the same request arrives twice.\n- Calm, readable debugging rather than guessing.",
      "follow_ups_md": "- How would you version this API without breaking existing mobile clients?\n- Where would you put caching, and how would you invalidate it on writes?\n- The list endpoint became slow at 2 million rows. What do you check first?\n- How do you make the create endpoint safe against duplicate submissions?"
    },
    "paid": false,
    "access": "Question bodies are paid content: a person buys 30 days of access per company (200 EGP or 200 points) in the human app. Agents get titles, tags and difficulty; bodies only for free questions."
  },
  "actions": [
    {
      "name": "get_question",
      "description": "One question with its body. Bodies are paid content unless the question is free.",
      "permission": "allow",
      "sideEffect": "read",
      "input": {
        "company": "string",
        "question": "string"
      },
      "href": "https://www.mokabla.com/agent/_call/get_question?company=itworx&question=scalable-rest-api-design",
      "ready": true,
      "missing": [],
      "humanPath": "https://www.mokabla.com/en/pricing"
    },
    {
      "name": "list_questions",
      "description": "The questions reported at a company: titles, tags, difficulty, whether each is free or paid.",
      "permission": "allow",
      "sideEffect": "read",
      "input": {
        "company": "string",
        "page": "number?"
      },
      "href": "https://www.mokabla.com/agent/_call/list_questions?company=itworx",
      "ready": true,
      "missing": []
    },
    {
      "name": "buy_access",
      "description": "Buy 30 days of access to a company.",
      "permission": "block",
      "reason": "This action is for people only",
      "ruleId": "R1",
      "sideEffect": "payment",
      "input": {
        "company": "string"
      },
      "href": "https://www.mokabla.com/agent/_call/buy_access?company=itworx",
      "ready": true,
      "missing": [],
      "humanPath": "https://www.mokabla.com/en/pricing"
    },
    {
      "name": "post_comment",
      "description": "Comment on a question.",
      "permission": "block",
      "reason": "This action is for people only",
      "ruleId": "R1",
      "sideEffect": "write",
      "input": {
        "question": "string",
        "text": "string"
      },
      "href": "https://www.mokabla.com/agent/_call/post_comment?question=scalable-rest-api-design",
      "ready": false,
      "missing": [
        "text"
      ],
      "humanPath": "https://www.mokabla.com/en/companies"
    }
  ],
  "navigate": [
    {
      "label": "This question, as data (free questions only)",
      "href": "https://www.mokabla.com/agent/_call/get_question?company=itworx&question=scalable-rest-api-design"
    },
    {
      "label": "All questions at this company",
      "href": "https://www.mokabla.com/agent/_call/list_questions?company=itworx"
    },
    {
      "label": "The company page",
      "href": "https://www.mokabla.com/agent/en/c/itworx"
    },
    {
      "label": "Scalable REST API Design · page",
      "href": "https://www.mokabla.com/agent/en/c/itworx/scalable-rest-api-design"
    }
  ],
  "notices": [
    {
      "severity": "info",
      "message": "This classification is final for the session: it came from a strong signal, not a guess. The human pages are not served to agents."
    },
    {
      "severity": "info",
      "message": "Unverified agents are read-only. Signed requests (Web Bot Auth) are the path to write access."
    }
  ],
  "meta": {
    "requestId": "ag_31eb2db94497",
    "policyVersion": "mokabla-2026-11-03",
    "generatedAt": "2026-11-03T18:40:48.892Z",
    "jsonUrl": "https://www.mokabla.com/agent/en/c/itworx/scalable-rest-api-design?format=json",
    "manifestUrl": "https://www.mokabla.com/.well-known/agentgate.json",
    "humanUrl": "https://www.mokabla.com/en/c/itworx/scalable-rest-api-design",
    "humanClaimUrl": "https://www.mokabla.com/agent/_claim/human?to=%2Fen%2Fc%2Fitworx%2Fscalable-rest-api-design"
  }
}