naftiko: 1.0.0-alpha2 info: label: Datadog API — Teams description: 'Datadog API — Teams. 24 operations. Lead operation: Datadog Get Team On-call Users. Self-contained Naftiko capability covering one Datadog business surface.' tags: - Datadog - Teams created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: DATADOG_API_KEY: DATADOG_API_KEY capability: consumes: - type: http namespace: datadog-teams baseUri: https://{subdomain}.{site} description: Datadog API — Teams business capability. Self-contained, no shared references. resources: - name: api-v2-on-call-teams-team_id-on-call path: /api/v2/on-call/teams/{team_id}/on-call operations: - name: getteamoncallusers method: GET description: Datadog Get Team On-call Users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: include in: query type: string description: 'Comma-separated list of included relationships to be returned. Allowed values: `responders`, `escalations`, `escalations.responders`.' - name: team_id in: path type: string description: The team ID required: true - name: api-v2-on-call-teams-team_id-routing-rules path: /api/v2/on-call/teams/{team_id}/routing-rules operations: - name: getoncallteamroutingrules method: GET description: Datadog Get On-call Team Routing Rules outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: The team ID required: true - name: include in: query type: string description: 'Comma-separated list of included relationships to be returned. Allowed values: `rules`, `rules.policy`.' - name: setoncallteamroutingrules method: PUT description: Datadog Set On-call Team Routing Rules outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: The team ID required: true - name: include in: query type: string description: 'Comma-separated list of included relationships to be returned. Allowed values: `rules`, `rules.policy`.' - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-team path: /api/v2/team operations: - name: listteams method: GET description: Datadog Get All Teams outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: sort in: query type: string description: Specifies the order of the returned teams - name: include in: query type: array description: 'Included related resources optionally requested. Allowed enum values: `team_links, user_team_permissions`' - name: filter[keyword] in: query type: string description: Search query. Can be team name, team handle, or email of team member - name: filter[me] in: query type: boolean description: When true, only returns teams the current user belongs to - name: fields[team] in: query type: array description: List of fields that need to be fetched. - name: createteam method: POST description: Datadog Create a Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-team-team_id path: /api/v2/team/{team_id} operations: - name: deleteteam method: DELETE description: Datadog Remove a Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: None required: true - name: getteam method: GET description: Datadog Get a Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: None required: true - name: updateteam method: PATCH description: Datadog Update a Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: None required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-team-team_id-links path: /api/v2/team/{team_id}/links operations: - name: getteamlinks method: GET description: Datadog Get Links for a Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: None required: true - name: createteamlink method: POST description: Datadog Create a Team Link outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: None required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-team-team_id-links-link_id path: /api/v2/team/{team_id}/links/{link_id} operations: - name: deleteteamlink method: DELETE description: Datadog Remove a Team Link outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: None required: true - name: link_id in: path type: string description: None required: true - name: getteamlink method: GET description: Datadog Get a Team Link outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: None required: true - name: link_id in: path type: string description: None required: true - name: updateteamlink method: PATCH description: Datadog Update a Team Link outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: None required: true - name: link_id in: path type: string description: None required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-team-team_id-memberships path: /api/v2/team/{team_id}/memberships operations: - name: getteammemberships method: GET description: Datadog Get Team Memberships outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: None required: true - name: sort in: query type: string description: Specifies the order of returned team memberships - name: filter[keyword] in: query type: string description: Search query, can be user email or name - name: createteammembership method: POST description: Datadog Add a User to a Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: None required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-team-team_id-memberships-user_id path: /api/v2/team/{team_id}/memberships/{user_id} operations: - name: deleteteammembership method: DELETE description: Datadog Remove a User from a Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: None required: true - name: user_id in: path type: string description: None required: true - name: updateteammembership method: PATCH description: Datadog Update a User's Membership Attributes on a Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: None required: true - name: user_id in: path type: string description: None required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-team-team_id-permission-settings path: /api/v2/team/{team_id}/permission-settings operations: - name: getteampermissionsettings method: GET description: Datadog Get Permission Settings for a Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: None required: true - name: api-v2-team-team_id-permission-settings-action path: /api/v2/team/{team_id}/permission-settings/{action} operations: - name: updateteampermissionsetting method: PUT description: Datadog Update Permission Setting for Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: team_id in: path type: string description: None required: true - name: action in: path type: string description: None required: true - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-teams path: /api/v2/teams operations: - name: listincidentteams method: GET description: Datadog Get a List of All Incident Teams outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createincidentteam method: POST description: Datadog Create a New Incident Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: api-v2-teams-team_id path: /api/v2/teams/{team_id} operations: - name: deleteincidentteam method: DELETE description: Datadog Delete an Existing Incident Team outputRawFormat: json outputParameters: - name: result type: object value: $. - name: getincidentteam method: GET description: Datadog Get Details of an Incident Team outputRawFormat: json outputParameters: - name: result type: object value: $. - name: updateincidentteam method: PATCH description: Datadog Update an Existing Incident Team outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.DATADOG_API_KEY}}' exposes: - type: rest namespace: datadog-teams-rest port: 8080 description: REST adapter for Datadog API — Teams. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/v2/on-call/teams/{team-id}/on-call name: api-v2-on-call-teams-team-id-on-call description: REST surface for api-v2-on-call-teams-team_id-on-call. operations: - method: GET name: getteamoncallusers description: Datadog Get Team On-call Users call: datadog-teams.getteamoncallusers with: include: rest.include team_id: rest.team_id outputParameters: - type: object mapping: $. - path: /v1/api/v2/on-call/teams/{team-id}/routing-rules name: api-v2-on-call-teams-team-id-routing-rules description: REST surface for api-v2-on-call-teams-team_id-routing-rules. operations: - method: GET name: getoncallteamroutingrules description: Datadog Get On-call Team Routing Rules call: datadog-teams.getoncallteamroutingrules with: team_id: rest.team_id include: rest.include outputParameters: - type: object mapping: $. - method: PUT name: setoncallteamroutingrules description: Datadog Set On-call Team Routing Rules call: datadog-teams.setoncallteamroutingrules with: team_id: rest.team_id include: rest.include body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/team name: api-v2-team description: REST surface for api-v2-team. operations: - method: GET name: listteams description: Datadog Get All Teams call: datadog-teams.listteams with: sort: rest.sort include: rest.include filter[keyword]: rest.filter[keyword] filter[me]: rest.filter[me] fields[team]: rest.fields[team] outputParameters: - type: object mapping: $. - method: POST name: createteam description: Datadog Create a Team call: datadog-teams.createteam with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/team/{team-id} name: api-v2-team-team-id description: REST surface for api-v2-team-team_id. operations: - method: DELETE name: deleteteam description: Datadog Remove a Team call: datadog-teams.deleteteam with: team_id: rest.team_id outputParameters: - type: object mapping: $. - method: GET name: getteam description: Datadog Get a Team call: datadog-teams.getteam with: team_id: rest.team_id outputParameters: - type: object mapping: $. - method: PATCH name: updateteam description: Datadog Update a Team call: datadog-teams.updateteam with: team_id: rest.team_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/team/{team-id}/links name: api-v2-team-team-id-links description: REST surface for api-v2-team-team_id-links. operations: - method: GET name: getteamlinks description: Datadog Get Links for a Team call: datadog-teams.getteamlinks with: team_id: rest.team_id outputParameters: - type: object mapping: $. - method: POST name: createteamlink description: Datadog Create a Team Link call: datadog-teams.createteamlink with: team_id: rest.team_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/team/{team-id}/links/{link-id} name: api-v2-team-team-id-links-link-id description: REST surface for api-v2-team-team_id-links-link_id. operations: - method: DELETE name: deleteteamlink description: Datadog Remove a Team Link call: datadog-teams.deleteteamlink with: team_id: rest.team_id link_id: rest.link_id outputParameters: - type: object mapping: $. - method: GET name: getteamlink description: Datadog Get a Team Link call: datadog-teams.getteamlink with: team_id: rest.team_id link_id: rest.link_id outputParameters: - type: object mapping: $. - method: PATCH name: updateteamlink description: Datadog Update a Team Link call: datadog-teams.updateteamlink with: team_id: rest.team_id link_id: rest.link_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/team/{team-id}/memberships name: api-v2-team-team-id-memberships description: REST surface for api-v2-team-team_id-memberships. operations: - method: GET name: getteammemberships description: Datadog Get Team Memberships call: datadog-teams.getteammemberships with: team_id: rest.team_id sort: rest.sort filter[keyword]: rest.filter[keyword] outputParameters: - type: object mapping: $. - method: POST name: createteammembership description: Datadog Add a User to a Team call: datadog-teams.createteammembership with: team_id: rest.team_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/team/{team-id}/memberships/{user-id} name: api-v2-team-team-id-memberships-user-id description: REST surface for api-v2-team-team_id-memberships-user_id. operations: - method: DELETE name: deleteteammembership description: Datadog Remove a User from a Team call: datadog-teams.deleteteammembership with: team_id: rest.team_id user_id: rest.user_id outputParameters: - type: object mapping: $. - method: PATCH name: updateteammembership description: Datadog Update a User's Membership Attributes on a Team call: datadog-teams.updateteammembership with: team_id: rest.team_id user_id: rest.user_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/team/{team-id}/permission-settings name: api-v2-team-team-id-permission-settings description: REST surface for api-v2-team-team_id-permission-settings. operations: - method: GET name: getteampermissionsettings description: Datadog Get Permission Settings for a Team call: datadog-teams.getteampermissionsettings with: team_id: rest.team_id outputParameters: - type: object mapping: $. - path: /v1/api/v2/team/{team-id}/permission-settings/{action} name: api-v2-team-team-id-permission-settings-action description: REST surface for api-v2-team-team_id-permission-settings-action. operations: - method: PUT name: updateteampermissionsetting description: Datadog Update Permission Setting for Team call: datadog-teams.updateteampermissionsetting with: team_id: rest.team_id action: rest.action body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/teams name: api-v2-teams description: REST surface for api-v2-teams. operations: - method: GET name: listincidentteams description: Datadog Get a List of All Incident Teams call: datadog-teams.listincidentteams outputParameters: - type: object mapping: $. - method: POST name: createincidentteam description: Datadog Create a New Incident Team call: datadog-teams.createincidentteam with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/v2/teams/{team-id} name: api-v2-teams-team-id description: REST surface for api-v2-teams-team_id. operations: - method: DELETE name: deleteincidentteam description: Datadog Delete an Existing Incident Team call: datadog-teams.deleteincidentteam outputParameters: - type: object mapping: $. - method: GET name: getincidentteam description: Datadog Get Details of an Incident Team call: datadog-teams.getincidentteam outputParameters: - type: object mapping: $. - method: PATCH name: updateincidentteam description: Datadog Update an Existing Incident Team call: datadog-teams.updateincidentteam with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: datadog-teams-mcp port: 9090 transport: http description: MCP adapter for Datadog API — Teams. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: datadog-get-team-call-users description: Datadog Get Team On-call Users hints: readOnly: true destructive: false idempotent: true call: datadog-teams.getteamoncallusers with: include: tools.include team_id: tools.team_id outputParameters: - type: object mapping: $. - name: datadog-get-call-team-routing description: Datadog Get On-call Team Routing Rules hints: readOnly: true destructive: false idempotent: true call: datadog-teams.getoncallteamroutingrules with: team_id: tools.team_id include: tools.include outputParameters: - type: object mapping: $. - name: datadog-set-call-team-routing description: Datadog Set On-call Team Routing Rules hints: readOnly: false destructive: false idempotent: true call: datadog-teams.setoncallteamroutingrules with: team_id: tools.team_id include: tools.include body: tools.body outputParameters: - type: object mapping: $. - name: datadog-get-all-teams description: Datadog Get All Teams hints: readOnly: true destructive: false idempotent: true call: datadog-teams.listteams with: sort: tools.sort include: tools.include filter[keyword]: tools.filter[keyword] filter[me]: tools.filter[me] fields[team]: tools.fields[team] outputParameters: - type: object mapping: $. - name: datadog-create-team description: Datadog Create a Team hints: readOnly: false destructive: false idempotent: false call: datadog-teams.createteam with: body: tools.body outputParameters: - type: object mapping: $. - name: datadog-remove-team description: Datadog Remove a Team hints: readOnly: false destructive: true idempotent: true call: datadog-teams.deleteteam with: team_id: tools.team_id outputParameters: - type: object mapping: $. - name: datadog-get-team description: Datadog Get a Team hints: readOnly: true destructive: false idempotent: true call: datadog-teams.getteam with: team_id: tools.team_id outputParameters: - type: object mapping: $. - name: datadog-update-team description: Datadog Update a Team hints: readOnly: false destructive: false idempotent: true call: datadog-teams.updateteam with: team_id: tools.team_id body: tools.body outputParameters: - type: object mapping: $. - name: datadog-get-links-team description: Datadog Get Links for a Team hints: readOnly: true destructive: false idempotent: true call: datadog-teams.getteamlinks with: team_id: tools.team_id outputParameters: - type: object mapping: $. - name: datadog-create-team-link description: Datadog Create a Team Link hints: readOnly: false destructive: false idempotent: false call: datadog-teams.createteamlink with: team_id: tools.team_id body: tools.body outputParameters: - type: object mapping: $. - name: datadog-remove-team-link description: Datadog Remove a Team Link hints: readOnly: false destructive: true idempotent: true call: datadog-teams.deleteteamlink with: team_id: tools.team_id link_id: tools.link_id outputParameters: - type: object mapping: $. - name: datadog-get-team-link description: Datadog Get a Team Link hints: readOnly: true destructive: false idempotent: true call: datadog-teams.getteamlink with: team_id: tools.team_id link_id: tools.link_id outputParameters: - type: object mapping: $. - name: datadog-update-team-link description: Datadog Update a Team Link hints: readOnly: false destructive: false idempotent: true call: datadog-teams.updateteamlink with: team_id: tools.team_id link_id: tools.link_id body: tools.body outputParameters: - type: object mapping: $. - name: datadog-get-team-memberships description: Datadog Get Team Memberships hints: readOnly: true destructive: false idempotent: true call: datadog-teams.getteammemberships with: team_id: tools.team_id sort: tools.sort filter[keyword]: tools.filter[keyword] outputParameters: - type: object mapping: $. - name: datadog-add-user-team description: Datadog Add a User to a Team hints: readOnly: false destructive: false idempotent: false call: datadog-teams.createteammembership with: team_id: tools.team_id body: tools.body outputParameters: - type: object mapping: $. - name: datadog-remove-user-team description: Datadog Remove a User from a Team hints: readOnly: false destructive: true idempotent: true call: datadog-teams.deleteteammembership with: team_id: tools.team_id user_id: tools.user_id outputParameters: - type: object mapping: $. - name: datadog-update-user-s-membership-attributes description: Datadog Update a User's Membership Attributes on a Team hints: readOnly: false destructive: false idempotent: true call: datadog-teams.updateteammembership with: team_id: tools.team_id user_id: tools.user_id body: tools.body outputParameters: - type: object mapping: $. - name: datadog-get-permission-settings-team description: Datadog Get Permission Settings for a Team hints: readOnly: true destructive: false idempotent: true call: datadog-teams.getteampermissionsettings with: team_id: tools.team_id outputParameters: - type: object mapping: $. - name: datadog-update-permission-setting-team description: Datadog Update Permission Setting for Team hints: readOnly: false destructive: false idempotent: true call: datadog-teams.updateteampermissionsetting with: team_id: tools.team_id action: tools.action body: tools.body outputParameters: - type: object mapping: $. - name: datadog-get-list-all-incident description: Datadog Get a List of All Incident Teams hints: readOnly: true destructive: false idempotent: true call: datadog-teams.listincidentteams outputParameters: - type: object mapping: $. - name: datadog-create-new-incident-team description: Datadog Create a New Incident Team hints: readOnly: false destructive: false idempotent: false call: datadog-teams.createincidentteam with: body: tools.body outputParameters: - type: object mapping: $. - name: datadog-delete-existing-incident-team description: Datadog Delete an Existing Incident Team hints: readOnly: false destructive: true idempotent: true call: datadog-teams.deleteincidentteam outputParameters: - type: object mapping: $. - name: datadog-get-details-incident-team description: Datadog Get Details of an Incident Team hints: readOnly: true destructive: false idempotent: true call: datadog-teams.getincidentteam outputParameters: - type: object mapping: $. - name: datadog-update-existing-incident-team description: Datadog Update an Existing Incident Team hints: readOnly: false destructive: false idempotent: true call: datadog-teams.updateincidentteam with: body: tools.body outputParameters: - type: object mapping: $.