> ## Documentation Index
> Fetch the complete documentation index at: https://docs.api.tamtam.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create an ICP criteria

> Create a new ICP criteria for the authenticated account.



## OpenAPI

````yaml /reference/openapi.yaml post /v2/icp-criteria
openapi: 3.1.0
info:
  title: Tamtam Public API
  version: 2.0.0
servers:
  - url: https://api.tamtam.ai/api
security: []
paths:
  /v2/icp-criteria:
    post:
      tags:
        - ICP Criteria
      summary: Create an ICP criteria
      description: Create a new ICP criteria for the authenticated account.
      operationId: create-icp-criteria
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateICPCriteriaInputBody'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ICPCriteriaDto'
          description: Created
        default:
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: Error
      security:
        - apikeyAuth: []
        - bearerAuth: []
components:
  schemas:
    CreateICPCriteriaInputBody:
      additionalProperties: false
      properties:
        name:
          description: ICP criteria name
          examples:
            - Enterprise EMEA
          type: string
        tier:
          description: Priority tier (lower = higher priority)
          examples:
            - 1
          format: int32
          type: integer
        user_email:
          description: Email of the user who creates this ICP criteria (for attribution)
          examples:
            - elliot@tamtam.ai
          type: string
      required:
        - name
        - tier
      type: object
    ICPCriteriaDto:
      additionalProperties: false
      properties:
        criteria:
          description: >-
            Rules that define this ICP — a mix of firmographic filters (HQ
            country, industry, employees, smart verticals, …) and custom
            AccountCriteria-backed rules.
          items:
            $ref: '#/components/schemas/CriteriaICPRuleDto'
          type:
            - array
            - 'null'
        id:
          description: ICP criteria UUID
          type: string
        name:
          description: ICP criteria name
          type: string
        tier:
          description: Priority tier (lower = higher priority)
          format: int32
          type: integer
      required:
        - id
        - name
        - tier
        - criteria
      type: object
    ErrorModel:
      additionalProperties: false
      properties:
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          examples:
            - Property foo is required but is missing.
          type: string
        errors:
          description: Optional list of individual error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type:
            - array
            - 'null'
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem.
          examples:
            - https://example.com/error-log/abc123
          format: uri
          type: string
        status:
          description: HTTP status code
          examples:
            - 400
          format: int64
          type: integer
        title:
          description: >-
            A short, human-readable summary of the problem type. This value
            should not change between occurrences of the error.
          examples:
            - Bad Request
          type: string
        type:
          default: about:blank
          description: A URI reference to human-readable documentation for the error.
          examples:
            - https://example.com/errors/example
          format: uri
          type: string
      type: object
    CriteriaICPRuleDto:
      additionalProperties: false
      properties:
        account_criteria_id:
          description: >-
            Account criteria UUID (set when this rule is backed by a custom
            AccountCriteria — a question/signal defined on the account, such as
            "Uses Salesforce").
          type: string
        account_criteria_name:
          description: >-
            Name of the AccountCriteria referenced by account_criteria_id (e.g.
            "Uses Salesforce"). Set together with account_criteria_id.
          type: string
        firmographic_kind:
          description: >-
            Firmographic kind (set when this rule filters on a built-in
            firmographic attribute). One of: hq_country, hq_region, hq_city,
            activity_country, smart_vertical, linkedin_industry,
            linkedin_employees, linkedin_company_size, linkedin_founded,
            linkedin_company_type.
          type: string
        id:
          description: Criteria rule UUID
          type: string
        importance:
          description: >-
            Weight of this rule in the ICP score. One of: low, medium, high,
            mandatory (mismatch ⇒ score 0), mandatory_if_known (mismatch ⇒ score
            0 but missing data is tolerated).
          type: string
        rule:
          $ref: '#/components/schemas/CriteriaICPRuleBodyDto'
          description: >-
            Rule definition: comparison operator(s) applied to the value of the
            AccountCriteria answer or firmographic attribute.
      required:
        - id
        - rule
        - importance
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
    CriteriaICPRuleBodyDto:
      additionalProperties: false
      properties:
        bool_eq:
          description: Boolean equals
          type: boolean
        contains:
          description: >-
            Contains any of.


            Value format depends on firmographic_kind:


            - smart_vertical → UUIDs. See smart_verticals_contains for the
            resolved {id, name} pairs.

            - linkedin_industry → industry names. Resolve via [Search
            industries](/api-reference/industries/search-industries) and pass
            the returned name.
          items:
            type: string
          type:
            - array
            - 'null'
        eq:
          description: Equals
          format: double
          type: number
        gt:
          description: Greater than
          format: double
          type: number
        gte:
          description: Greater than or equal
          format: double
          type: number
        lt:
          description: Less than
          format: double
          type: number
        lte:
          description: Less than or equal
          format: double
          type: number
        not_contains:
          description: >-
            Does not contain any of.


            Value format depends on firmographic_kind:


            - smart_vertical → UUIDs. See smart_verticals_not_contains for the
            resolved {id, name} pairs.

            - linkedin_industry → industry names. Resolve via [Search
            industries](/api-reference/industries/search-industries) and pass
            the returned name.
          items:
            type: string
          type:
            - array
            - 'null'
        smart_verticals_contains:
          description: >-
            Resolved {id, name} pairs for the UUIDs in contains. Only set when
            firmographic_kind=smart_vertical.
          items:
            $ref: '#/components/schemas/SmartVerticalDto'
          type:
            - array
            - 'null'
        smart_verticals_not_contains:
          description: >-
            Resolved {id, name} pairs for the UUIDs in not_contains. Only set
            when firmographic_kind=smart_vertical.
          items:
            $ref: '#/components/schemas/SmartVerticalDto'
          type:
            - array
            - 'null'
      type: object
    SmartVerticalDto:
      additionalProperties: false
      properties:
        id:
          description: Smart vertical UUID
          type: string
        name:
          description: Smart vertical name
          type: string
      required:
        - id
        - name
      type: object
  securitySchemes:
    apikeyAuth:
      description: Account API key passed in the Authorization header
      in: header
      name: Authorization
      type: apiKey
    bearerAuth:
      description: Bearer JWT obtained via the OAuth 2.1 authorization flow
      scheme: bearer
      type: http

````