Noun Project · Capability

Noun Project API V2 — Blocklist

Blocklist — Manage per-client blocklists for icon IDs, collection IDs, and terms in the Noun Project API. 3 operations. Lead operation: Get Client Blocklist returns the current blocklist (cached 10 minutes). Self-contained Naftiko capability covering one Noun Project business surface.

Run with Naftiko Noun ProjectBlocklistContent Moderation

What You Can Do

GET
Getblocklist — Return the current blocklist for the calling client key.
/v1/blocklist
POST
Addblocklistids — Add icon IDs or collection IDs to the client blocklist.
/v1/blocklist/ids
POST
Addblocklistterms — Add terms and phrases to the client blocklist.
/v1/blocklist/terms

MCP Tools

get-blocklist

Return the current blocklist for the calling client key.

read-only idempotent
add-blocklist-ids

Add icon IDs or collection IDs to the client blocklist.

add-blocklist-terms

Add terms and phrases to the client blocklist.

Capability Spec

noun-project-blocklist.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "Noun Project API V2 — Blocklist"
  description: >-
    Blocklist — Manage per-client blocklists for icon IDs, collection IDs, and
    terms in the Noun Project API. 3 operations. Lead operation: Get Client
    Blocklist returns the current blocklist (cached 10 minutes). Self-contained
    Naftiko capability covering one Noun Project business surface.
  tags:
    - Noun Project
    - Blocklist
    - Content Moderation
  created: "2026-05-28"
  modified: "2026-05-28"

binds:
  - namespace: env
    keys:
      NOUN_PROJECT_OAUTH_KEY: NOUN_PROJECT_OAUTH_KEY
      NOUN_PROJECT_OAUTH_SECRET: NOUN_PROJECT_OAUTH_SECRET

capability:

  consumes:
    - type: http
      namespace: "noun-project-blocklist"
      baseUri: "https://api.thenounproject.com"
      description: "Noun Project API V2 — Blocklist business capability. Self-contained, no shared references."
      authentication:
        type: oauth1
        consumerKey: "{{env.NOUN_PROJECT_OAUTH_KEY}}"
        consumerSecret: "{{env.NOUN_PROJECT_OAUTH_SECRET}}"
        signatureMethod: HMAC-SHA1
      resources:
        - name: "client-blocklist"
          path: "/v2/client/blacklist"
          operations:
            - name: "getBlocklist"
              method: GET
              description: "Return the current blocklist for the calling client key."
              inputParameters: []
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "client-blocklist-id"
          path: "/v2/client/blacklist/id"
          operations:
            - name: "addBlocklistIds"
              method: POST
              description: "Add icon IDs or collection IDs to the client blocklist."
              inputParameters:
                - name: type
                  in: query
                  type: string
                  required: false
                  description: "Type of identifier being blocked (icon or collection)."
                - name: body
                  in: body
                  type: object
                  required: true
                  description: "Request body containing blocklist identifiers and overwrite flag."
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "client-blocklist-term"
          path: "/v2/client/blacklist/term"
          operations:
            - name: "addBlocklistTerms"
              method: POST
              description: "Add terms and phrases to the client blocklist."
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
                  description: "Request body containing blocklist terms and overwrite flag."
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

  exposes:
    - type: rest
      namespace: "noun-project-blocklist-rest"
      port: 8080
      description: "REST adapter for Noun Project API V2 — Blocklist."
      resources:
        - path: "/v1/blocklist"
          name: "blocklist"
          description: "REST surface for the client blocklist."
          operations:
            - method: GET
              name: "getBlocklist"
              description: "Return the current blocklist for the calling client key."
              call: "noun-project-blocklist.getBlocklist"
              with: {}
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/blocklist/ids"
          name: "blocklist-ids"
          description: "REST surface for adding blocklist identifiers."
          operations:
            - method: POST
              name: "addBlocklistIds"
              description: "Add icon IDs or collection IDs to the client blocklist."
              call: "noun-project-blocklist.addBlocklistIds"
              with:
                type: "rest.type"
                body: "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/blocklist/terms"
          name: "blocklist-terms"
          description: "REST surface for adding blocklist terms."
          operations:
            - method: POST
              name: "addBlocklistTerms"
              description: "Add terms and phrases to the client blocklist."
              call: "noun-project-blocklist.addBlocklistTerms"
              with:
                body: "rest.body"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      namespace: "noun-project-blocklist-mcp"
      port: 9090
      transport: http
      description: "MCP adapter for Noun Project API V2 — Blocklist."
      tools:
        - name: "get-blocklist"
          description: "Return the current blocklist for the calling client key."
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "noun-project-blocklist.getBlocklist"
          with: {}
          outputParameters:
            - type: object
              mapping: "$."
        - name: "add-blocklist-ids"
          description: "Add icon IDs or collection IDs to the client blocklist."
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: "noun-project-blocklist.addBlocklistIds"
          with:
            type: "tools.type"
            body: "tools.body"
          outputParameters:
            - type: object
              mapping: "$."
        - name: "add-blocklist-terms"
          description: "Add terms and phrases to the client blocklist."
          hints:
            readOnly: false
            destructive: false
            idempotent: false
          call: "noun-project-blocklist.addBlocklistTerms"
          with:
            body: "tools.body"
          outputParameters:
            - type: object
              mapping: "$."