naftiko: 1.0.0-alpha2 info: label: Telnyx API — Campaign description: 'Telnyx API — Campaign. 13 operations. Lead operation: List Campaigns. Self-contained Naftiko capability covering one Telnyx business surface.' tags: - Telnyx - Campaign created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: TELNYX_API_KEY: TELNYX_API_KEY capability: consumes: - type: http namespace: telnyx-campaign baseUri: https://api.telnyx.com/v2 description: Telnyx API — Campaign business capability. Self-contained, no shared references. resources: - name: 10dlc-campaign path: /10dlc/campaign operations: - name: getcampaigns method: GET description: List Campaigns outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: brandId in: query type: string required: true - name: page in: query type: integer description: The 1-indexed page number to get. The default value is `1`. - name: recordsPerPage in: query type: integer description: The amount of records per page, limited to between 1 and 500 inclusive. The default value is `10`. - name: sort in: query type: string description: Specifies the sort order for results. If not given, results are sorted by createdAt in descending order. - name: 10dlc-campaign-acceptSharing-campaignId path: /10dlc/campaign/acceptSharing/{campaignId} operations: - name: acceptcampaign method: POST description: Accept Shared Campaign outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: campaignId in: path type: string description: TCR's ID for the campaign to import required: true - name: 10dlc-campaign-usecase-cost path: /10dlc/campaign/usecase/cost operations: - name: getcampaigncost method: GET description: Get Campaign Cost outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: usecase in: query type: string required: true - name: 10dlc-campaign-campaignId path: /10dlc/campaign/{campaignId} operations: - name: deactivatecampaign method: DELETE description: Deactivate campaign outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: campaignId in: path type: string required: true - name: getcampaign method: GET description: Get campaign outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: campaignId in: path type: string required: true - name: updatecampaign method: PUT description: Update campaign outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: campaignId in: path type: string required: true - name: body in: body type: object description: Request body (JSON). required: true - name: 10dlc-campaign-campaignId-appeal path: /10dlc/campaign/{campaignId}/appeal operations: - name: appealcampaign method: POST description: Submit campaign appeal for manual review outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: campaignId in: path type: string description: The Telnyx campaign identifier required: true - name: body in: body type: object description: Request body (JSON). required: true - name: 10dlc-campaign-campaignId-mnoMetadata path: /10dlc/campaign/{campaignId}/mnoMetadata operations: - name: getcampaignmnometadata method: GET description: Get Campaign Mno Metadata outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: campaignId in: path type: string description: ID of the campaign in question required: true - name: 10dlc-campaign-campaignId-operationStatus path: /10dlc/campaign/{campaignId}/operationStatus operations: - name: getcampaignoperationstatus method: GET description: Get campaign operation status outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: campaignId in: path type: string required: true - name: 10dlc-campaign-campaignId-osr-attributes path: /10dlc/campaign/{campaignId}/osr/attributes operations: - name: getcampaignosrattributes method: GET description: Get OSR campaign attributes outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: campaignId in: path type: string required: true - name: 10dlc-campaign-campaignId-sharing path: /10dlc/campaign/{campaignId}/sharing operations: - name: getcampaignsharingstatus method: GET description: Get Sharing Status outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: campaignId in: path type: string description: ID of the campaign in question required: true - name: 10dlc-campaignBuilder path: /10dlc/campaignBuilder operations: - name: postcampaign method: POST description: Submit Campaign outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: 10dlc-campaignBuilder-brand-brandId-usecase-usecase path: /10dlc/campaignBuilder/brand/{brandId}/usecase/{usecase} operations: - name: getusecasequalification method: GET description: Qualify By Usecase outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: usecase in: path type: string required: true - name: brandId in: path type: string required: true authentication: type: bearer token: '{{env.TELNYX_API_KEY}}' exposes: - type: rest namespace: telnyx-campaign-rest port: 8080 description: REST adapter for Telnyx API — Campaign. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/10dlc/campaign name: 10dlc-campaign description: REST surface for 10dlc-campaign. operations: - method: GET name: getcampaigns description: List Campaigns call: telnyx-campaign.getcampaigns with: brandId: rest.brandId page: rest.page recordsPerPage: rest.recordsPerPage sort: rest.sort outputParameters: - type: object mapping: $. - path: /v1/10dlc/campaign/acceptsharing/{campaignid} name: 10dlc-campaign-acceptsharing-campaignid description: REST surface for 10dlc-campaign-acceptSharing-campaignId. operations: - method: POST name: acceptcampaign description: Accept Shared Campaign call: telnyx-campaign.acceptcampaign with: campaignId: rest.campaignId outputParameters: - type: object mapping: $. - path: /v1/10dlc/campaign/usecase/cost name: 10dlc-campaign-usecase-cost description: REST surface for 10dlc-campaign-usecase-cost. operations: - method: GET name: getcampaigncost description: Get Campaign Cost call: telnyx-campaign.getcampaigncost with: usecase: rest.usecase outputParameters: - type: object mapping: $. - path: /v1/10dlc/campaign/{campaignid} name: 10dlc-campaign-campaignid description: REST surface for 10dlc-campaign-campaignId. operations: - method: DELETE name: deactivatecampaign description: Deactivate campaign call: telnyx-campaign.deactivatecampaign with: campaignId: rest.campaignId outputParameters: - type: object mapping: $. - method: GET name: getcampaign description: Get campaign call: telnyx-campaign.getcampaign with: campaignId: rest.campaignId outputParameters: - type: object mapping: $. - method: PUT name: updatecampaign description: Update campaign call: telnyx-campaign.updatecampaign with: campaignId: rest.campaignId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/10dlc/campaign/{campaignid}/appeal name: 10dlc-campaign-campaignid-appeal description: REST surface for 10dlc-campaign-campaignId-appeal. operations: - method: POST name: appealcampaign description: Submit campaign appeal for manual review call: telnyx-campaign.appealcampaign with: campaignId: rest.campaignId body: rest.body outputParameters: - type: object mapping: $. - path: /v1/10dlc/campaign/{campaignid}/mnometadata name: 10dlc-campaign-campaignid-mnometadata description: REST surface for 10dlc-campaign-campaignId-mnoMetadata. operations: - method: GET name: getcampaignmnometadata description: Get Campaign Mno Metadata call: telnyx-campaign.getcampaignmnometadata with: campaignId: rest.campaignId outputParameters: - type: object mapping: $. - path: /v1/10dlc/campaign/{campaignid}/operationstatus name: 10dlc-campaign-campaignid-operationstatus description: REST surface for 10dlc-campaign-campaignId-operationStatus. operations: - method: GET name: getcampaignoperationstatus description: Get campaign operation status call: telnyx-campaign.getcampaignoperationstatus with: campaignId: rest.campaignId outputParameters: - type: object mapping: $. - path: /v1/10dlc/campaign/{campaignid}/osr/attributes name: 10dlc-campaign-campaignid-osr-attributes description: REST surface for 10dlc-campaign-campaignId-osr-attributes. operations: - method: GET name: getcampaignosrattributes description: Get OSR campaign attributes call: telnyx-campaign.getcampaignosrattributes with: campaignId: rest.campaignId outputParameters: - type: object mapping: $. - path: /v1/10dlc/campaign/{campaignid}/sharing name: 10dlc-campaign-campaignid-sharing description: REST surface for 10dlc-campaign-campaignId-sharing. operations: - method: GET name: getcampaignsharingstatus description: Get Sharing Status call: telnyx-campaign.getcampaignsharingstatus with: campaignId: rest.campaignId outputParameters: - type: object mapping: $. - path: /v1/10dlc/campaignbuilder name: 10dlc-campaignbuilder description: REST surface for 10dlc-campaignBuilder. operations: - method: POST name: postcampaign description: Submit Campaign call: telnyx-campaign.postcampaign with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/10dlc/campaignbuilder/brand/{brandid}/usecase/{usecase} name: 10dlc-campaignbuilder-brand-brandid-usecase-usecase description: REST surface for 10dlc-campaignBuilder-brand-brandId-usecase-usecase. operations: - method: GET name: getusecasequalification description: Qualify By Usecase call: telnyx-campaign.getusecasequalification with: usecase: rest.usecase brandId: rest.brandId outputParameters: - type: object mapping: $. - type: mcp namespace: telnyx-campaign-mcp port: 9090 transport: http description: MCP adapter for Telnyx API — Campaign. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-campaigns description: List Campaigns hints: readOnly: true destructive: false idempotent: true call: telnyx-campaign.getcampaigns with: brandId: tools.brandId page: tools.page recordsPerPage: tools.recordsPerPage sort: tools.sort outputParameters: - type: object mapping: $. - name: accept-shared-campaign description: Accept Shared Campaign hints: readOnly: false destructive: false idempotent: false call: telnyx-campaign.acceptcampaign with: campaignId: tools.campaignId outputParameters: - type: object mapping: $. - name: get-campaign-cost description: Get Campaign Cost hints: readOnly: true destructive: false idempotent: true call: telnyx-campaign.getcampaigncost with: usecase: tools.usecase outputParameters: - type: object mapping: $. - name: deactivate-campaign description: Deactivate campaign hints: readOnly: false destructive: true idempotent: true call: telnyx-campaign.deactivatecampaign with: campaignId: tools.campaignId outputParameters: - type: object mapping: $. - name: get-campaign description: Get campaign hints: readOnly: true destructive: false idempotent: true call: telnyx-campaign.getcampaign with: campaignId: tools.campaignId outputParameters: - type: object mapping: $. - name: update-campaign description: Update campaign hints: readOnly: false destructive: false idempotent: true call: telnyx-campaign.updatecampaign with: campaignId: tools.campaignId body: tools.body outputParameters: - type: object mapping: $. - name: submit-campaign-appeal-manual-review description: Submit campaign appeal for manual review hints: readOnly: false destructive: false idempotent: false call: telnyx-campaign.appealcampaign with: campaignId: tools.campaignId body: tools.body outputParameters: - type: object mapping: $. - name: get-campaign-mno-metadata description: Get Campaign Mno Metadata hints: readOnly: true destructive: false idempotent: true call: telnyx-campaign.getcampaignmnometadata with: campaignId: tools.campaignId outputParameters: - type: object mapping: $. - name: get-campaign-operation-status description: Get campaign operation status hints: readOnly: true destructive: false idempotent: true call: telnyx-campaign.getcampaignoperationstatus with: campaignId: tools.campaignId outputParameters: - type: object mapping: $. - name: get-osr-campaign-attributes description: Get OSR campaign attributes hints: readOnly: true destructive: false idempotent: true call: telnyx-campaign.getcampaignosrattributes with: campaignId: tools.campaignId outputParameters: - type: object mapping: $. - name: get-sharing-status description: Get Sharing Status hints: readOnly: true destructive: false idempotent: true call: telnyx-campaign.getcampaignsharingstatus with: campaignId: tools.campaignId outputParameters: - type: object mapping: $. - name: submit-campaign description: Submit Campaign hints: readOnly: false destructive: false idempotent: false call: telnyx-campaign.postcampaign with: body: tools.body outputParameters: - type: object mapping: $. - name: qualify-usecase description: Qualify By Usecase hints: readOnly: true destructive: false idempotent: true call: telnyx-campaign.getusecasequalification with: usecase: tools.usecase brandId: tools.brandId outputParameters: - type: object mapping: $.