naftiko: "1.0.0-alpha2"
info:
label: "Wufoo REST API — Reports"
description: >-
Reports surface of the Wufoo REST API v3. 5 operations spanning report
listings, single-report lookup, and report-scoped entries, fields, and
widgets. Lead operation: List All Reports. Self-contained Naftiko capability
covering one Wufoo business surface.
tags:
- Wufoo
- Reports
- Analytics
created: "2026-05-23"
modified: "2026-05-23"
binds:
- namespace: env
keys:
WUFOO_SUBDOMAIN: WUFOO_SUBDOMAIN
WUFOO_API_KEY: WUFOO_API_KEY
capability:
consumes:
- type: http
namespace: "rest-v3-reports"
baseUri: "https://{{env.WUFOO_SUBDOMAIN}}.wufoo.com/api/v3"
description: "Wufoo REST API — Reports business capability. Self-contained, no shared references."
authentication:
type: basic
username: "{{env.WUFOO_API_KEY}}"
password: "footastic"
resources:
- name: "reports"
path: "/reports.{format}"
operations:
- name: "listReports"
method: GET
description: "List all reports."
inputParameters:
- { name: format, in: path, type: string, required: true, description: "json or xml" }
- { name: pretty, in: query, type: boolean, required: false, description: "Pretty-print." }
outputRawFormat: json
outputParameters: [{ name: result, type: object, value: "$." }]
- name: "report"
path: "/reports/{identifier}.{format}"
operations:
- name: "getReport"
method: GET
description: "Return a single report."
inputParameters:
- { name: identifier, in: path, type: string, required: true, description: "Report hash or title." }
- { name: format, in: path, type: string, required: true, description: "json or xml" }
- { name: pretty, in: query, type: boolean, required: false, description: "Pretty-print." }
outputRawFormat: json
outputParameters: [{ name: result, type: object, value: "$." }]
- name: "report-widgets"
path: "/reports/{identifier}/widgets.{format}"
operations:
- name: "listReportWidgets"
method: GET
description: "List widgets in the report."
inputParameters:
- { name: identifier, in: path, type: string, required: true, description: "Report hash or title." }
- { name: format, in: path, type: string, required: true, description: "json or xml" }
- { name: pretty, in: query, type: boolean, required: false, description: "Pretty-print." }
outputRawFormat: json
outputParameters: [{ name: result, type: object, value: "$." }]
- name: "report-entries"
path: "/reports/{identifier}/entries.{format}"
operations:
- name: "listReportEntries"
method: GET
description: "List entries filtered by the report."
inputParameters:
- { name: identifier, in: path, type: string, required: true, description: "Report hash or title." }
- { name: format, in: path, type: string, required: true, description: "json or xml" }
- { name: system, in: query, type: boolean, required: false, description: "Include system fields." }
- { name: pretty, in: query, type: boolean, required: false, description: "Pretty-print." }
outputRawFormat: json
outputParameters: [{ name: result, type: object, value: "$." }]
- name: "report-fields"
path: "/reports/{identifier}/fields.{format}"
operations:
- name: "listReportFields"
method: GET
description: "List field structure for the report."
inputParameters:
- { name: identifier, in: path, type: string, required: true, description: "Report hash or title." }
- { name: format, in: path, type: string, required: true, description: "json or xml" }
- { name: system, in: query, type: boolean, required: false, description: "Include system fields." }
- { name: pretty, in: query, type: boolean, required: false, description: "Pretty-print." }
outputRawFormat: json
outputParameters: [{ name: result, type: object, value: "$." }]
exposes:
- type: rest
namespace: "rest-v3-reports-rest"
port: 8080
description: "REST adapter for Wufoo REST API — Reports."
resources:
- path: "/v1/reports"
name: "reports"
description: "Reports collection."
operations:
- method: GET
name: "listReports"
description: "List all reports."
call: "rest-v3-reports.listReports"
with: { format: "rest.format", pretty: "rest.pretty" }
outputParameters: [{ type: object, mapping: "$." }]
- path: "/v1/reports/{identifier}"
name: "report"
description: "Single report."
operations:
- method: GET
name: "getReport"
description: "Return a single report."
call: "rest-v3-reports.getReport"
with: { identifier: "rest.identifier", format: "rest.format", pretty: "rest.pretty" }
outputParameters: [{ type: object, mapping: "$." }]
- path: "/v1/reports/{identifier}/widgets"
name: "report-widgets"
description: "Widgets in a report."
operations:
- method: GET
name: "listReportWidgets"
description: "List widgets."
call: "rest-v3-reports.listReportWidgets"
with: { identifier: "rest.identifier", format: "rest.format", pretty: "rest.pretty" }
outputParameters: [{ type: object, mapping: "$." }]
- path: "/v1/reports/{identifier}/entries"
name: "report-entries"
description: "Entries filtered by report."
operations:
- method: GET
name: "listReportEntries"
description: "List report entries."
call: "rest-v3-reports.listReportEntries"
with: { identifier: "rest.identifier", format: "rest.format", system: "rest.system", pretty: "rest.pretty" }
outputParameters: [{ type: object, mapping: "$." }]
- path: "/v1/reports/{identifier}/fields"
name: "report-fields"
description: "Report field structure."
operations:
- method: GET
name: "listReportFields"
description: "List report fields."
call: "rest-v3-reports.listReportFields"
with: { identifier: "rest.identifier", format: "rest.format", system: "rest.system", pretty: "rest.pretty" }
outputParameters: [{ type: object, mapping: "$." }]
- type: mcp
namespace: "rest-v3-reports-mcp"
port: 9090
transport: http
description: "MCP adapter for Wufoo REST API — Reports."
tools:
- name: "list-reports"
description: "List all reports."
hints: { readOnly: true, destructive: false, idempotent: true }
call: "rest-v3-reports.listReports"
with: { format: "tools.format", pretty: "tools.pretty" }
outputParameters: [{ type: object, mapping: "$." }]
- name: "get-report"
description: "Return a single report."
hints: { readOnly: true, destructive: false, idempotent: true }
call: "rest-v3-reports.getReport"
with: { identifier: "tools.identifier", format: "tools.format", pretty: "tools.pretty" }
outputParameters: [{ type: object, mapping: "$." }]
- name: "list-report-widgets"
description: "List widgets in a report."
hints: { readOnly: true, destructive: false, idempotent: true }
call: "rest-v3-reports.listReportWidgets"
with: { identifier: "tools.identifier", format: "tools.format", pretty: "tools.pretty" }
outputParameters: [{ type: object, mapping: "$." }]
- name: "list-report-entries"
description: "List entries filtered by report."
hints: { readOnly: true, destructive: false, idempotent: true }
call: "rest-v3-reports.listReportEntries"
with: { identifier: "tools.identifier", format: "tools.format", system: "tools.system", pretty: "tools.pretty" }
outputParameters: [{ type: object, mapping: "$." }]
- name: "list-report-fields"
description: "List report field structure."
hints: { readOnly: true, destructive: false, idempotent: true }
call: "rest-v3-reports.listReportFields"
with: { identifier: "tools.identifier", format: "tools.format", system: "tools.system", pretty: "tools.pretty" }
outputParameters: [{ type: object, mapping: "$." }]