naftiko: 1.0.0-alpha2 info: label: Oxylabs Web Intelligence APIs description: 'Oxylabs Web Intelligence APIs. 11 operations. Lead operation: Residential API login. Self-contained Naftiko capability covering one Oxylabs business surface.' tags: - Oxylabs - Oxylabs Web Intelligence APIs created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: OXYLABS_API_KEY: OXYLABS_API_KEY capability: consumes: - type: http namespace: oxylabs baseUri: https://realtime.oxylabs.io/v1 description: Oxylabs Web Intelligence APIs business capability. Self-contained, no shared references. resources: - name: login path: /login operations: - name: residentiallogin method: POST description: Residential API login outputRawFormat: json outputParameters: - name: result type: object value: $. - name: queries path: /queries operations: - name: submitquery method: POST description: Submit a scraping job outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: stats-v1-filters-instances path: /stats/v1/filters/instances operations: - name: liststatsfilters method: GET description: List statistics filter instances outputRawFormat: json outputParameters: - name: result type: object value: $. - name: stats-v1-usage path: /stats/v1/usage operations: - name: getusagestats method: GET description: Get usage statistics outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: from in: query type: string - name: to in: query type: string - name: users-userId-client-stats path: /users/{userId}/client-stats operations: - name: getclientstats method: GET description: Get client statistics outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-userId-sub-users path: /users/{userId}/sub-users operations: - name: listsubusers method: GET description: List sub-users outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createsubuser method: POST description: Create a sub-user outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: users-userId-sub-users-subUserId path: /users/{userId}/sub-users/{subUserId} operations: - name: getsubuser method: GET description: Get sub-user outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatesubuser method: PATCH description: Update sub-user outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: deletesubuser method: DELETE description: Delete sub-user outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-userId-sub-users-subUserId-target-stats path: /users/{userId}/sub-users/{subUserId}/target-stats operations: - name: getsubusertargetstats method: GET description: Get sub-user target statistics outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.OXYLABS_API_KEY}}' exposes: - type: rest namespace: oxylabs-rest port: 8080 description: REST adapter for Oxylabs Web Intelligence APIs. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/login name: login description: REST surface for login. operations: - method: POST name: residentiallogin description: Residential API login call: oxylabs.residentiallogin outputParameters: - type: object mapping: $. - path: /v1/queries name: queries description: REST surface for queries. operations: - method: POST name: submitquery description: Submit a scraping job call: oxylabs.submitquery with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/stats/v1/filters/instances name: stats-v1-filters-instances description: REST surface for stats-v1-filters-instances. operations: - method: GET name: liststatsfilters description: List statistics filter instances call: oxylabs.liststatsfilters outputParameters: - type: object mapping: $. - path: /v1/stats/v1/usage name: stats-v1-usage description: REST surface for stats-v1-usage. operations: - method: GET name: getusagestats description: Get usage statistics call: oxylabs.getusagestats with: from: rest.from to: rest.to outputParameters: - type: object mapping: $. - path: /v1/users/{userid}/client-stats name: users-userid-client-stats description: REST surface for users-userId-client-stats. operations: - method: GET name: getclientstats description: Get client statistics call: oxylabs.getclientstats outputParameters: - type: object mapping: $. - path: /v1/users/{userid}/sub-users name: users-userid-sub-users description: REST surface for users-userId-sub-users. operations: - method: GET name: listsubusers description: List sub-users call: oxylabs.listsubusers outputParameters: - type: object mapping: $. - method: POST name: createsubuser description: Create a sub-user call: oxylabs.createsubuser with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/{userid}/sub-users/{subuserid} name: users-userid-sub-users-subuserid description: REST surface for users-userId-sub-users-subUserId. operations: - method: GET name: getsubuser description: Get sub-user call: oxylabs.getsubuser outputParameters: - type: object mapping: $. - method: PATCH name: updatesubuser description: Update sub-user call: oxylabs.updatesubuser with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletesubuser description: Delete sub-user call: oxylabs.deletesubuser outputParameters: - type: object mapping: $. - path: /v1/users/{userid}/sub-users/{subuserid}/target-stats name: users-userid-sub-users-subuserid-target-stats description: REST surface for users-userId-sub-users-subUserId-target-stats. operations: - method: GET name: getsubusertargetstats description: Get sub-user target statistics call: oxylabs.getsubusertargetstats outputParameters: - type: object mapping: $. - type: mcp namespace: oxylabs-mcp port: 9090 transport: http description: MCP adapter for Oxylabs Web Intelligence APIs. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: residential-api-login description: Residential API login hints: readOnly: false destructive: false idempotent: false call: oxylabs.residentiallogin outputParameters: - type: object mapping: $. - name: submit-scraping-job description: Submit a scraping job hints: readOnly: false destructive: false idempotent: false call: oxylabs.submitquery with: body: tools.body outputParameters: - type: object mapping: $. - name: list-statistics-filter-instances description: List statistics filter instances hints: readOnly: true destructive: false idempotent: true call: oxylabs.liststatsfilters outputParameters: - type: object mapping: $. - name: get-usage-statistics description: Get usage statistics hints: readOnly: true destructive: false idempotent: true call: oxylabs.getusagestats with: from: tools.from to: tools.to outputParameters: - type: object mapping: $. - name: get-client-statistics description: Get client statistics hints: readOnly: true destructive: false idempotent: true call: oxylabs.getclientstats outputParameters: - type: object mapping: $. - name: list-sub-users description: List sub-users hints: readOnly: true destructive: false idempotent: true call: oxylabs.listsubusers outputParameters: - type: object mapping: $. - name: create-sub-user description: Create a sub-user hints: readOnly: false destructive: false idempotent: false call: oxylabs.createsubuser with: body: tools.body outputParameters: - type: object mapping: $. - name: get-sub-user description: Get sub-user hints: readOnly: true destructive: false idempotent: true call: oxylabs.getsubuser outputParameters: - type: object mapping: $. - name: update-sub-user description: Update sub-user hints: readOnly: false destructive: false idempotent: true call: oxylabs.updatesubuser with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-sub-user description: Delete sub-user hints: readOnly: false destructive: true idempotent: true call: oxylabs.deletesubuser outputParameters: - type: object mapping: $. - name: get-sub-user-target-statistics description: Get sub-user target statistics hints: readOnly: true destructive: false idempotent: true call: oxylabs.getsubusertargetstats outputParameters: - type: object mapping: $.