naftiko: 1.0.0-alpha2 info: label: GrowthBook REST API — feature-revisions description: 'GrowthBook REST API — feature-revisions. 24 operations. Lead operation: List revisions for a feature. Self-contained Naftiko capability covering one Growthbook business surface.' tags: - Growthbook - feature-revisions created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: GROWTHBOOK_API_KEY: GROWTHBOOK_API_KEY capability: consumes: - type: http namespace: growthbook-feature-revisions baseUri: https://api.growthbook.io/api description: GrowthBook REST API — feature-revisions business capability. Self-contained, no shared references. resources: - name: v1-features-id-revisions path: /v1/features/{id}/revisions operations: - name: getfeaturerevisions method: GET description: List revisions for a feature outputRawFormat: json outputParameters: - name: result type: object value: $. - name: postfeaturerevision method: POST description: Create a draft revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-features-id-revisions-latest path: /v1/features/{id}/revisions/latest operations: - name: getfeaturerevisionlatest method: GET description: Get the most recent active draft revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: mine in: query type: string description: If true, return only the most recent active draft authored by or contributed to by the calling user. Requires a user-scoped API key. - name: v1-features-id-revisions-version path: /v1/features/{id}/revisions/{version} operations: - name: getfeaturerevision method: GET description: Get a single feature revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: v1-features-id-revisions-version-archive path: /v1/features/{id}/revisions/{version}/archive operations: - name: putfeaturerevisionarchive method: PUT description: Set archived state in a draft revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: version in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-features-id-revisions-version-default-value path: /v1/features/{id}/revisions/{version}/default-value operations: - name: putfeaturerevisiondefaultvalue method: PUT description: Set the default value in a draft revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: version in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-features-id-revisions-version-discard path: /v1/features/{id}/revisions/{version}/discard operations: - name: postfeaturerevisiondiscard method: POST description: Discard a draft revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-features-id-revisions-version-holdout path: /v1/features/{id}/revisions/{version}/holdout operations: - name: putfeaturerevisionholdout method: PUT description: Set holdout in a draft revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: version in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-features-id-revisions-version-merge-status path: /v1/features/{id}/revisions/{version}/merge-status operations: - name: getfeaturerevisionmergestatus method: GET description: Get merge status for a draft revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: v1-features-id-revisions-version-metadata path: /v1/features/{id}/revisions/{version}/metadata operations: - name: putfeaturerevisionmetadata method: PUT description: Update revision metadata (comment, title, feature metadata) outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: version in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-features-id-revisions-version-prerequisites path: /v1/features/{id}/revisions/{version}/prerequisites operations: - name: putfeaturerevisionprerequisites method: PUT description: Set feature-level prerequisites in a draft revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: version in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-features-id-revisions-version-publish path: /v1/features/{id}/revisions/{version}/publish operations: - name: postfeaturerevisionpublish method: POST description: Publish a draft revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-features-id-revisions-version-rebase path: /v1/features/{id}/revisions/{version}/rebase operations: - name: postfeaturerevisionrebase method: POST description: Rebase a draft revision onto the current live version outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-features-id-revisions-version-request-review path: /v1/features/{id}/revisions/{version}/request-review operations: - name: postfeaturerevisionrequestreview method: POST description: Request review for a draft revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-features-id-revisions-version-revert path: /v1/features/{id}/revisions/{version}/revert operations: - name: postfeaturerevisionrevert method: POST description: Revert the feature to a prior revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-features-id-revisions-version-rules path: /v1/features/{id}/revisions/{version}/rules operations: - name: postfeaturerevisionruleadd method: POST description: Add a rule to a draft revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: version in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-features-id-revisions-version-rules-reorder path: /v1/features/{id}/revisions/{version}/rules/reorder operations: - name: postfeaturerevisionrulesreorder method: POST description: Reorder rules in an environment outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: version in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-features-id-revisions-version-rules-ruleId path: /v1/features/{id}/revisions/{version}/rules/{ruleId} operations: - name: putfeaturerevisionrule method: PUT description: Update a rule in a draft revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: version in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletefeaturerevisionrule method: DELETE description: Delete a rule from a draft revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: version in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-features-id-revisions-version-rules-ruleId-ramp-schedule path: /v1/features/{id}/revisions/{version}/rules/{ruleId}/ramp-schedule operations: - name: putfeaturerevisionrulerampschedule method: PUT description: Set ramp schedule for a rule outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: version in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deletefeaturerevisionrulerampschedule method: DELETE description: Remove ramp schedule from a rule outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: version in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-features-id-revisions-version-submit-review path: /v1/features/{id}/revisions/{version}/submit-review operations: - name: postfeaturerevisionsubmitreview method: POST description: Submit a review on a draft revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-features-id-revisions-version-toggle path: /v1/features/{id}/revisions/{version}/toggle operations: - name: postfeaturerevisiontoggle method: POST description: Toggle an environment on/off in a draft revision outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: string required: true - name: version in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: v1-revisions path: /v1/revisions operations: - name: listrevisions method: GET description: List feature revisions outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.GROWTHBOOK_API_KEY}}' exposes: - type: rest namespace: growthbook-feature-revisions-rest port: 8080 description: REST adapter for GrowthBook REST API — feature-revisions. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/features/{id}/revisions name: v1-features-id-revisions description: REST surface for v1-features-id-revisions. operations: - method: GET name: getfeaturerevisions description: List revisions for a feature call: growthbook-feature-revisions.getfeaturerevisions outputParameters: - type: object mapping: $. - method: POST name: postfeaturerevision description: Create a draft revision call: growthbook-feature-revisions.postfeaturerevision with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/latest name: v1-features-id-revisions-latest description: REST surface for v1-features-id-revisions-latest. operations: - method: GET name: getfeaturerevisionlatest description: Get the most recent active draft revision call: growthbook-feature-revisions.getfeaturerevisionlatest with: id: rest.id mine: rest.mine outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version} name: v1-features-id-revisions-version description: REST surface for v1-features-id-revisions-version. operations: - method: GET name: getfeaturerevision description: Get a single feature revision call: growthbook-feature-revisions.getfeaturerevision with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/archive name: v1-features-id-revisions-version-archive description: REST surface for v1-features-id-revisions-version-archive. operations: - method: PUT name: putfeaturerevisionarchive description: Set archived state in a draft revision call: growthbook-feature-revisions.putfeaturerevisionarchive with: id: rest.id version: rest.version body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/default-value name: v1-features-id-revisions-version-default-value description: REST surface for v1-features-id-revisions-version-default-value. operations: - method: PUT name: putfeaturerevisiondefaultvalue description: Set the default value in a draft revision call: growthbook-feature-revisions.putfeaturerevisiondefaultvalue with: id: rest.id version: rest.version body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/discard name: v1-features-id-revisions-version-discard description: REST surface for v1-features-id-revisions-version-discard. operations: - method: POST name: postfeaturerevisiondiscard description: Discard a draft revision call: growthbook-feature-revisions.postfeaturerevisiondiscard with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/holdout name: v1-features-id-revisions-version-holdout description: REST surface for v1-features-id-revisions-version-holdout. operations: - method: PUT name: putfeaturerevisionholdout description: Set holdout in a draft revision call: growthbook-feature-revisions.putfeaturerevisionholdout with: id: rest.id version: rest.version body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/merge-status name: v1-features-id-revisions-version-merge-status description: REST surface for v1-features-id-revisions-version-merge-status. operations: - method: GET name: getfeaturerevisionmergestatus description: Get merge status for a draft revision call: growthbook-feature-revisions.getfeaturerevisionmergestatus with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/metadata name: v1-features-id-revisions-version-metadata description: REST surface for v1-features-id-revisions-version-metadata. operations: - method: PUT name: putfeaturerevisionmetadata description: Update revision metadata (comment, title, feature metadata) call: growthbook-feature-revisions.putfeaturerevisionmetadata with: id: rest.id version: rest.version body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/prerequisites name: v1-features-id-revisions-version-prerequisites description: REST surface for v1-features-id-revisions-version-prerequisites. operations: - method: PUT name: putfeaturerevisionprerequisites description: Set feature-level prerequisites in a draft revision call: growthbook-feature-revisions.putfeaturerevisionprerequisites with: id: rest.id version: rest.version body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/publish name: v1-features-id-revisions-version-publish description: REST surface for v1-features-id-revisions-version-publish. operations: - method: POST name: postfeaturerevisionpublish description: Publish a draft revision call: growthbook-feature-revisions.postfeaturerevisionpublish with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/rebase name: v1-features-id-revisions-version-rebase description: REST surface for v1-features-id-revisions-version-rebase. operations: - method: POST name: postfeaturerevisionrebase description: Rebase a draft revision onto the current live version call: growthbook-feature-revisions.postfeaturerevisionrebase with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/request-review name: v1-features-id-revisions-version-request-review description: REST surface for v1-features-id-revisions-version-request-review. operations: - method: POST name: postfeaturerevisionrequestreview description: Request review for a draft revision call: growthbook-feature-revisions.postfeaturerevisionrequestreview with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/revert name: v1-features-id-revisions-version-revert description: REST surface for v1-features-id-revisions-version-revert. operations: - method: POST name: postfeaturerevisionrevert description: Revert the feature to a prior revision call: growthbook-feature-revisions.postfeaturerevisionrevert with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/rules name: v1-features-id-revisions-version-rules description: REST surface for v1-features-id-revisions-version-rules. operations: - method: POST name: postfeaturerevisionruleadd description: Add a rule to a draft revision call: growthbook-feature-revisions.postfeaturerevisionruleadd with: id: rest.id version: rest.version body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/rules/reorder name: v1-features-id-revisions-version-rules-reorder description: REST surface for v1-features-id-revisions-version-rules-reorder. operations: - method: POST name: postfeaturerevisionrulesreorder description: Reorder rules in an environment call: growthbook-feature-revisions.postfeaturerevisionrulesreorder with: id: rest.id version: rest.version body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/rules/{ruleid} name: v1-features-id-revisions-version-rules-ruleid description: REST surface for v1-features-id-revisions-version-rules-ruleId. operations: - method: PUT name: putfeaturerevisionrule description: Update a rule in a draft revision call: growthbook-feature-revisions.putfeaturerevisionrule with: id: rest.id version: rest.version body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletefeaturerevisionrule description: Delete a rule from a draft revision call: growthbook-feature-revisions.deletefeaturerevisionrule with: id: rest.id version: rest.version body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/rules/{ruleid}/ramp-schedule name: v1-features-id-revisions-version-rules-ruleid-ramp-schedule description: REST surface for v1-features-id-revisions-version-rules-ruleId-ramp-schedule. operations: - method: PUT name: putfeaturerevisionrulerampschedule description: Set ramp schedule for a rule call: growthbook-feature-revisions.putfeaturerevisionrulerampschedule with: id: rest.id version: rest.version body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletefeaturerevisionrulerampschedule description: Remove ramp schedule from a rule call: growthbook-feature-revisions.deletefeaturerevisionrulerampschedule with: id: rest.id version: rest.version body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/submit-review name: v1-features-id-revisions-version-submit-review description: REST surface for v1-features-id-revisions-version-submit-review. operations: - method: POST name: postfeaturerevisionsubmitreview description: Submit a review on a draft revision call: growthbook-feature-revisions.postfeaturerevisionsubmitreview with: id: rest.id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/features/{id}/revisions/{version}/toggle name: v1-features-id-revisions-version-toggle description: REST surface for v1-features-id-revisions-version-toggle. operations: - method: POST name: postfeaturerevisiontoggle description: Toggle an environment on/off in a draft revision call: growthbook-feature-revisions.postfeaturerevisiontoggle with: id: rest.id version: rest.version body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/revisions name: v1-revisions description: REST surface for v1-revisions. operations: - method: GET name: listrevisions description: List feature revisions call: growthbook-feature-revisions.listrevisions outputParameters: - type: object mapping: $. - type: mcp namespace: growthbook-feature-revisions-mcp port: 9090 transport: http description: MCP adapter for GrowthBook REST API — feature-revisions. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-revisions-feature description: List revisions for a feature hints: readOnly: true destructive: false idempotent: true call: growthbook-feature-revisions.getfeaturerevisions outputParameters: - type: object mapping: $. - name: create-draft-revision description: Create a draft revision hints: readOnly: false destructive: false idempotent: false call: growthbook-feature-revisions.postfeaturerevision with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: get-most-recent-active-draft description: Get the most recent active draft revision hints: readOnly: true destructive: false idempotent: true call: growthbook-feature-revisions.getfeaturerevisionlatest with: id: tools.id mine: tools.mine outputParameters: - type: object mapping: $. - name: get-single-feature-revision description: Get a single feature revision hints: readOnly: true destructive: false idempotent: true call: growthbook-feature-revisions.getfeaturerevision with: id: tools.id outputParameters: - type: object mapping: $. - name: set-archived-state-draft-revision description: Set archived state in a draft revision hints: readOnly: false destructive: false idempotent: true call: growthbook-feature-revisions.putfeaturerevisionarchive with: id: tools.id version: tools.version body: tools.body outputParameters: - type: object mapping: $. - name: set-default-value-draft-revision description: Set the default value in a draft revision hints: readOnly: false destructive: false idempotent: true call: growthbook-feature-revisions.putfeaturerevisiondefaultvalue with: id: tools.id version: tools.version body: tools.body outputParameters: - type: object mapping: $. - name: discard-draft-revision description: Discard a draft revision hints: readOnly: false destructive: false idempotent: false call: growthbook-feature-revisions.postfeaturerevisiondiscard with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: set-holdout-draft-revision description: Set holdout in a draft revision hints: readOnly: false destructive: false idempotent: true call: growthbook-feature-revisions.putfeaturerevisionholdout with: id: tools.id version: tools.version body: tools.body outputParameters: - type: object mapping: $. - name: get-merge-status-draft-revision description: Get merge status for a draft revision hints: readOnly: true destructive: false idempotent: true call: growthbook-feature-revisions.getfeaturerevisionmergestatus with: id: tools.id outputParameters: - type: object mapping: $. - name: update-revision-metadata-comment-title description: Update revision metadata (comment, title, feature metadata) hints: readOnly: false destructive: false idempotent: true call: growthbook-feature-revisions.putfeaturerevisionmetadata with: id: tools.id version: tools.version body: tools.body outputParameters: - type: object mapping: $. - name: set-feature-level-prerequisites-draft description: Set feature-level prerequisites in a draft revision hints: readOnly: false destructive: false idempotent: true call: growthbook-feature-revisions.putfeaturerevisionprerequisites with: id: tools.id version: tools.version body: tools.body outputParameters: - type: object mapping: $. - name: publish-draft-revision description: Publish a draft revision hints: readOnly: false destructive: false idempotent: false call: growthbook-feature-revisions.postfeaturerevisionpublish with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: rebase-draft-revision-onto-current description: Rebase a draft revision onto the current live version hints: readOnly: false destructive: false idempotent: false call: growthbook-feature-revisions.postfeaturerevisionrebase with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: request-review-draft-revision description: Request review for a draft revision hints: readOnly: false destructive: false idempotent: false call: growthbook-feature-revisions.postfeaturerevisionrequestreview with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: revert-feature-prior-revision description: Revert the feature to a prior revision hints: readOnly: false destructive: false idempotent: false call: growthbook-feature-revisions.postfeaturerevisionrevert with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: add-rule-draft-revision description: Add a rule to a draft revision hints: readOnly: false destructive: false idempotent: false call: growthbook-feature-revisions.postfeaturerevisionruleadd with: id: tools.id version: tools.version body: tools.body outputParameters: - type: object mapping: $. - name: reorder-rules-environment description: Reorder rules in an environment hints: readOnly: false destructive: false idempotent: false call: growthbook-feature-revisions.postfeaturerevisionrulesreorder with: id: tools.id version: tools.version body: tools.body outputParameters: - type: object mapping: $. - name: update-rule-draft-revision description: Update a rule in a draft revision hints: readOnly: false destructive: false idempotent: true call: growthbook-feature-revisions.putfeaturerevisionrule with: id: tools.id version: tools.version body: tools.body outputParameters: - type: object mapping: $. - name: delete-rule-draft-revision description: Delete a rule from a draft revision hints: readOnly: false destructive: true idempotent: true call: growthbook-feature-revisions.deletefeaturerevisionrule with: id: tools.id version: tools.version body: tools.body outputParameters: - type: object mapping: $. - name: set-ramp-schedule-rule description: Set ramp schedule for a rule hints: readOnly: false destructive: false idempotent: true call: growthbook-feature-revisions.putfeaturerevisionrulerampschedule with: id: tools.id version: tools.version body: tools.body outputParameters: - type: object mapping: $. - name: remove-ramp-schedule-rule description: Remove ramp schedule from a rule hints: readOnly: false destructive: true idempotent: true call: growthbook-feature-revisions.deletefeaturerevisionrulerampschedule with: id: tools.id version: tools.version body: tools.body outputParameters: - type: object mapping: $. - name: submit-review-draft-revision description: Submit a review on a draft revision hints: readOnly: false destructive: false idempotent: false call: growthbook-feature-revisions.postfeaturerevisionsubmitreview with: id: tools.id body: tools.body outputParameters: - type: object mapping: $. - name: toggle-environment-off-draft-revision description: Toggle an environment on/off in a draft revision hints: readOnly: false destructive: false idempotent: false call: growthbook-feature-revisions.postfeaturerevisiontoggle with: id: tools.id version: tools.version body: tools.body outputParameters: - type: object mapping: $. - name: list-feature-revisions description: List feature revisions hints: readOnly: true destructive: false idempotent: true call: growthbook-feature-revisions.listrevisions outputParameters: - type: object mapping: $.