Upwork 0.0.0-dev.1

This is a prerelease version of Upwork.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Upwork --version 0.0.0-dev.1
                    
NuGet\Install-Package Upwork -Version 0.0.0-dev.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Upwork" Version="0.0.0-dev.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Upwork" Version="0.0.0-dev.1" />
                    
Directory.Packages.props
<PackageReference Include="Upwork" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Upwork --version 0.0.0-dev.1
                    
#r "nuget: Upwork, 0.0.0-dev.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Upwork@0.0.0-dev.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Upwork&version=0.0.0-dev.1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Upwork&version=0.0.0-dev.1&prerelease
                    
Install as a Cake Tool

Upwork

Nuget package dotnet License: MIT

C# SDK for the Upwork GraphQL API. The first supported surface is marketplace job search for freelancer workflows.

Features

  • Public marketplace job search
  • Authenticated marketplace job search with cursor paging and sort attributes
  • Marketplace job content lookup by job ID
  • OAuth token exchange helpers for authorization-code, refresh-token, and enterprise client-credentials flows
  • Raw GraphQL execution escape hatch for fields that are not yet wrapped
  • Source-generated JSON serialization for trimming and NativeAOT compatibility

Usage

using Upwork;

using var client = new UpworkClient(accessToken);

var jobs = await client.SearchMarketplaceJobPostingsAsync(
    new UpworkMarketplaceJobFilter
    {
        SearchExpression = "dotnet graphql",
        VerifiedPaymentOnly = true,
        Pagination = new UpworkCursorPagination(first: 10),
    },
    sortAttributes:
    [
        new UpworkMarketplaceJobPostingSearchSort(
            UpworkMarketplaceJobPostingSearchSortFields.Recency),
    ]);

For public marketplace search, use SearchPublicMarketplaceJobPostingsAsync with UpworkPublicMarketplaceJobFilter.

Search public marketplace jobs with the Upwork GraphQL API.

using var client = new UpworkClient(accessToken);

// Search current public marketplace jobs.
var response = await client.SearchPublicMarketplaceJobPostingsAsync(
    new UpworkPublicMarketplaceJobFilter
    {
        SearchExpression = "dotnet graphql",
        JobType = UpworkJobTypes.Fixed,
        PaymentVerified = true,
        Pagination = new UpworkOffsetPagination(pageOffset: 0, pageSize: 10),
    });

Search marketplace jobs from an authenticated freelancer workflow.

using var client = new UpworkClient(accessToken);

// Search marketplace jobs with cursor pagination and recency sorting.
var response = await client.SearchMarketplaceJobPostingsAsync(
    new UpworkMarketplaceJobFilter
    {
        SearchExpression = "dotnet graphql",
        VerifiedPaymentOnly = true,
        IncludeApplied = false,
        Pagination = new UpworkCursorPagination(first: 10),
    },
    sortAttributes:
    [
        new UpworkMarketplaceJobPostingSearchSort(
            UpworkMarketplaceJobPostingSearchSortFields.Recency),
    ]);

Marketplace Job Content

Fetch full marketplace job content after finding a job ID from search.

using var client = new UpworkClient(accessToken);

// Find a job, then fetch its content by ID.
var search = await client.SearchMarketplaceJobPostingsAsync(
    new UpworkMarketplaceJobFilter
    {
        SearchExpression = "dotnet",
        Pagination = new UpworkCursorPagination(first: 1),
    });

var firstJob = search.Edges?.FirstOrDefault()?.Node;

var job = await client.GetMarketplaceJobPostingAsync(firstJob.Id!);

Support

Priority place for bugs: https://github.com/tryAGI/Upwork/issues
Priority place for ideas and general questions: https://github.com/tryAGI/Upwork/discussions

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 112 6/23/2026
0.0.0-dev.7 130 6/23/2026
0.0.0-dev.6 49 6/23/2026
0.0.0-dev.5 52 6/23/2026
0.0.0-dev.4 56 6/23/2026
0.0.0-dev.3 60 6/22/2026
0.0.0-dev.2 66 6/21/2026
0.0.0-dev.1 61 6/21/2026
0.0.0-dev 101 6/21/2026