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

# Get Agent

> Retrieve details for a specific agent

Returns detailed information about a specific agent by their ID. Only agents sitting under a downstream entity in your upstream entity's network are visible.


## OpenAPI

````yaml openapi/v2.json GET /v2/upstream/agents/{agentId}
openapi: 3.0.0
info:
  title: Turris Public API
  description: API for managing insurance compliance data
  version: 2.0.0
  contact: {}
servers:
  - url: https://public.api.live.turrisfi.com
    description: Production
  - url: https://public.api.sandbox.turrisfi.com
    description: Sandbox
security: []
tags: []
paths:
  /v2/upstream/agents/{agentId}:
    get:
      tags:
        - upstream/agents
      operationId: AgentFeatureV2Controller_getAgent_v2
      parameters:
        - name: agentId
          required: true
          in: path
          description: The unique identifier of the agent
          schema:
            type: string
        - name: producerCode
          required: false
          in: query
          description: Filter by producer code
          schema:
            example: PROD-001
            type: string
        - name: downstreamEntityAssociationId
          required: false
          in: query
          description: Filter by downstream entity association ID
          schema:
            example: 507f1f77bcf86cd799439011
            type: string
      responses:
        '200':
          description: Agent details
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AgentEntryResponse'
                  requestId:
                    type: string
                    description: Unique request identifier
                    example: dev-2c5e7cf2-9acf-4c8c-ab2f-b81f39d775a8
                  timestamp:
                    type: string
                    description: Response timestamp
                    example: '2025-11-12T20:49:03.293Z'
                required:
                  - data
                  - requestId
                  - timestamp
        '400':
          description: Agent associated with multiple downstream entities - specify filter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '401':
          description: Invalid or missing auth token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
        '404':
          description: Agent not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDto'
components:
  schemas:
    AgentEntryResponse:
      type: object
      properties:
        agent:
          description: Agent details
          allOf:
            - $ref: '#/components/schemas/AgentData'
        creationPath:
          type: string
          description: How the agent was onboarded
          enum:
            - invitation
            - addition
            - bulk-upload
            - market
            - hubspot sync
          example: addition
        niprDataSubscription:
          description: NIPR data subscription for this agent
          allOf:
            - $ref: '#/components/schemas/ComplianceDataSubscriptionResponse'
        isUploadedByUpstreamEntity:
          type: boolean
          description: Whether the agent was uploaded by the upstream entity
        isDeleted:
          type: boolean
          description: Whether the agent entry is soft-deleted
        isArchived:
          type: boolean
          description: Whether the agent entry is archived
        authority:
          description: Authority settings for this agent per product
          type: array
          items:
            $ref: '#/components/schemas/AuthorityResponse'
        email:
          type: string
          description: Agent email address
        isDeliverable:
          type: boolean
          description: Whether the email is deliverable
        externalId:
          type: string
          description: External identifier for the agent
      required:
        - agent
        - creationPath
        - niprDataSubscription
        - isUploadedByUpstreamEntity
        - isDeleted
        - isArchived
        - authority
    ErrorResponseDto:
      type: object
      properties:
        statusCode:
          type: number
          description: HTTP status code
        requestId:
          type: string
          description: Unique request identifier for debugging
        errorType:
          type: string
          description: >-
            Machine-readable error classification. Branch on this rather than on
            `errorMessage`, which is prose and may change. Authentication
            failures returned by our identity provider are forwarded verbatim,
            so a 401 can carry a code outside this list; treat an unrecognised
            value as a generic failure of its HTTP status.
          enum:
            - conflict
            - contact_not_authorized
            - document_exceeds_page_limit
            - downstream_entity_member_exists
            - duplicate_external_id_error
            - duplicate_member_email
            - duplicate_producer_code_error
            - forbidden
            - gateway_timeout
            - inactive_email
            - internal_server_error
            - invalid_email
            - invalid_email_for_invites
            - invalid_organization_category
            - invalid_organization_slug
            - invalid_phone_number
            - invalid_token
            - invite_limit_reached
            - jwt_invalid
            - m2m_client_not_found
            - not_found
            - organization_already_exists
            - organization_slug_already_used
            - payment_required
            - producer_agreement_required
            - product_feature_subscription_required
            - service_unavailable
            - session_authorization_error
            - some_custom_error_string
            - throttled
            - too_many_requests
            - unauthorized
            - unauthorized_client
            - unexpected_400_stytch_error
            - unexpected_403_stytch_error
            - unexpected_404_stytch_error
            - unexpected_error
            - unexpected_stytch_error
            - unprocessable_entity
            - validation_error
          example: validation_error
        errorMessage:
          description: Array of error messages
          type: array
          items:
            type: string
        timestamp:
          type: string
          description: ISO timestamp when the error occurred
        details:
          type: object
          description: Additional error context
      required:
        - statusCode
        - requestId
        - errorType
        - errorMessage
        - timestamp
    AgentData:
      type: object
      properties:
        _id:
          type: string
          description: Unique identifier of the agent
        npn:
          type: string
          description: National Producer Number
        firstName:
          type: string
          description: Agent first name
        middleName:
          type: string
          description: >-
            Agent middle name (optional). Auto-populated from NIPR if absent on
            creation.
        lastName:
          type: string
          description: Agent last name
        downstreamEntityAgentAssociationIds:
          description: IDs of downstream entity agent associations this agent belongs to
          type: array
          items:
            type: string
        createdAt:
          type: string
          description: Timestamp when the agent was created
        updatedAt:
          type: string
          description: Timestamp when the agent was last updated
      required:
        - _id
        - npn
        - firstName
        - lastName
        - downstreamEntityAgentAssociationIds
        - createdAt
        - updatedAt
    ComplianceDataSubscriptionResponse:
      type: object
      properties:
        dataOwnerId:
          type: string
          description: Data owner ID
        dataOwnerModel:
          type: string
          description: Data owner model type
        entityModel:
          type: string
          description: Entity model type
        npn:
          type: string
          description: National Producer Number
          nullable: true
        entityInfo:
          description: NIPR entity info details
          allOf:
            - $ref: '#/components/schemas/NiprEntityInfoResponse'
        lastSynchronizationDate:
          format: date-time
          type: string
          description: Last synchronization date
        pdbAlertsSubscriptionStatus:
          type: string
          description: PDB Alerts subscription status
        pdbAlertsPausedAt:
          format: date-time
          type: string
          description: Date when PDB Alerts was paused
      required:
        - dataOwnerId
        - dataOwnerModel
        - entityModel
        - entityInfo
    AuthorityResponse:
      type: object
      properties:
        upstreamEntityProductId:
          type: string
          description: Upstream entity product ID
        requestedStates:
          description: States requested for this product
          example:
            - CA
            - TX
            - NY
          type: array
          items:
            type: string
        approvedStates:
          description: States approved for this product
          example:
            - CA
            - TX
          type: array
          items:
            type: string
      required:
        - upstreamEntityProductId
        - requestedStates
        - approvedStates
    NiprEntityInfoResponse:
      type: object
      properties:
        status:
          type: string
          description: Status of the NIPR data subscription
        jobId:
          type: string
          description: Job ID for the NIPR entity info request
        message:
          type: string
          description: Message associated with the status
        rawEntityInfoId:
          type: string
          description: Raw entity info document ID
      required:
        - status

````

## Related topics

- [Get Agent Appointments](/api-reference/v2/appointments/agent-appointments.md)
- [Get Agent Licenses](/api-reference/v2/licenses/agent-licenses.md)
- [Get Agent Regulatory Actions](/api-reference/v2/regulatory-actions/agent-regulatory-actions.md)
