Cint Target Groups (Batch) API

Asynchronously create, update and delete Target Groups in batches.

Operations 2

POST /demand/accounts/{account_id}/projects/{project_id}/batch-jobs/update-target-group-project-managers Create a bulk update target group project managers job #
GET /demand/accounts/{account_id}/projects/{project_id}/batch-jobs/update-target-group-project-managers/{job_id} Retrieves a bulk update target group project managers job #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cint-target-groups-batch-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cint-target-groups-batch-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Demand Accounts Target Groups (Batch) Target Groups (Batch) API
  description: 'Cint''s demand ordering API is REST oriented. It has predictable resource based URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs. Error responses are also JSON-encoded and follow a standard format, providing a unique error ID and detailed information about what went wrong.


    Authentication is handled via bearer tokens passed in the `Authorization` header. All requests must also include a `Cint-API-Version` header with a date in `YYYY-MM-DD` format to specify the desired API version. Depending on the version you use, endpoint behavior may differ as we improve our API with every version release.


    While many operations work on a single object per request, the demand ordering API also provides asynchronous batch endpoints for performing bulk updates efficiently on certain resources. For safety, `POST` requests support an `Idempotency-Key` header to allow for safe retries without accidentally performing the same operation twice.

    '
  version: '2025-12-18'
servers:
- description: Production server
  url: https://api.cint.com/v1
security:
- BearerAuth: []
tags:
- name: Target Groups (Batch)
  description: Asynchronously create, update and delete Target Groups in batches.
paths:
  /demand/accounts/{account_id}/projects/{project_id}/batch-jobs/update-target-group-project-managers:
    parameters:
    - $ref: '#/components/parameters/CintAPIVersion-2025-12-18'
    post:
      summary: Create a bulk update target group project managers job
      description: This endpoint creates an asynchronous job to update the project manager for one or more target groups within a specific project. Because the update is processed in the background, a successful request immediately returns a 201 Created status with a Location header. The header contains the URL to the job, which you can use to track its progress.
      operationId: create_bulk_update_target_group_project_manager_job
      parameters:
      - $ref: '#/components/parameters/AccountID'
      - $ref: '#/components/parameters/ProjectID'
      requestBody:
        description: The request body for creating a bulk update job.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBulkUpdateTargetGroupProjectManagerJobRequest'
            example:
            - project_manager_id: b551326b-ac9d-4d32-8823-4f025787dab9
            - target_group_ids:
              - 01BTGNYV6HRNK8K8VKZASZCFP1
              - 01BTGNYV6HRNK8K8VKZASZCFP2
      tags:
      - Target Groups (Batch)
      responses:
        '201':
          description: Returns a 201 Created response with a Location header pointing to the newly created job.
          headers:
            traceparent:
              description: The `traceparent` header carries the trace ID and parent span ID, as defined by the W3C Trace Context specification. It's used to trace a single request as it moves through multiple services.
              required: false
              schema:
                $ref: '#/components/schemas/Traceparent'
            tracestate:
              description: The `tracestate` header complements the `traceparent` header by carrying vendor-specific trace information. This allows different services to add their own data to a trace.
              required: false
              schema:
                $ref: '#/components/schemas/Tracestate'
            location:
              description: 'Contains the URL where a new resource can be found, often returned with a `201 Created` response. It follows the format defined in RFC 7231.

                '
              required: true
              schema:
                type: string
                format: uri-reference
                description: A reference to the resource's location. This can be a full URL, a relative path, or just the resource ID.
                example:
                  full-url:
                    summary: A full URL to the resource
                    value: https://api.cint.com/demand/business-units
                  relative-path:
                    summary: A relative path to the resource
                    value: /demand/business-units
                  resource-id:
                    summary: A resource ID
                    value: fe666fcd-490c-4cb4-b4e0-2f86e15c27e6
        '400':
          $ref: '#/components/responses/Error_BadRequest'
        '401':
          $ref: '#/components/responses/Error_Unauthorized'
        '403':
          $ref: '#/components/responses/Error_Forbidden'
        '404':
          $ref: '#/components/responses/Error_NotFound'
        '500':
          $ref: '#/components/responses/Error_Internal'
  /demand/accounts/{account_id}/projects/{project_id}/batch-jobs/update-target-group-project-managers/{job_id}:
    parameters:
    - $ref: '#/components/parameters/CintAPIVersion-2025-12-18'
    get:
      summary: Retrieves a bulk update target group project managers job
      description: After creating a bulk update job, you can use this endpoint to check its status. You'll need to poll this endpoint until the job's status changes from `Processing` to either `Completed` or `Failed` to get the final results.
      operationId: get_bulk_update_target_group_project_manager_job
      parameters:
      - $ref: '#/components/parameters/AccountID'
      - $ref: '#/components/parameters/ProjectID'
      - $ref: '#/components/parameters/JobID'
      tags:
      - Target Groups (Batch)
      responses:
        '200':
          description: Returns the details of the bulk update job, including its current status (`Processing` ,`Completed`, or `Failed`) and the final results.
          headers:
            traceparent:
              description: The `traceparent` header carries the trace ID and parent span ID, as defined by the W3C Trace Context specification. It's used to trace a single request as it moves through multiple services.
              required: false
              schema:
                $ref: '#/components/schemas/Traceparent'
            tracestate:
              description: The `tracestate` header complements the `traceparent` header by carrying vendor-specific trace information. This allows different services to add their own data to a trace.
              required: false
              schema:
                $ref: '#/components/schemas/Tracestate'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBulkUpdateTargetGroupProjectManagerJobResponse'
              examples:
                JobProcessing:
                  summary: When the job is processing
                  value:
                    job_id: 01BTGNYV6HRNK8K8VKZASZCFP1
                    created_at: '2023-01-01T23:00:00.000Z'
                    status: Processing
                    project_manager_id: b551326b-ac9d-4d32-8823-4f025787dab9
                    updated_target_groups: null
                    failed_target_groups: null
                JobCompleted:
                  summary: When the job is complete
                  description: An example of a completed job with both successfully updated and failed target groups.
                  value:
                    job_id: 01BTGNYV6HRNK8K8VKZASZCFP1
                    created_at: '2023-01-01T23:00:00.000Z'
                    status: Completed
                    project_manager_id: b551326b-ac9d-4d32-8823-4f025787dab9
                    updated_target_groups:
                      data:
                      - target_group_id: 01BTGNYV6HRNK8K8VKZASZCFP1
                        target_group_name: Test Target Group A
                      has_more: false
                    failed_target_groups:
                      data:
                      - target_group_id: 01BTGNYV6HRNK8K8VKZASZCFP2
                        target_group_name: Test Target Group B
                        failure_reason:
                          code: TargetGroupNotFound
                          description: Target group not found.
                      has_more: false
        '400':
          $ref: '#/components/responses/Error_BadRequest'
        '401':
          $ref: '#/components/responses/Error_Unauthorized'
        '403':
          $ref: '#/components/responses/Error_Forbidden'
        '404':
          $ref: '#/components/responses/Error_NotFound'
        '500':
          $ref: '#/components/responses/Error_Internal'
components:
  parameters:
    CintAPIVersion-2025-12-18:
      name: Cint-API-Version
      in: header
      required: true
      schema:
        type: string
        example: 2025-12-18
      description: 'This header is MANDATORY for all API requests. The API version format is `YYYY-MM-DD`.

        '
    AccountID:
      name: account_id
      description: The account's unique identifier.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/AccountID'
    ProjectID:
      name: project_id
      description: A unique identifier for the project, in ULID format.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/ProjectID'
    JobID:
      name: job_id
      description: The character string representing a unique job ID.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/JobID'
  schemas:
    BulkFailedTargetGroups:
      type: object
      description: A list of target groups that failed to be processed in the bulk job, along with the reason for failure.
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              target_group_id:
                $ref: '#/components/schemas/TargetGroupID'
              failure_reason:
                $ref: '#/components/schemas/BulkJobFailureReason'
            required:
            - target_group_id
            - failure_reason
        has_more:
          type: boolean
          description: This field is always `false` as the list of updated or failed target groups is not paginated and will always be returned in full.
          enum:
          - false
      required:
      - data
      - has_more
    ProjectID:
      description: The character string representing a unique project ID (ULID format).
      type: string
      pattern: ^[0-9A-Z]{26}$
      example: 01BTGNYV6HRNK8K8VKZASZCFP0
    JobID:
      description: The character string representing a unique job ID.
      type: string
      example: 01BTGNYV6HRNK8K8VKZASZCFP1
    GetBulkUpdateTargetGroupProjectManagerJobResponse:
      type: object
      description: The response payload containing the details of a bulk update job.
      properties:
        job_id:
          $ref: '#/components/schemas/JobID'
        created_at:
          type: string
          format: date-time
          description: The date and time when the job was created, in ISO 8601 format.
          example: '2023-01-01T23:00:00.000Z'
        status:
          $ref: '#/components/schemas/BulkJobStatus'
        project_manager_id:
          description: The unique identifier of the project manager assigned in this job.
          $ref: '#/components/schemas/UserID'
        updated_target_groups:
          description: A list of target groups that were successfully updated by the job. This object is `null` until the job's status is `Completed`.
          $ref: '#/components/schemas/BulkUpdatedTargetGroups'
        failed_target_groups:
          description: A list of target groups that failed to update. This object is `null` until the job's status is `Completed`.
          $ref: '#/components/schemas/BulkFailedTargetGroups'
    InvalidParam:
      type: object
      description: Describes a single invalid parameter in a request.
      properties:
        name:
          type: string
          description: The name of the parameter that failed validation.
        reason:
          type: string
          description: A short explanation of why the parameter was invalid.
      required:
      - name
      - reason
    CreateBulkUpdateTargetGroupProjectManagerJobRequest:
      type: object
      description: The request body used to create a job that updates the project manager for multiple target groups.
      properties:
        project_manager_id:
          $ref: '#/components/schemas/UserID'
        target_group_ids:
          $ref: '#/components/schemas/TargetGroupIds'
    TargetGroupID:
      description: A unique identifier for the target group, in ULID format.
      type: string
      pattern: ^[0-9A-Z]{26}$
      example: 01BTGNYV6HRNK8K8VKZASZCFP1
    TargetGroupIds:
      type: array
      description: An array of unique target group identifiers to be processed in a bulk job.
      minItems: 1
      items:
        $ref: '#/components/schemas/TargetGroupID'
    AccountID:
      description: The account's unique identifier.
      type: integer
      format: int32
      example: 101
    UserID:
      type: string
      format: uuid
      description: A unique identifier for the user.
      example: b551326b-ac9d-4d32-8823-4f025787dab9
    BulkJobFailureReason:
      type: object
      properties:
        code:
          type: string
          description: A machine-readable code for the failure reason.
          example: TargetGroupNotFound
        description:
          type: string
          description: A human-readable explanation of why the operation failed for this target group.
          example: Target group not found.
    Traceparent:
      type: string
      description: 'The traceparent header carries essential trace context information. This includes the trace ID and parent span ID  as defined by the W3C trace context specification. It is used to pinpoint the position of an incoming request within  the trace graph, facilitating the tracking of distributed operations.

        Note: This field is optional and will be automatically generated by the service if not provided in the request.  The generated value will be included in the response header.'
      example: 00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01
    BulkJobStatus:
      type: string
      description: The status of an asynchronous bulk job. `Processing` indicates the job is still running. `Completed` or `Failed` are terminal states.
      enum:
      - Completed
      - Failed
      - Processing
    BulkUpdatedTargetGroups:
      type: object
      description: A list of target groups that were successfully processed in the bulk job.
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              target_group_id:
                $ref: '#/components/schemas/TargetGroupID'
            required:
            - target_group_id
        has_more:
          type: boolean
          description: This field is always `false` as the list of updated or failed target groups is not paginated and will always be returned in full.
          enum:
          - false
      required:
      - data
      - has_more
    Tracestate:
      type: string
      description: 'The tracestate header provides additional contextual information to the traceparent header.  This enriches the tracing context and offers more fine-grained control

        Note: This field is optional and will be automatically generated by the service if not provided in the request.  The generated value will be included in the response header.'
      example: ot=foo:bar;k1:13
    Error:
      type: object
      description: The standard error object returned for all failed API requests.
      required:
      - object
      - detail
      properties:
        id:
          type: string
          format: uuid
          description: A unique identifier for this specific error instance.
        object:
          type: string
          description: A short informative string identifying the type of the error
          pattern: ^([a-z]*_)*([a-z]*)$
        detail:
          type: string
          description: An error message provides a concise overview of the cause of the error.
        invalid_params:
          type:
          - array
          - 'null'
          description: An optional field containing a list of invalid parameters may be presented in validation errors for additional information.
          items:
            $ref: '#/components/schemas/InvalidParam'
  responses:
    Error_BadRequest:
      description: A request is not valid and can't be processed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            id: 9e278238-d011-4e05-8327-1ce1d5d26254
            object: bad_request_error
            detail: Expected field 'foo' is missing.
    Error_Unauthorized:
      description: A request is unauthorized.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            id: 1dcf0f40-f0d1-4cf6-8c00-c3d019d32faf
            object: authorization_error
            detail: no valid authorization provided for this operation
    Error_Internal:
      description: A request failed due to an internal error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            id: d94b8bb2-a540-4a91-9c05-2aa3ae9a5e1e
            object: unexpected_internal_error
            detail: an internal error has led to the failure of this operation
    Error_NotFound:
      description: A requested resource isn't found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            id: 7a5972ba-0825-4360-b852-fa2430e47034
            object: not_found_error
            detail: resource not found
    Error_Forbidden:
      description: A requested is forbidden.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            id: fe68cdd2-ee87-4dbf-8950-63c5cbca94c7
            object: authorization_error
            detail: you don't have the right permissions to perform this operation
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bearer token used for authentication and authorization. See [Authentication Process](https://developer.cint.com/en/guides#authentication-process) documentation for more information.
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: API Key Authentication