# Full profiles: every contract, feedback both ways, education

**Use case:** 

Paste profile URLs or ids. Each profile is read from Upwork now and comes back with its complete contract history (hours, charges also on private contracts, the client's feedback and the freelancer's feedback about the client), education, employment history, languages, certificates, other experiences, portfolios and testimonials. Billed as profile_live per profile, about 10 s each.

## Input

```json
{
  "query": "python developer",
  "profileUrls": [
    "https://www.upwork.com/freelancers/~01d699cdd471617458",
    "~01b237e28ffe15f101"
  ],
  "fullProfiles": true,
  "sort": "relevance",
  "maxItems": 50,
  "maxAgeDays": 30,
  "includeStale": false,
  "includePrivate": false,
  "liveSearch": false,
  "maxPages": 10
}
```

## Output

```json
{
  "ciphertext": {
    "label": "Ciphertext",
    "format": "string"
  },
  "url": {
    "label": "URL",
    "format": "string"
  },
  "person_id": {
    "label": "Person id",
    "format": "string"
  },
  "name": {
    "label": "Name",
    "format": "string"
  },
  "title": {
    "label": "Title",
    "format": "string"
  },
  "overview": {
    "label": "Overview",
    "format": "string"
  },
  "country": {
    "label": "Country",
    "format": "string"
  },
  "country_code": {
    "label": "Country code",
    "format": "string"
  },
  "region": {
    "label": "Region",
    "format": "string"
  },
  "city": {
    "label": "City",
    "format": "string"
  },
  "state": {
    "label": "State",
    "format": "string"
  },
  "timezone": {
    "label": "Timezone",
    "format": "string"
  },
  "rate": {
    "label": "Rate (USD/h)",
    "format": "number"
  },
  "jss": {
    "label": "JSS",
    "format": "integer"
  },
  "jss_hidden": {
    "label": "Jss hidden",
    "format": "boolean"
  },
  "total_earnings": {
    "label": "Earnings (USD)",
    "format": "number"
  },
  "earnings_precision": {
    "label": "Earnings precision",
    "format": "string"
  },
  "earnings_hidden": {
    "label": "Earnings hidden",
    "format": "boolean"
  },
  "badge": {
    "label": "Badge",
    "format": "string"
  },
  "top_rated": {
    "label": "Top Rated",
    "format": "boolean"
  },
  "top_rated_plus": {
    "label": "Top Rated Plus",
    "format": "boolean"
  },
  "hours": {
    "label": "Hours",
    "format": "number"
  },
  "jobs_total": {
    "label": "Jobs",
    "format": "integer"
  },
  "jobs_hourly": {
    "label": "Hourly jobs",
    "format": "integer"
  },
  "jobs_fixed": {
    "label": "Fixed-price jobs",
    "format": "integer"
  },
  "contracts_total": {
    "label": "Contracts",
    "format": "integer"
  },
  "member_since": {
    "label": "Member since",
    "format": "string"
  },
  "last_worked_on": {
    "label": "Last worked",
    "format": "string"
  },
  "hire_again_pct": {
    "label": "Hire again %",
    "format": "number"
  },
  "rating": {
    "label": "Rating",
    "format": "number"
  },
  "feedback_count": {
    "label": "Feedback count",
    "format": "integer"
  },
  "recent_hours": {
    "label": "Recent hours",
    "format": "number"
  },
  "recent_jobs": {
    "label": "Recent jobs",
    "format": "integer"
  },
  "availability": {
    "label": "Availability",
    "format": "string"
  },
  "contract_to_hire": {
    "label": "Contract to hire",
    "format": "boolean"
  },
  "id_verified": {
    "label": "ID verified",
    "format": "boolean"
  },
  "phone_verified": {
    "label": "Phone verified",
    "format": "boolean"
  },
  "skills": {
    "label": "Skills",
    "format": "array"
  },
  "portfolio_count": {
    "label": "Portfolio items",
    "format": "integer"
  },
  "agency_name": {
    "label": "Agency name",
    "format": "string"
  },
  "agency_ciphertext": {
    "label": "Agency ciphertext",
    "format": "string"
  },
  "status": {
    "label": "Status",
    "format": "string"
  },
  "private_since": {
    "label": "Private since",
    "format": "string"
  },
  "source": {
    "label": "Source",
    "format": "string"
  },
  "completeness": {
    "label": "Completeness",
    "format": "string"
  },
  "fetched_at": {
    "label": "Read from Upwork",
    "format": "string"
  },
  "age_days": {
    "label": "Age (days)",
    "format": "integer"
  },
  "first_seen_at": {
    "label": "First seen",
    "format": "string"
  },
  "last_seen_at": {
    "label": "Last seen",
    "format": "string"
  },
  "card_seen_at": {
    "label": "Last in a search",
    "format": "string"
  },
  "versions": {
    "label": "Versions",
    "format": "integer"
  },
  "changes": {
    "label": "Changes",
    "format": "array"
  },
  "contracts": {
    "label": "Contracts",
    "format": "array"
  },
  "contracts_in_progress": {
    "label": "Contracts in progress",
    "format": "array"
  },
  "contracts_complete": {
    "label": "Contracts complete",
    "format": "boolean"
  },
  "portfolios": {
    "label": "Portfolios",
    "format": "array"
  },
  "testimonials": {
    "label": "Testimonials",
    "format": "array"
  },
  "specialized_profiles": {
    "label": "Specialized profiles",
    "format": "array"
  },
  "education": {
    "label": "Education",
    "format": "array"
  },
  "employment_history": {
    "label": "Employment history",
    "format": "array"
  },
  "languages": {
    "label": "Languages",
    "format": "array"
  },
  "certificates": {
    "label": "Certificates",
    "format": "array"
  },
  "other_experiences": {
    "label": "Other experiences",
    "format": "array"
  },
  "sections_fetched_at": {
    "label": "Sections fetched at",
    "format": "string"
  },
  "rank": {
    "label": "Rank",
    "format": "integer"
  }
}
```

## About this Actor

This example demonstrates how to use [Upwork Freelancer Search — Rates, Earnings, JSS, Work History](https://apify.com/moxlade/upwork-freelancers.md) with a specific input configuration. Visit the [Actor detail page](https://apify.com/moxlade/upwork-freelancers.md) to learn more, explore other use cases, and run it yourself.


## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
This Task's input is already configured above — use it as-is rather than inventing a new one.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For full API examples (JavaScript, Python, CLI, MCP, OpenAPI), see this Task's Actor page: https://apify.com/moxlade/upwork-freelancers.md

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).
