naftiko: "1.0.0-alpha2" info: label: "ReqRes API - App Users" description: >- App Users surface of the ReqRes API. 19 operations. Lead operation: ReqRes App User Login. Self-contained Naftiko capability covering one ReqRes business surface. tags: - ReqRes - App Users created: "2026-05-29" modified: "2026-05-29" binds: - namespace: env keys: REQRES_API_KEY: REQRES_API_KEY REQRES_BEARER_TOKEN: REQRES_BEARER_TOKEN capability: consumes: - type: http namespace: "reqres-app-users" baseUri: "https://reqres.in" description: "ReqRes App Users business capability. Self-contained, no shared references." authentication: type: apikey key: x-api-key value: "{{env.REQRES_API_KEY}}" placement: header resources: - name: "api-app-users-login" path: "/api/app-users/login" operations: - name: "appUserLogin" method: POST description: "ReqRes App User Login" inputParameters: - name: "body" in: body type: object required: true description: "Request body payload." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "api-app-users-verify" path: "/api/app-users/verify" operations: - name: "verifyAppUserToken" method: POST description: "ReqRes Verify App User Token" inputParameters: - name: "body" in: body type: object required: true description: "Request body payload." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "api-app-users-me" path: "/api/app-users/me" operations: - name: "getAppUserMe" method: GET description: "ReqRes Current App User" outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "api-app-users" path: "/api/app-users" operations: - name: "listAppUsers" method: GET description: "ReqRes List App Users" inputParameters: - name: "X-Reqres-Env" in: header type: string required: false description: "Environment key (for example: prod or dev)." - name: "limit" in: query type: integer required: false description: "Max results (default 50)." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "createAppUser" method: POST description: "ReqRes Create App User" inputParameters: - name: "body" in: body type: object required: true description: "Request body payload." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "api-app-users-id" path: "/api/app-users/{id}" operations: - name: "getAppUser" method: GET description: "ReqRes Get App User" inputParameters: - name: "id" in: path type: string required: true description: "App user id." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "updateAppUser" method: PUT description: "ReqRes Update App User" inputParameters: - name: "id" in: path type: string required: true description: "App user id." - name: "body" in: body type: object required: true description: "Request body payload." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "deleteAppUser" method: DELETE description: "ReqRes Delete App User" inputParameters: - name: "id" in: path type: string required: true description: "App user id." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "api-app-users-id-sessions-simulate" path: "/api/app-users/{id}/sessions/simulate" operations: - name: "simulateAppUserSession" method: POST description: "ReqRes Simulate App User Session" inputParameters: - name: "id" in: path type: string required: true description: "App user id." - name: "body" in: body type: object required: true description: "Request body payload." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "api-projects-projectid-app-users" path: "/api/projects/{projectId}/app-users" operations: - name: "listProjectAppUsers" method: GET description: "ReqRes List Project App Users" inputParameters: - name: "X-Reqres-Env" in: header type: string required: false description: "Environment key (for example: prod or dev)." - name: "projectId" in: path type: string required: true description: "Project id." - name: "statuses" in: query type: string required: false description: "Filter by status (active, pending) or use \"all\"." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "api-projects-projectid-app-users-total" path: "/api/projects/{projectId}/app-users/total" operations: - name: "getProjectAppUserTotal" method: GET description: "ReqRes App Users Total" inputParameters: - name: "X-Reqres-Env" in: header type: string required: false description: "Environment key (for example: prod or dev)." - name: "projectId" in: path type: string required: true description: "Project id." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "app-me" path: "/app/me" operations: - name: "getAppSessionProfile" method: GET description: "ReqRes App User Profile" outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "app-collections" path: "/app/collections" operations: - name: "listCollectionsAppUser" method: GET description: "ReqRes List Collections (app User)" outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "app-collections-slug" path: "/app/collections/{slug}" operations: - name: "getCollectionAppUser" method: GET description: "ReqRes Get Collection (app User)" inputParameters: - name: "slug" in: path type: string required: true description: "Collection slug." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "app-collections-slug-records" path: "/app/collections/{slug}/records" operations: - name: "listRecordsAppUser" method: GET description: "ReqRes List Records (app User)" inputParameters: - name: "slug" in: path type: string required: true description: "Collection slug." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "createRecordAppUser" method: POST description: "ReqRes Create Record (app User)" inputParameters: - name: "slug" in: path type: string required: true description: "Collection slug." - name: "body" in: body type: object required: true description: "Request body payload." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "app-collections-slug-records-recordid" path: "/app/collections/{slug}/records/{recordId}" operations: - name: "getRecordAppUser" method: GET description: "ReqRes Get Record (app User)" inputParameters: - name: "slug" in: path type: string required: true description: "Collection slug." - name: "recordId" in: path type: string required: true description: "Record id." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "updateRecordAppUser" method: PUT description: "ReqRes Update Record (app User)" inputParameters: - name: "slug" in: path type: string required: true description: "Collection slug." - name: "recordId" in: path type: string required: true description: "Record id." - name: "body" in: body type: object required: true description: "Request body payload." outputRawFormat: json outputParameters: - name: result type: object value: "$." - name: "deleteRecordAppUser" method: DELETE description: "ReqRes Delete Record (app User)" inputParameters: - name: "slug" in: path type: string required: true description: "Collection slug." - name: "recordId" in: path type: string required: true description: "Record id." outputRawFormat: json outputParameters: - name: result type: object value: "$." exposes: - type: rest namespace: "reqres-app-users-rest" port: 8080 description: "REST adapter for ReqRes App Users. One Spectral-compliant resource per consumed operation, prefixed with /v1." resources: - path: "/v1/app-users/login" name: "v1-app-users-login" description: "REST surface for /api/app-users/login." operations: - method: POST name: "appUserLogin" description: "ReqRes App User Login" call: "reqres-app-users.appUserLogin" with: "body": "rest.body" outputParameters: - type: object mapping: "$." - path: "/v1/app-users/verify" name: "v1-app-users-verify" description: "REST surface for /api/app-users/verify." operations: - method: POST name: "verifyAppUserToken" description: "ReqRes Verify App User Token" call: "reqres-app-users.verifyAppUserToken" with: "body": "rest.body" outputParameters: - type: object mapping: "$." - path: "/v1/app-users/me" name: "v1-app-users-me" description: "REST surface for /api/app-users/me." operations: - method: GET name: "getAppUserMe" description: "ReqRes Current App User" call: "reqres-app-users.getAppUserMe" outputParameters: - type: object mapping: "$." - path: "/v1/app-users" name: "v1-app-users" description: "REST surface for /api/app-users." operations: - method: GET name: "listAppUsers" description: "ReqRes List App Users" call: "reqres-app-users.listAppUsers" with: "X-Reqres-Env": "rest.X-Reqres-Env" "limit": "rest.limit" outputParameters: - type: object mapping: "$." - method: POST name: "createAppUser" description: "ReqRes Create App User" call: "reqres-app-users.createAppUser" with: "body": "rest.body" outputParameters: - type: object mapping: "$." - path: "/v1/app-users/{id}" name: "v1-app-users-id" description: "REST surface for /api/app-users/{id}." operations: - method: GET name: "getAppUser" description: "ReqRes Get App User" call: "reqres-app-users.getAppUser" with: "id": "rest.id" outputParameters: - type: object mapping: "$." - method: PUT name: "updateAppUser" description: "ReqRes Update App User" call: "reqres-app-users.updateAppUser" with: "id": "rest.id" "body": "rest.body" outputParameters: - type: object mapping: "$." - method: DELETE name: "deleteAppUser" description: "ReqRes Delete App User" call: "reqres-app-users.deleteAppUser" with: "id": "rest.id" outputParameters: - type: object mapping: "$." - path: "/v1/app-users/{id}/sessions/simulate" name: "v1-app-users-id-sessions-simulate" description: "REST surface for /api/app-users/{id}/sessions/simulate." operations: - method: POST name: "simulateAppUserSession" description: "ReqRes Simulate App User Session" call: "reqres-app-users.simulateAppUserSession" with: "id": "rest.id" "body": "rest.body" outputParameters: - type: object mapping: "$." - path: "/v1/projects/{project-id}/app-users" name: "v1-projects-project-id-app-users" description: "REST surface for /api/projects/{projectId}/app-users." operations: - method: GET name: "listProjectAppUsers" description: "ReqRes List Project App Users" call: "reqres-app-users.listProjectAppUsers" with: "X-Reqres-Env": "rest.X-Reqres-Env" "projectId": "rest.projectId" "statuses": "rest.statuses" outputParameters: - type: object mapping: "$." - path: "/v1/projects/{project-id}/app-users/total" name: "v1-projects-project-id-app-users-total" description: "REST surface for /api/projects/{projectId}/app-users/total." operations: - method: GET name: "getProjectAppUserTotal" description: "ReqRes App Users Total" call: "reqres-app-users.getProjectAppUserTotal" with: "X-Reqres-Env": "rest.X-Reqres-Env" "projectId": "rest.projectId" outputParameters: - type: object mapping: "$." - path: "/v1/me" name: "v1-me" description: "REST surface for /app/me." operations: - method: GET name: "getAppSessionProfile" description: "ReqRes App User Profile" call: "reqres-app-users.getAppSessionProfile" outputParameters: - type: object mapping: "$." - path: "/v1/collections" name: "v1-collections" description: "REST surface for /app/collections." operations: - method: GET name: "listCollectionsAppUser" description: "ReqRes List Collections (app User)" call: "reqres-app-users.listCollectionsAppUser" outputParameters: - type: object mapping: "$." - path: "/v1/collections/{slug}" name: "v1-collections-slug" description: "REST surface for /app/collections/{slug}." operations: - method: GET name: "getCollectionAppUser" description: "ReqRes Get Collection (app User)" call: "reqres-app-users.getCollectionAppUser" with: "slug": "rest.slug" outputParameters: - type: object mapping: "$." - path: "/v1/collections/{slug}/records" name: "v1-collections-slug-records" description: "REST surface for /app/collections/{slug}/records." operations: - method: GET name: "listRecordsAppUser" description: "ReqRes List Records (app User)" call: "reqres-app-users.listRecordsAppUser" with: "slug": "rest.slug" outputParameters: - type: object mapping: "$." - method: POST name: "createRecordAppUser" description: "ReqRes Create Record (app User)" call: "reqres-app-users.createRecordAppUser" with: "slug": "rest.slug" "body": "rest.body" outputParameters: - type: object mapping: "$." - path: "/v1/collections/{slug}/records/{record-id}" name: "v1-collections-slug-records-record-id" description: "REST surface for /app/collections/{slug}/records/{recordId}." operations: - method: GET name: "getRecordAppUser" description: "ReqRes Get Record (app User)" call: "reqres-app-users.getRecordAppUser" with: "slug": "rest.slug" "recordId": "rest.recordId" outputParameters: - type: object mapping: "$." - method: PUT name: "updateRecordAppUser" description: "ReqRes Update Record (app User)" call: "reqres-app-users.updateRecordAppUser" with: "slug": "rest.slug" "recordId": "rest.recordId" "body": "rest.body" outputParameters: - type: object mapping: "$." - method: DELETE name: "deleteRecordAppUser" description: "ReqRes Delete Record (app User)" call: "reqres-app-users.deleteRecordAppUser" with: "slug": "rest.slug" "recordId": "rest.recordId" outputParameters: - type: object mapping: "$." - type: mcp namespace: "reqres-app-users-mcp" port: 9090 transport: http description: "MCP adapter for ReqRes App Users. One tool per consumed operation, routed inline through this capability's consumes block." tools: - name: "app-user-login" description: "ReqRes App User Login" hints: readOnly: false destructive: false idempotent: false call: "reqres-app-users.appUserLogin" with: "body": "tools.body" outputParameters: - type: object mapping: "$." - name: "verify-app-user-token" description: "ReqRes Verify App User Token" hints: readOnly: true destructive: false idempotent: false call: "reqres-app-users.verifyAppUserToken" with: "body": "tools.body" outputParameters: - type: object mapping: "$." - name: "current-app-user" description: "ReqRes Current App User" hints: readOnly: true destructive: false idempotent: true call: "reqres-app-users.getAppUserMe" outputParameters: - type: object mapping: "$." - name: "list-app-users" description: "ReqRes List App Users" hints: readOnly: true destructive: false idempotent: true call: "reqres-app-users.listAppUsers" with: "X-Reqres-Env": "tools.X-Reqres-Env" "limit": "tools.limit" outputParameters: - type: object mapping: "$." - name: "create-app-user" description: "ReqRes Create App User" hints: readOnly: false destructive: false idempotent: false call: "reqres-app-users.createAppUser" with: "body": "tools.body" outputParameters: - type: object mapping: "$." - name: "get-app-user" description: "ReqRes Get App User" hints: readOnly: true destructive: false idempotent: true call: "reqres-app-users.getAppUser" with: "id": "tools.id" outputParameters: - type: object mapping: "$." - name: "update-app-user" description: "ReqRes Update App User" hints: readOnly: false destructive: false idempotent: true call: "reqres-app-users.updateAppUser" with: "id": "tools.id" "body": "tools.body" outputParameters: - type: object mapping: "$." - name: "delete-app-user" description: "ReqRes Delete App User" hints: readOnly: false destructive: true idempotent: true call: "reqres-app-users.deleteAppUser" with: "id": "tools.id" outputParameters: - type: object mapping: "$." - name: "simulate-app-user-session" description: "ReqRes Simulate App User Session" hints: readOnly: false destructive: false idempotent: false call: "reqres-app-users.simulateAppUserSession" with: "id": "tools.id" "body": "tools.body" outputParameters: - type: object mapping: "$." - name: "list-project-app-users" description: "ReqRes List Project App Users" hints: readOnly: true destructive: false idempotent: true call: "reqres-app-users.listProjectAppUsers" with: "X-Reqres-Env": "tools.X-Reqres-Env" "projectId": "tools.projectId" "statuses": "tools.statuses" outputParameters: - type: object mapping: "$." - name: "app-users-total" description: "ReqRes App Users Total" hints: readOnly: true destructive: false idempotent: true call: "reqres-app-users.getProjectAppUserTotal" with: "X-Reqres-Env": "tools.X-Reqres-Env" "projectId": "tools.projectId" outputParameters: - type: object mapping: "$." - name: "app-user-profile" description: "ReqRes App User Profile" hints: readOnly: true destructive: false idempotent: true call: "reqres-app-users.getAppSessionProfile" outputParameters: - type: object mapping: "$." - name: "list-collections" description: "ReqRes List Collections (app User)" hints: readOnly: true destructive: false idempotent: true call: "reqres-app-users.listCollectionsAppUser" outputParameters: - type: object mapping: "$." - name: "get-collection" description: "ReqRes Get Collection (app User)" hints: readOnly: true destructive: false idempotent: true call: "reqres-app-users.getCollectionAppUser" with: "slug": "tools.slug" outputParameters: - type: object mapping: "$." - name: "list-records" description: "ReqRes List Records (app User)" hints: readOnly: true destructive: false idempotent: true call: "reqres-app-users.listRecordsAppUser" with: "slug": "tools.slug" outputParameters: - type: object mapping: "$." - name: "create-record" description: "ReqRes Create Record (app User)" hints: readOnly: false destructive: false idempotent: false call: "reqres-app-users.createRecordAppUser" with: "slug": "tools.slug" "body": "tools.body" outputParameters: - type: object mapping: "$." - name: "get-record" description: "ReqRes Get Record (app User)" hints: readOnly: true destructive: false idempotent: true call: "reqres-app-users.getRecordAppUser" with: "slug": "tools.slug" "recordId": "tools.recordId" outputParameters: - type: object mapping: "$." - name: "update-record" description: "ReqRes Update Record (app User)" hints: readOnly: false destructive: false idempotent: true call: "reqres-app-users.updateRecordAppUser" with: "slug": "tools.slug" "recordId": "tools.recordId" "body": "tools.body" outputParameters: - type: object mapping: "$." - name: "delete-record" description: "ReqRes Delete Record (app User)" hints: readOnly: false destructive: true idempotent: true call: "reqres-app-users.deleteRecordAppUser" with: "slug": "tools.slug" "recordId": "tools.recordId" outputParameters: - type: object mapping: "$."