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

# Crew profile (scope: crew:profile:read / :full:read)

> Read a crew member's profile.

Base fields (crew:profile:read) are always returned. Employment history is
added only when crew:profile:full:read is effective for the crew member.
404 if the crew is not on an attached vessel.



## OpenAPI

````yaml /api-reference/openapi.json get /api/v2/employers/me/crew/{crew_unique_id}/profile
openapi: 3.1.0
info:
  title: crewpass-api-v2
  description: >-
    CrewPass V2 Partner API — a scope-gated, consent-intersected, multi-tenant
    front door onto existing CrewPass crew/vessel/compliance data.
  version: 0.1.0
servers: []
security: []
paths:
  /api/v2/employers/me/crew/{crew_unique_id}/profile:
    get:
      tags:
        - employers
      summary: 'Crew profile (scope: crew:profile:read / :full:read)'
      description: >-
        Read a crew member's profile.


        Base fields (crew:profile:read) are always returned. Employment history
        is

        added only when crew:profile:full:read is effective for the crew member.

        404 if the crew is not on an attached vessel.
      operationId: crew_profile_api_v2_employers_me_crew__crew_unique_id__profile_get
      parameters:
        - name: crew_unique_id
          in: path
          required: true
          schema:
            type: string
            title: Crew Unique Id
        - name: authorization
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Authorization
        - name: X-Partner-API-Key
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: X-Partner-Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CrewProfileResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - PartnerApiKey: []
components:
  schemas:
    CrewProfileResponse:
      properties:
        crew_unique_id:
          type: string
          title: Crew Unique Id
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
        rank:
          anyOf:
            - type: string
            - type: 'null'
          title: Rank
        nationality:
          anyOf:
            - type: string
            - type: 'null'
          title: Nationality
        languages:
          anyOf:
            - items:
                $ref: '#/components/schemas/LanguageItem'
              type: array
            - type: 'null'
          title: Languages
        skills:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Skills
        years_experience:
          anyOf:
            - type: string
            - type: 'null'
          title: Years Experience
        bio:
          anyOf:
            - type: string
            - type: 'null'
          title: Bio
        email:
          anyOf:
            - type: string
            - type: 'null'
          title: Email
        phone:
          anyOf:
            - type: string
            - type: 'null'
          title: Phone
        country_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Country Code
        profile_photo_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Profile Photo Url
        employment_history:
          anyOf:
            - items:
                $ref: '#/components/schemas/EmploymentHistoryItem'
              type: array
            - type: 'null'
          title: Employment History
        full_profile:
          type: boolean
          title: Full Profile
          default: false
        date_of_birth:
          anyOf:
            - type: string
            - type: 'null'
          title: Date Of Birth
        address:
          anyOf:
            - $ref: '#/components/schemas/AddressBlock'
            - type: 'null'
        passport:
          anyOf:
            - $ref: '#/components/schemas/PassportBlock'
            - type: 'null'
        visas:
          anyOf:
            - items:
                $ref: '#/components/schemas/VisaItem'
              type: array
            - type: 'null'
          title: Visas
      type: object
      required:
        - crew_unique_id
      title: CrewProfileResponse
      description: >-
        `GET /employers/me/crew/{id}/profile` — profile read.


        Base fields (crew:profile:read) are always present.
        ``employment_history``

        and the identity block (``date_of_birth``, ``address``, ``passport``,

        ``visas``) are populated only when crew:profile:full:read is effective
        for

        the crew member. Identity fields read but absent in the source come back

        ``None`` — the field is present, the value is not invented.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    LanguageItem:
      properties:
        language:
          type: string
          title: Language
        proficiency:
          anyOf:
            - type: string
            - type: 'null'
          title: Proficiency
      type: object
      required:
        - language
      title: LanguageItem
    EmploymentHistoryItem:
      properties:
        vessel_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Vessel Name
        role:
          anyOf:
            - type: string
            - type: 'null'
          title: Role
        started_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Started At
        ended_at:
          anyOf:
            - type: string
            - type: 'null'
          title: Ended At
        source:
          anyOf:
            - type: string
            - type: 'null'
          title: Source
      type: object
      title: EmploymentHistoryItem
    AddressBlock:
      properties:
        line1:
          anyOf:
            - type: string
            - type: 'null'
          title: Line1
        line2:
          anyOf:
            - type: string
            - type: 'null'
          title: Line2
        city:
          anyOf:
            - type: string
            - type: 'null'
          title: City
        state:
          anyOf:
            - type: string
            - type: 'null'
          title: State
        country:
          anyOf:
            - type: string
            - type: 'null'
          title: Country
        postcode:
          anyOf:
            - type: string
            - type: 'null'
          title: Postcode
        full_address:
          anyOf:
            - type: string
            - type: 'null'
          title: Full Address
      type: object
      title: AddressBlock
    PassportBlock:
      properties:
        nationality:
          anyOf:
            - type: string
            - type: 'null'
          title: Nationality
        number:
          anyOf:
            - type: string
            - type: 'null'
          title: Number
        expiry:
          anyOf:
            - type: string
            - type: 'null'
          title: Expiry
      type: object
      title: PassportBlock
    VisaItem:
      properties:
        type:
          anyOf:
            - type: string
            - type: 'null'
          title: Type
        country:
          anyOf:
            - type: string
            - type: 'null'
          title: Country
        expiry:
          anyOf:
            - type: string
            - type: 'null'
          title: Expiry
      type: object
      title: VisaItem
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    PartnerApiKey:
      type: http
      scheme: bearer
      description: Partner API key (`cpk_live_*` / `cpk_test_*`) as a Bearer token.

````