---
title: "Get public profile by slug"
---

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

Path: Sureshake API › users

`GET /v2/users/public/{slug}`

## Path parameters

- `slug` (`user-get-public-profile-by-slug.path.slug`; string, required)
  - minLength 1

## Code samples

### cURL

```bash
curl --request GET \
  --url 'https://api.sureshake.com/v2/users/public/<slug>'
```

### TypeScript

```typescript
const url = 'https://api.sureshake.com/v2/users/public/<slug>';
const options = {method: 'GET'};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "https://api.sureshake.com/v2/users/public/<slug>"

response = requests.get(url)

print(response.text)
```

## Responses

### 200

Default Response

#### Example

```json
{
  "data": {
    "id": "string",
    "name": "string",
    "avatar": "string",
    "avatarUrl": "string",
    "avatarAvailability": {
      "status": "absent"
    },
    "backgroundUrl": "string",
    "bio": "string",
    "title": "string",
    "company": "string",
    "location": "string",
    "website": "string",
    "twitter": "string",
    "linkedin": "string",
    "github": "string",
    "about": "string",
    "createdAt": "2019-08-24T14:15:22Z",
    "jobs": [
      {
        "id": "string",
        "title": "string",
        "companyName": "string",
        "companySlug": "string",
        "location": "string",
        "startDate": "2019-08-24T14:15:22Z",
        "endDate": "2019-08-24T14:15:22Z",
        "current": true,
        "description": "string",
        "highlights": [
          "string"
        ]
      }
    ],
    "educations": [
      {
        "id": "string",
        "degree": "string",
        "field": "string",
        "schoolName": "string",
        "schoolSlug": "string",
        "location": "string",
        "startDate": "2019-08-24T14:15:22Z",
        "endDate": "2019-08-24T14:15:22Z",
        "current": true,
        "gpa": "string"
      }
    ],
    "skills": [
      {
        "id": "string",
        "name": "string",
        "category": "string",
        "level": "string"
      }
    ],
    "portfolios": [
      {
        "id": "string",
        "title": "string",
        "slug": "string",
        "summary": "string",
        "portfolioType": "string",
        "coverImageUrl": "string"
      }
    ],
    "followerCount": 0,
    "connectionCount": 0,
    "memberSummary": {
      "joinedAt": "2019-08-24T14:15:22Z",
      "contactUpdatedAt": "2019-08-24T14:15:22Z",
      "avatarUpdatedAt": "2019-08-24T14:15:22Z",
      "verifications": [
        {
          "kind": "string",
          "label": "string",
          "verifiedAt": "2019-08-24T14:15:22Z"
        }
      ]
    }
  },
  "meta": {
    "timestamp": "2019-08-24T14:15:22Z"
  }
}
```

- `data` (`user-get-public-profile-by-slug.response.200.data`; object, required, nullable)
  - `id` (`user-get-public-profile-by-slug.response.200.data.id`; string, required)
  - `name` (`user-get-public-profile-by-slug.response.200.data.name`; string, required)
  - `avatar` (`user-get-public-profile-by-slug.response.200.data.avatar`; string, required, nullable)
  - `avatarUrl` (`user-get-public-profile-by-slug.response.200.data.avatarUrl`; string, required, nullable)
  - `avatarAvailability` (`user-get-public-profile-by-slug.response.200.data.avatarAvailability`; any of, required)
    - any of:
      - `object`
        - `status` (`user-get-public-profile-by-slug.response.200.data.avatarAvailability.1.status`; string, required)
          - one of `"absent"`
      - `object`
        - `status` (`user-get-public-profile-by-slug.response.200.data.avatarAvailability.2.status`; string, required)
          - one of `"available"`
        - `url` (`user-get-public-profile-by-slug.response.200.data.avatarAvailability.2.url`; string, required)
          - format `uri`
      - `object`
        - `status` (`user-get-public-profile-by-slug.response.200.data.avatarAvailability.3.status`; string, required)
          - one of `"unavailable"`
        - `reason` (`user-get-public-profile-by-slug.response.200.data.avatarAvailability.3.reason`; string, required)
          - one of `"signing_dependency_unavailable"`
  - `backgroundUrl` (`user-get-public-profile-by-slug.response.200.data.backgroundUrl`; string, required, nullable)
  - `bio` (`user-get-public-profile-by-slug.response.200.data.bio`; string, required, nullable)
  - `title` (`user-get-public-profile-by-slug.response.200.data.title`; string, required, nullable)
  - `company` (`user-get-public-profile-by-slug.response.200.data.company`; string, required, nullable)
  - `location` (`user-get-public-profile-by-slug.response.200.data.location`; string, required, nullable)
  - `website` (`user-get-public-profile-by-slug.response.200.data.website`; string, required, nullable)
  - `twitter` (`user-get-public-profile-by-slug.response.200.data.twitter`; string, required, nullable)
  - `linkedin` (`user-get-public-profile-by-slug.response.200.data.linkedin`; string, required, nullable)
  - `github` (`user-get-public-profile-by-slug.response.200.data.github`; string, required, nullable)
  - `createdAt` (`user-get-public-profile-by-slug.response.200.data.createdAt`; string, required)
    - format `date-time`
  - `followerCount` (`user-get-public-profile-by-slug.response.200.data.followerCount`; integer, required)
    - min 0
  - `connectionCount` (`user-get-public-profile-by-slug.response.200.data.connectionCount`; integer, required)
    - min 0
  - `about` (`user-get-public-profile-by-slug.response.200.data.about`; string, optional, nullable)
  - `jobs` (`user-get-public-profile-by-slug.response.200.data.jobs`; array<object>, optional)
    - `id` (`user-get-public-profile-by-slug.response.200.data.jobs.id`; string, required)
    - `title` (`user-get-public-profile-by-slug.response.200.data.jobs.title`; string, required)
    - `companyName` (`user-get-public-profile-by-slug.response.200.data.jobs.companyName`; string, required)
    - `companySlug` (`user-get-public-profile-by-slug.response.200.data.jobs.companySlug`; string, required, nullable)
    - `location` (`user-get-public-profile-by-slug.response.200.data.jobs.location`; string, required, nullable)
    - `startDate` (`user-get-public-profile-by-slug.response.200.data.jobs.startDate`; string, required)
      - format `date-time`
    - `endDate` (`user-get-public-profile-by-slug.response.200.data.jobs.endDate`; string, required, nullable)
      - format `date-time`
    - `current` (`user-get-public-profile-by-slug.response.200.data.jobs.current`; boolean, required)
    - `description` (`user-get-public-profile-by-slug.response.200.data.jobs.description`; string, required, nullable)
    - `highlights` (`user-get-public-profile-by-slug.response.200.data.jobs.highlights`; array<string>, required)
  - `educations` (`user-get-public-profile-by-slug.response.200.data.educations`; array<object>, optional)
    - `id` (`user-get-public-profile-by-slug.response.200.data.educations.id`; string, required)
    - `degree` (`user-get-public-profile-by-slug.response.200.data.educations.degree`; string, required)
    - `field` (`user-get-public-profile-by-slug.response.200.data.educations.field`; string, required, nullable)
    - `schoolName` (`user-get-public-profile-by-slug.response.200.data.educations.schoolName`; string, required)
    - `schoolSlug` (`user-get-public-profile-by-slug.response.200.data.educations.schoolSlug`; string, required, nullable)
    - `location` (`user-get-public-profile-by-slug.response.200.data.educations.location`; string, required, nullable)
    - `startDate` (`user-get-public-profile-by-slug.response.200.data.educations.startDate`; string, required)
      - format `date-time`
    - `endDate` (`user-get-public-profile-by-slug.response.200.data.educations.endDate`; string, required, nullable)
      - format `date-time`
    - `current` (`user-get-public-profile-by-slug.response.200.data.educations.current`; boolean, required)
    - `gpa` (`user-get-public-profile-by-slug.response.200.data.educations.gpa`; string, required, nullable)
  - `skills` (`user-get-public-profile-by-slug.response.200.data.skills`; array<object>, optional)
    - `id` (`user-get-public-profile-by-slug.response.200.data.skills.id`; string, required)
    - `name` (`user-get-public-profile-by-slug.response.200.data.skills.name`; string, required)
    - `category` (`user-get-public-profile-by-slug.response.200.data.skills.category`; string, required, nullable)
    - `level` (`user-get-public-profile-by-slug.response.200.data.skills.level`; string, required, nullable)
  - `portfolios` (`user-get-public-profile-by-slug.response.200.data.portfolios`; array<object>, optional)
    - `id` (`user-get-public-profile-by-slug.response.200.data.portfolios.id`; string, required)
    - `title` (`user-get-public-profile-by-slug.response.200.data.portfolios.title`; string, required)
    - `slug` (`user-get-public-profile-by-slug.response.200.data.portfolios.slug`; string, required)
    - `summary` (`user-get-public-profile-by-slug.response.200.data.portfolios.summary`; string, required, nullable)
    - `portfolioType` (`user-get-public-profile-by-slug.response.200.data.portfolios.portfolioType`; string, required)
    - `coverImageUrl` (`user-get-public-profile-by-slug.response.200.data.portfolios.coverImageUrl`; string, required, nullable)
  - `memberSummary` (`user-get-public-profile-by-slug.response.200.data.memberSummary`; object, optional)
    - `joinedAt` (`user-get-public-profile-by-slug.response.200.data.memberSummary.joinedAt`; string, required)
      - format `date-time`
    - `contactUpdatedAt` (`user-get-public-profile-by-slug.response.200.data.memberSummary.contactUpdatedAt`; string, required, nullable)
      - format `date-time`
    - `avatarUpdatedAt` (`user-get-public-profile-by-slug.response.200.data.memberSummary.avatarUpdatedAt`; string, required, nullable)
      - format `date-time`
    - `verifications` (`user-get-public-profile-by-slug.response.200.data.memberSummary.verifications`; array<object>, required)
      - `kind` (`user-get-public-profile-by-slug.response.200.data.memberSummary.verifications.kind`; string, required)
        - minLength 1
      - `label` (`user-get-public-profile-by-slug.response.200.data.memberSummary.verifications.label`; string, required)
        - minLength 1
      - `verifiedAt` (`user-get-public-profile-by-slug.response.200.data.memberSummary.verifications.verifiedAt`; string, required, nullable)
        - format `date-time`
- `meta` (`user-get-public-profile-by-slug.response.200.meta`; object, optional)
  - `timestamp` (`user-get-public-profile-by-slug.response.200.meta.timestamp`; string, required)
    - format `date-time`

### 400

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`user-get-public-profile-by-slug.response.400.error`; object, required)
  - `code` (`user-get-public-profile-by-slug.response.400.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`user-get-public-profile-by-slug.response.400.error.message`; string, required) — Human-readable error message
  - `details` (`user-get-public-profile-by-slug.response.400.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`user-get-public-profile-by-slug.response.400.error.traceId`; string, optional) — Unique ID for log correlation

### 404

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`user-get-public-profile-by-slug.response.404.error`; object, required)
  - `code` (`user-get-public-profile-by-slug.response.404.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`user-get-public-profile-by-slug.response.404.error.message`; string, required) — Human-readable error message
  - `details` (`user-get-public-profile-by-slug.response.404.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`user-get-public-profile-by-slug.response.404.error.traceId`; string, optional) — Unique ID for log correlation

### 500

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`user-get-public-profile-by-slug.response.500.error`; object, required)
  - `code` (`user-get-public-profile-by-slug.response.500.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`user-get-public-profile-by-slug.response.500.error.message`; string, required) — Human-readable error message
  - `details` (`user-get-public-profile-by-slug.response.500.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`user-get-public-profile-by-slug.response.500.error.traceId`; string, optional) — Unique ID for log correlation

### 503

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`user-get-public-profile-by-slug.response.503.error`; object, required)
  - `code` (`user-get-public-profile-by-slug.response.503.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`user-get-public-profile-by-slug.response.503.error.message`; string, required) — Human-readable error message
  - `details` (`user-get-public-profile-by-slug.response.503.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`user-get-public-profile-by-slug.response.503.error.traceId`; string, optional) — Unique ID for log correlation


Source: https://docs.sureshake.com/reference/user-get-public-profile-by-slug/index.md
