naftiko: 1.0.0-alpha2 info: label: Twilio SendGrid Link Branding API — Link Branding description: 'Twilio SendGrid Link Branding API — Link Branding. 10 operations. Lead operation: Create a branded link. Self-contained Naftiko capability covering one Sendgrid business surface.' tags: - Sendgrid - Link Branding created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: SENDGRID_API_KEY: SENDGRID_API_KEY capability: consumes: - type: http namespace: tsg_link_branding_v3-link-branding baseUri: https://api.sendgrid.com description: Twilio SendGrid Link Branding API — Link Branding business capability. Self-contained, no shared references. resources: - name: v3-whitelabel-links path: /v3/whitelabel/links operations: - name: createbrandedlink method: POST description: Create a branded link outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: listbrandedlink method: GET description: Retrieve all branded links outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: limit in: query type: integer description: Limits the number of results returned per page. - name: v3-whitelabel-links-default path: /v3/whitelabel/links/default operations: - name: listdefaultbrandedlink method: GET description: Retrieve the default branded link outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: domain in: query type: string description: The domain to match against when finding the default branded link. - name: v3-whitelabel-links-subuser path: /v3/whitelabel/links/subuser operations: - name: listsubuserbrandedlink method: GET description: Retrieve a subuser's branded link outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: username in: query type: string description: The username of the subuser to retrieve associated branded links for. required: true - name: disassociatebrandedlinkfromsubuser method: DELETE description: Disassociate a branded link from a subuser outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: username in: query type: string description: The username of the subuser account that you want to disassociate a branded link from. required: true - name: v3-whitelabel-links-id path: /v3/whitelabel/links/{id} operations: - name: getbrandedlink method: GET description: Retrieve a branded link outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updatebrandedlink method: PATCH description: Update a branded link outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: deletebrandedlink method: DELETE description: Delete a branded link outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v3-whitelabel-links-id-validate path: /v3/whitelabel/links/{id}/validate operations: - name: validatebrandedlink method: POST description: Validate a branded link outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v3-whitelabel-links-link_id-subuser path: /v3/whitelabel/links/{link_id}/subuser operations: - name: associatebrandedlinkwithsubuser method: POST description: Associate a branded link with a subuser outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false authentication: type: bearer token: '{{env.SENDGRID_API_KEY}}' exposes: - type: rest namespace: tsg_link_branding_v3-link-branding-rest port: 8080 description: REST adapter for Twilio SendGrid Link Branding API — Link Branding. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v3/whitelabel/links name: v3-whitelabel-links description: REST surface for v3-whitelabel-links. operations: - method: POST name: createbrandedlink description: Create a branded link call: tsg_link_branding_v3-link-branding.createbrandedlink with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: listbrandedlink description: Retrieve all branded links call: tsg_link_branding_v3-link-branding.listbrandedlink with: limit: rest.limit outputParameters: - type: object mapping: $. - path: /v1/v3/whitelabel/links/default name: v3-whitelabel-links-default description: REST surface for v3-whitelabel-links-default. operations: - method: GET name: listdefaultbrandedlink description: Retrieve the default branded link call: tsg_link_branding_v3-link-branding.listdefaultbrandedlink with: domain: rest.domain outputParameters: - type: object mapping: $. - path: /v1/v3/whitelabel/links/subuser name: v3-whitelabel-links-subuser description: REST surface for v3-whitelabel-links-subuser. operations: - method: GET name: listsubuserbrandedlink description: Retrieve a subuser's branded link call: tsg_link_branding_v3-link-branding.listsubuserbrandedlink with: username: rest.username outputParameters: - type: object mapping: $. - method: DELETE name: disassociatebrandedlinkfromsubuser description: Disassociate a branded link from a subuser call: tsg_link_branding_v3-link-branding.disassociatebrandedlinkfromsubuser with: username: rest.username outputParameters: - type: object mapping: $. - path: /v1/v3/whitelabel/links/{id} name: v3-whitelabel-links-id description: REST surface for v3-whitelabel-links-id. operations: - method: GET name: getbrandedlink description: Retrieve a branded link call: tsg_link_branding_v3-link-branding.getbrandedlink outputParameters: - type: object mapping: $. - method: PATCH name: updatebrandedlink description: Update a branded link call: tsg_link_branding_v3-link-branding.updatebrandedlink with: body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletebrandedlink description: Delete a branded link call: tsg_link_branding_v3-link-branding.deletebrandedlink outputParameters: - type: object mapping: $. - path: /v1/v3/whitelabel/links/{id}/validate name: v3-whitelabel-links-id-validate description: REST surface for v3-whitelabel-links-id-validate. operations: - method: POST name: validatebrandedlink description: Validate a branded link call: tsg_link_branding_v3-link-branding.validatebrandedlink outputParameters: - type: object mapping: $. - path: /v1/v3/whitelabel/links/{link-id}/subuser name: v3-whitelabel-links-link-id-subuser description: REST surface for v3-whitelabel-links-link_id-subuser. operations: - method: POST name: associatebrandedlinkwithsubuser description: Associate a branded link with a subuser call: tsg_link_branding_v3-link-branding.associatebrandedlinkwithsubuser with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: tsg_link_branding_v3-link-branding-mcp port: 9090 transport: http description: MCP adapter for Twilio SendGrid Link Branding API — Link Branding. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-branded-link description: Create a branded link hints: readOnly: false destructive: false idempotent: false call: tsg_link_branding_v3-link-branding.createbrandedlink with: body: tools.body outputParameters: - type: object mapping: $. - name: retrieve-all-branded-links description: Retrieve all branded links hints: readOnly: true destructive: false idempotent: true call: tsg_link_branding_v3-link-branding.listbrandedlink with: limit: tools.limit outputParameters: - type: object mapping: $. - name: retrieve-default-branded-link description: Retrieve the default branded link hints: readOnly: true destructive: false idempotent: true call: tsg_link_branding_v3-link-branding.listdefaultbrandedlink with: domain: tools.domain outputParameters: - type: object mapping: $. - name: retrieve-subuser-s-branded-link description: Retrieve a subuser's branded link hints: readOnly: true destructive: false idempotent: true call: tsg_link_branding_v3-link-branding.listsubuserbrandedlink with: username: tools.username outputParameters: - type: object mapping: $. - name: disassociate-branded-link-subuser description: Disassociate a branded link from a subuser hints: readOnly: false destructive: true idempotent: true call: tsg_link_branding_v3-link-branding.disassociatebrandedlinkfromsubuser with: username: tools.username outputParameters: - type: object mapping: $. - name: retrieve-branded-link description: Retrieve a branded link hints: readOnly: true destructive: false idempotent: true call: tsg_link_branding_v3-link-branding.getbrandedlink outputParameters: - type: object mapping: $. - name: update-branded-link description: Update a branded link hints: readOnly: false destructive: false idempotent: true call: tsg_link_branding_v3-link-branding.updatebrandedlink with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-branded-link description: Delete a branded link hints: readOnly: false destructive: true idempotent: true call: tsg_link_branding_v3-link-branding.deletebrandedlink outputParameters: - type: object mapping: $. - name: validate-branded-link description: Validate a branded link hints: readOnly: true destructive: false idempotent: false call: tsg_link_branding_v3-link-branding.validatebrandedlink outputParameters: - type: object mapping: $. - name: associate-branded-link-subuser description: Associate a branded link with a subuser hints: readOnly: false destructive: false idempotent: false call: tsg_link_branding_v3-link-branding.associatebrandedlinkwithsubuser with: body: tools.body outputParameters: - type: object mapping: $.