API Documentation
Integrate Upwork functionalities to your web-based or mobile apps
Upwork Developers Site offers you access to our web services to build your own applications and to integrate our features and workflow to your dashboards, websites and management systems.
Please read Terms of use prior to using the Upwork Public API.
Getting started is easy. Check out our Getting Started page to learn about the core concepts of our GraphQL API, such as supported authentication methods, languages and tools.
This page contains complete API reference of available Queries and Mutations, just use the navigation panel on the left.
Have a question? Visit us at:
Contact
API Support
Terms of Service
API Endpoints
# Endpoint:
https://api.upwork.com/graphql
Terminology
Users, clients, freelancers
User:
An Upwork account holder. A user can have multiple roles simultaneously: client, freelancer, agency staffing manager, and so on. A user must be a single person and account sharing is not allowed. Others can be added to your company or agency.
Freelancer:
A person who can apply to jobs, work, and get paid by clients via Upwork. In API parameters and arguments, sometimes the terms provider and contractor are used to mean freelancer. Those are legacy names for the term.
Client:
A person who, as part of a company, can hire Upwork freelancers. In API parameters and arguments, sometimes the term buyer is used to mean client- it’s a synonym.
Agency contractor:
There are two types of agency contractors. Exclusive agency contractors can only work on behalf of the agency. The agency controls all their earnings. They cannot control their rates. Non-exclusive agency contractors can work for multiple agencies and/or independently. An agency can only control their agency jobs. Agency contractors can access reports on their worked hours, but not their earnings reports.
Companies, teams, agencies
Company:
A primary financial entity and organizational unit. Larger companies can request to be divided into multiple teams.
Team:
A basic unit of organization. Members of the team can see each other and work on common tasks. Most user permissions are also relative to the team. At the beginning, each company has one dedicated team room, but others can be added later.
Agency:
Acts as intermediary between the client and the freelancer. The client still hires a specific person, but the contract is paid to the agency. Agency size and staffing manager involvement varies widely.
Job postings, offers and contracts
Job Posting:
Description of the work to be done and the application guidelines for freelancers.
Offer:
Proposal of contract terms as part of the hiring process. It can be initiated by the client or the freelancer, but it must be agreed upon by both parties.
Contract:
The terms and conditions that rule a particular job between a client and a freelancer. Legacy terms: engagement.
Fixed-price contract:
Flat-rate contract or payment for milestones. It is not covered by the Upwork Guarantee.
Hourly contract:
Contract billed per hour based on the Work diary registry. It is covered by the Upwork Guarantee.
Charge amount:
The amount of money that is deducted from the company’s financial account (Upwork fee included).
Amount:
The amount of money that a freelancer or an agency receives as payment (Upwork fee not included).
Work diary:
The Work diary acts as a visual time card. It is the basis for Upwork’s automated weekly billing system. It shows clients hours worked and work-in-progress screenshots.
Getting Started
Preparation
Before you start using Upwork API, you need to register your application and obtain your client credentials (a.k.a consumer key and consumer secret). To register, you just fill in basic information about your application and its intended use.
https://www.upwork.com/developer/keys/applyBefore you apply for a key, select the organization (context) from the menu. The key will be created under the selected context, who will be the owner of the key.
Every new request for an API Key will be reviewed. For a quick positive decision, you need to comply the following conditions:
- Upwork profile must have:
- a valid name in your profile (no fake names, no company names)
- a full valid address (including apartment number) - either in your personal or your company’s profile
- a valid profile portrait
- Provide a clear description on what you are planning using our APIs for (this info is required when you apply for a key). Make sure you add a note stating if you are going to use your application internally or publicly, or for any other purposes.
- Agree to use the Upwork API in a manner that does not exceed a reasonable request volume. Our daily allowed limit is 40K requests.
- Refrain from using the Upwork logo, brand name, brand theme/colors and trademarked content in your application.
- Meet the other requirement described on this Support Page.
Users who try registering a new application/key, but have a profile without a valid ID will be forced to go through the ID verification process.
Keys Management
When an API key is created, it is associated with the current context selected in the top-right menu (e.g., personal or organizational context). Please note, API keys cannot be transferred between contexts after creation.
For organizational use, ensure that the correct organization is selected before generating the key. If a key is created under a personal context, it will remain associated with that individual account.
To simplify key management, organization administrators can delegate key creation and management to specific members by assigning the appropriate permissions. API keys created by authorized members within an organizational context are owned by the organization—not by the individual who generated them. Ownership remains with the organization even if the member later leaves.
Granting API Key Management Permissions
To grant a member of your organization permission to create and manage API keys, follow these steps:
Step 1: Navigate to the following URL: https://www.upwork.com/nx/org-management/members. Make sure you are logged in with the appropriate account and have selected the correct organizational context.
Step 2: Add or Select Team Members: To invite a new member to your organization, click "Invite Members". Once the member has been added, or if the member already exists, select their name from the team list and assign the "API Key Manager" permission. To be able to manage keys for an organization, you must have one of the following permissions: "Account Admin" or "API Key Manager".
Application Permissions
When you register a new application, you are asked to define a list of permissions to access third-party resource data; we call them “Application Permissions”. You can later modify the application permissions you request, but note that doing so makes all previously generated access tokens invalid. You will also have to request authorization from resource owners again.
Take into account that caching shouldn't go against Upwork ToS. Specifically, we don't allow storing data for more than 24 hours.
See the list of your registered applications (keys)
What are Scopes
Scopes are collections of permissions to access a specific set of APIs. They are usually grouped by domain and provide more control over sharing your account resources with different roles within your organization.During the API key request process through the API Center, you are required to select the API Key scopes. At that point, your selection defines what APIs can be accessed by that specific API Key.
Permissions Troubleshooting
When executing API queries, Upwork checks for permissions granted to the API Key in context. If the API Key does not have the required permissions to execute the query, the following message is returned:The client or authentication token doesn't have enough oauth2 permissions/scopes to access <list of fields>
Contact the Upwork support team if you need help extending or customizing your API Key Scopes.
Please note that the scope "Common Entities - Read-Only Access" will be required for all the cases.
Security
Security is a paramount thing, especially when it comes to accessing sensitive data and resources through APIs. However, static API credentials may cause a security risk if leaked. In order to mitigate this risk, Upwork provides the way for rotating API credentials regularly.While creating an API key, you can choose the rotation period. The default one corresponds to 12 months. Any key can be rotated at any time manually.
Contact the Upwork support team if you need help.
Requests limits
The rate limit of the API is primarily considered on a per-IP basis. We allow 300 requests per minute per IP address. When an application exceeds the rate limit for our API, we return an HTTP 429 “Too Many Requests” response code. — Caching is not allowed for more than 24 hours according to our Terms of Service.To avoid being rate-limited, please use caching in your application. Store API responses in your application if you expect a lot of use. For example, don’t try to call the Upwork API on every page load. Instead, call the API infrequently, and load the response into a local cache. When users hit your website, load the cached version of the results.
Authentication (OAuth2)
To access Upwork API, you need to go through an authentication process. Currently, we support the OAuth 2.0 method.
You need to authenticate for all requests following the OAuth 2.0, RFC 6749.
OAuth2 Basics
The OAuth 2.0 protocol enables websites or applications (clients) to access protected resources from a Web service (server) via an API, without requiring resource owners to disclose their service provider credentials to the clients. For more information on the OAuth 2.0 workflow process, visit the OAuth 2.0 protocol official site.
Client ID
For each application you develop, you need to obtain new client credentials. These include a client identifier and a client shared-secret. You can request these credentials in the API Center while logged into your Upwork account (select Key Type OAuth 2.0). You will receive a key (client_id) for each client identifier and client shared-secret you request.
Required X-Upwork-API-TenantId header
Each request requires the organization context. In order to specify on behalf of which context the request should be executed, you need to send X-Upwork-API-TenantId header. When the header is missing, the request will use the default organization of the user.
How X-Upwork-API-TenantId header can be used to set the Organization for the execution context
In order to get a value for the X-Upwork-API-TenantId header, you need company selector query.
Sample company selector query:
query {
companySelector {
items {
title
organizationId
}
}
}
The request with X-Upwork-API-TenantId would look like:
curl --request POST \
--url https://api.upwork.com/graphql \
--header 'Authorization: bearer oauth2v2_f5*************************' \
--header 'Content-Type: application/json' \
--header 'X-Upwork-API-TenantId: 470*************' \
--data '{"query":"query { \
organization { \
id \
childOrganizations { \
id \
name \
} \
} \
}"}'
In this case query.organization and organization.childOrganizations will contain information about organization with id 470***********97.
Without the header query.organization will contain the information about 584***********76 which is the default organization for the user.
How the default Organization is selected when the header is not present
A default organization is one of the organizations that the user has access to. It is the same Organization that gets selected as the current Organization when a user logs in into the platform.
Flow and Supported Grants
For authenticating via OAuth 2.0 protocol, API requests MUST follow RFC 6749 specification.
At a basic level, the OAuth 2.0 authentication process involves the following steps:
- Authorize the application using one of the available grants and obtain an Authorization code in Code Authorization Grant
- Get an Access token in Code Authorization Grant and read it from the Implicit Grant workflow callback that follows the redirect in step#1
Once you receive an access token, you can use it to access protected resources. Use either the access_token parameter, or the Authorization header (recommended) with the Bearer schema and one of the supported grants. TTL for an access token is 24 hours; TTL for a refresh token is 2 weeks since its last usage.
Supported Grants
- Authorization Code Grant - requires authorization request and access token request calls.
- Implicit Grant - requires an authorization request call.
- Client Credentials Grant - requires an access token request call. This grant is available for enterprise accounts only.
- Refresh Token Grant Type - requires an access token request call.
Client Credentials Grant
Client Credentials Grant is an OAuth 2.0 flow that enables you to obtain an access token in server-to-server and client-to-server scenarios. Although users are involved in this flow, you can use the access token outside the context of a user. For example, you can leverage the access token to access the client's resources.
Client Credentials grant is only available to Enterprise consumers
Prerequisites
| Data | Description |
|---|---|
| Client ID |
For each application you develop, you must obtain a client identifier key. To get this value, access https://www.upwork.com/developer/keys/apply and log in by using your Upwork credentials. Notes:
|
| Client Secret |
For each application you develop, you must obtain a client shared-secret key. To get this value, access https://www.upwork.com/developer/keys/apply and log in by using your Upwork credentials. Notes:
|
Step 1. Obtaining an access token
Keep the access token private. If someone obtains your token, they could use it to access private user data.
Endpoint
POST https://www.upwork.com/api/v3/oauth2/token
Parameters
Grant type. To get an access token for the client credentials grant, use client_credentials.
Your Client ID.
Your Client Secret.
Returns
Returns the access token and its TTL. Example:
{
"access_token": "oauth2v2_584006c0ef4f69fd8278c7769da6ff43",
"token_type": "Bearer",
"expires_in": 86400
}
Refresh Token Grant Type
Refresh Token Grant Type is an OAuth 2.0 flow that enables you to exchange a refresh token for an access token when the access token has expired. Therefore, you can continue to have a valid access token without further interaction with the user.
Prerequisites
| Data | Description |
|---|---|
| Client ID |
For each application you develop, you must obtain a client identifier key. To get this value, access https://www.upwork.com/developer/keys/apply and log in by using your Upwork credentials. Notes:
|
| Client Secret |
For each application you develop, you must obtain a client shared-secret key. To get this value, access https://www.upwork.com/developer/keys/apply and log in by using your Upwork credentials. Notes:
|
Step 1. Obtaining an access token
Keep the refresh token private. If someone obtains your token, they could use it to access private user data.
Endpoint
POST https://www.upwork.com/api/v3/oauth2/token
Parameters
Grant type. To refresh an existing token, having a valid refresh token, use refresh_token.
Your Client ID.
Your Client Secret.
A valid refresh token.
Returns
If you authenticated previously and have a working refresh token, this call returns the refreshed tokens and the TTL of the access token.
{
"access_token": "oauth2v2_daedc8c79a4d5f80b88b2ce953772a0f",
"refresh_token": "oauth2v2_e8ae4feb6b8d10693d8cff420351461a",
"token_type": "Bearer",
"expires_in": 86400
}
Service accounts
Service accounts are specific to a service or application and are designed to run applications. Service accounts help you communicate with multiple applications, such as web servers and databases. Unlike user accounts, service accounts are used by system services, for example, web servers, mail transport agents, and databases.
Service accounts are useful when you need to fetch information. For example, you can use service accounts to get information about multiple users in a company. However, you must not use service accounts to perform write operations.
Note that service accounts are available only for enterprise accounts in Upwork.
Prerequisites for using a Service Account in Upwork
- You must apply for the client credentials key.
After Upwork creates the Client Credentials key and associates it with a service account, you can assign appropriate scopes and permissions to the service account.
Requesting a Client Credentials key
To apply for the Client Credentials key:
- Go to https://www.upwork.com/developer/keys/apply and provide the requested information about your application.
For more information, see the Getting Started section. - Select the I want to create a Client Credential key for Service Account check box.
- Select the relevant scopes. For more information, see scopes.
- Save the changes.
Upwork creates the Client Credentials key and displays the values in a pop-up window. In addition, you can view your key at https://www.upwork.com/developer/keys/.
Upwork also creates a Service Account and associates the account with the Client Credentials key. Thereafter, if you perform any actions by using the key, the system actually performs such actions on behalf of the Service Account and not your user account.
Assigning Scopes to Service Accounts
Scopes are collections of permissions to access a specific set of APIs. They are usually grouped by domain and provide more control over sharing your account resources with different roles within your organization.
While applying for the Client Credentials key, you can select the relevant Scopes. These Scopes define the APIs that you can access by using the same key. For more information about Scopes, see What are Scopes.
Assigning permissions to Service Accounts
A Service Account is a user entity. By default, Service Accounts do not have any permissions. To access data by using a Service Account, you must have proper permissions associated with the Service Account.
To assign permissions to Service Accounts:
- Log in to your Service Account.
- Under Settings > Members & Permissions, locate the Service Account and update permissions according to the available options. You can set both team and company-level permissions depending on your needs. For more information, see Team Permissions.
Now, you are ready to leverage your service account to call Upwork’s APIs and perform specific operations.
Authorization Request
The Upwork server must request authorization from the resource owner to grant you access to the required data. To do so, you must redirect the resource owner to Upwork server’s authentication endpoint.
Keep the refresh and access token private. If someone obtains your tokens, they could use them to access private user data.
Endpoint
GET https://www.upwork.com/ab/account-security/oauth2/authorize
Parameters
The corresponding Grant Type. Use `code` for Authorization Code Grant and `token` for Implicit Grant.
Valid values: code, token
Your Client ID.
The callback URL.
Returns
Returns a code for the Authorization Code Grant or an access token for the Implicit Grant. Example:Access Token Request
Keep the refresh and access token private. If someone obtains your tokens, they could use them to access private user data.
Endpoint
POST https://www.upwork.com/api/v3/oauth2/token
Parameters
Grant type. To get a token right after authorization, use `authorization_code`. To refresh an existing token, having a valid `refresh token`, use `refresh_token`.
To get an access token for the client credentials grant, use `client_credentials`.
Valid values: authorization_code, refresh_token, client_credentials
Your Client ID.
Your Client Secret.
Authorization code received during the authorization request. Required for `authorization_code` grant.
Redirect URI, must be equal or similar to the callback specified in the key settings. Required for `authorization_code` grant.
A valid refresh token. Required for `refresh_token` grant.
Returns
If the authorization is successful, this call returns the tokens and the TTL of the access token.Refresh Token Request
The Access Token request should be used with the proper grant type, which is "refresh_token", in order to refresh the token.
Keep the refresh and access token private. If someone obtains your tokens, they could use them to access private user data.
Returns
If you authenticated previously and have a working refresh token, this call returns the refreshed tokens and the TTL of the access token.
Libraries and Tools
A library is a collection of behavior implementations, written in a specific programming language. Libraries help you make system calls without the need to re-write code over and over again.
These are the libraries built specifically to support Upwork API:
The following Tools are also available:
GQL Explorer - the tool allows you test GraphQL requests
API Center (Request new API Key) - allows you request a new application (API Key)
API Center (View existing API Keys) - manages all requested applications (API Keys)
API Subscriptions Management Tool - manages your GraphQL subscriptions
Terms of Use - here you can find terms, rules, and conditions of using Upwork API
Legacy REST API Docs - Documentation for our Legacy REST APIs can be viewed here. Note that these APIs are planned to be sunset and should only be used as a reference
Operations
Common Information
Typical GraphQL services provide access to two types of requests: Queries and Mutations. The last can include more complicated structures in the request, like Arguments, Aliases, Fragments, Directives, and Variables. Queries are used to fetch the data, where Mutations are needed in order to modify server-side data. For more information, please follow Queries and Mutations section at graphql.org.
Error handling in GraphQL
If the Upwork server fails while processing a GraphQL request, the system sends an error array response to the client. It is important to note that errors in GraphQL are handled differently from how we might be used to in ReST. While ReST endpoints return HTTP status codes in the error response, for example, 400 - Bad Request in case of malformed syntax, GraphQL always returns a 200 - OK status code, regardless of whether the operation succeeded or failed. Consequently, understanding how to decode error responses in GraphQL is crucial to troubleshooting potential operation failures.
Decoding error responses
GraphQL error arrays list all the errors that occurred while processing the API request. Additionally, they provide important information that helps you fix the problem or guide you on what to do next. Let’s take a closer look at what’s returned.
- Message: The error message that helps you understand if the operation succeeded or failed. For example, Validation error of type MissingFieldArgument.
- Locations: The exact location in the API request query that results in the error. For example, the line and column parameters in the response.
- Extensions: The type of error. For example, ValidationError.
Here is a sample code snippet of a GraphQL error response in Upwork:
{
"errors": [
{
"message": "Validation error of type MissingFieldArgument: Missing field argument stepUpVerificationId @ 'user/stepUpVerification'",
"locations": [
{
"line": 3,
"column": 5
}
],
"extensions": {
"classification": "ValidationError"
}
},
{
"message": "Validation error of type SubSelectionRequired: Sub selection required for type UserVerification of field stepUpVerification @ 'user/stepUpVerification'",
"locations": [
{
"line": 3,
"column": 5
}
],
"extensions": {
"classification": "ValidationError"
}
}
]
}
As the generic status code in GraphQL is not intuitive, you must access the body of the error response to further understand the correct status of the operation.
For example, the following API query returned the status code: 200 - OK. Let's see how the message, locations, and extensions parameters in the body help you understand the status of the API call.
Exceptions in GraphQL error types
Typically, GraphQL returns the HTTP status code 200 when the API operation fails at the upstream or data provider service layer. For example, if you do not have Oauth2 permissions or scopes to access an endpoint, the system displays the following error response
However, if the API operation fails at the GraphQL layer itself, the system returns the typical 5XX HTTP status codes, such as 500 - Internal Server Error if the server encounters an unexpected condition that prevents it from fulfilling the request. In these cases, you can rely on the status code to understand if the operation failed or succeeded.
Sample GraphQL API failure scenarios
When you do not have Oauth2 permissions or scopes to access the endpoint
Query request:
{
user {
id
nid
rid
name
email
}
organization {
id
rid
}
}
Error response:
{
"errors": [
{
"message": "The client or authentication token doesn't have enough oauth2 permissions/scopes to access: [CurrentOrganization.id, CurrentOrganization.rid, CurrentUser.email, CurrentUser.id, CurrentUser.name, CurrentUser.nid, CurrentUser.rid, Query.organization, Query.user]."
}
]
}
When you do not specify any value for a required field
Query request:
{
user {
companyFees(organizationId: null, input: { amount: "15" }) {
amount
fullAmount
fees {
type
description
calculationDescription
rate
amount
}
}
}
}
Error response:
{
"errors": [
{
"message": "Validation error of type NullValueForNonNullArgument: null value for non-null field argument organizationId @ 'user/companyFees'",
"locations": [
{
"line": 3,
"column": 5
}
],
"extensions": {
"classification": "ValidationError"
}
},
{
"message": "Validation error of type WrongType: argument 'organizationId' with value 'NullValue{}' must not be null @ 'user/companyFees'",
"locations": [
{
"line": 3,
"column": 17
}
],
"extensions": {
"classification": "ValidationError"
}
}
]
}
When you do not define a parameter
Query request:
{
user {
stepUpVerification
}
}
Error response:
{
"errors": [
{
"message": "Validation error of type MissingFieldArgument: Missing field argument stepUpVerificationId @ 'user/stepUpVerification'",
"locations": [
{
"line": 3,
"column": 5
}
],
"extensions": {
"classification": "ValidationError"
}
},
{
"message": "Validation error of type SubSelectionRequired: Sub selection required for type UserVerification of field stepUpVerification @ 'user/stepUpVerification'",
"locations": [
{
"line": 3,
"column": 5
}
],
"extensions": {
"classification": "ValidationError"
}
}
]
}
Using GraphQL through Upwork SDK
Currently, Upwork supports GraphQL SDKs in the following languages:
- Java
- PHP
- Python 3
- Node JS
- Ruby
- Go
SDKs return the GraphQL error responses similar to APIs and do not handle them any differently.
Subscriptions in GraphQL
The Subscription feature allows clients to subscribe to specific events within the system. Once a subscribed event occurs, the system automatically sends a payload to the client’s designated webhook. This payload includes essential details about the event, such as the entity, action, and id associated with the event.
By utilizing this feature, clients can stay updated with real-time changes, ensuring they are always in sync with the events that matter most to their application or business. The subscription process is flexible and can be configured to trigger on various events, such as updates, creations, or other predefined actions.
Please, take into account that subscriptions feature is available only to clients. Once a subscription is created, it needs to be reviewed and approved by Upwork Team. Untill then, the subscription will remain in REVIEW state.
Key Components:
- Entity: Represents the object or resource associated with the event (e.g., "JP", "OFFER", "JA").
- Action: Describes the type of event or operation performed (e.g., "NEW", "UPDATE", "CANCELLED").
- ID: A unique identifier associated with the event, typically referencing a specific record or transaction.
When an event that the client has subscribed to is triggered, the system will send a payload to the client's webhook endpoint. This payload will include the entity name, action taken, and a unique identifier (ID) to allow for easy tracking and handling of the event.
Example Payload:
{
"entity": "OFFER",
"action": "CREATE",
"id": "123456789"
}
To manage your subscriptions and configure events easily, you can use our Subscription Management Tool. This tool allows you to view, create, and update your subscriptions through a user-friendly interface.
This ensures that clients receive the necessary data to process events in real-time, giving them complete control over how events are handled within their application. The flexibility to define custom webhooks and subscribe to a range of events provides a powerful way to integrate the system's activities with the client’s workflows.
Supported events:
- Job postings (JP)
- Offer (OFFER)
- Vendor Job Application (Vendor JA)
- Client Job Application (Client JA)
- Milestone (MILESTONE)
- Contract Feedback (CFB)
Subscription events when any action is performed on any offer. The operation can be initiated by Vendor Organization or Client Organization.
| Entity | Action | Description |
|---|---|---|
| Offer (OFFER) | CREATE | new offer was created |
| DECLINE | offer was declined | |
| EXPIRED | offer expired | |
| CANCELLED | offer was cancelled | |
| WITHDREW | offer was withdrawn | |
| ACCEPTED | offer is accepted |
Subscription events when any action is performed on any Job Application, initiated by a Vendor.
| Entity | Action | Description |
|---|---|---|
| Vendor Job Application (Vendor JA) | VendorCreate | job application was created by vendor |
| SystemAccept | job application was accepted by system (currently this only means that connects were charged successfully | |
| VendorWithdraw | vendor withrdew the job application | |
| VendorReplace | job application was replaced (vendor proposed different terms) | |
| ClientActivate | client activated job application by starting conversation with the freelancer | |
| ClientOffer | client made an offer | |
| ClientDecline | client declined job application | |
| SystemArchive | job application was archived by system (for example, when opening was cancelled) | |
| VendorHide | job application was hidden by vendor | |
| VendorUnHide | job application was unhidden by vendor | |
| SystemReject | job application was rejected by the system (currently this means that use had not enough connects) | |
| SystemReplace | new job application was created by system with new terms proposed by vendor | |
| VendorReapply | when vendor re-apply to a job | |
| VendorAcceptInvite | when vendor accepts an invite-to-interview | |
| SystemHold | when system marks application as on hold | |
| SystemUnHold | when system marks application as not on hold | |
| VendorAcceptOffer | when vendor accepts client offer | |
| VendorDeclineOffer | when vendor declines client offer | |
| ClientWithdrawOffer | when client withdrew the offer | |
| SystemApplyToStaffAugDuplicate | when system apply staff event happened | |
| SystemWithdraw | system withdrew event | |
| VendorAcceptInviteWithPendingOffer | vendor accepts a job invitation with offer in pending state | |
| VendorAcceptInviteWithAcceptedOffer | vendor accepts a job invitation with accepted offer | |
| VendorInitiate | vendor submits a regular job application(proposal) | |
| SystemInvalidate | system invalidate event | |
| ValidationTimeOut | validation timeouts | |
| SystemValidate | system validate event | |
| ClientHire | client hires | |
| OccupationUpdated | occupation updated | |
| OccupationRemoved | occupation removed | |
| UpdateTerms | terms were updated |
Subscription events when any action is performed on any Job Application, initiated by a Client.
| Entity | Action | Description |
|---|---|---|
| Client Job Application (Client JA) | VendorCreate | job application was created by vendor |
| SystemPublish | job application was accepted by system | |
| ClientActivate | client activated job application by starting conversation with the vendor | |
| ClientAccept | client made an offer to vendor | |
| ClientDecline | client declined job application | |
| VendorWithdraw | vendor withrdew the job application | |
| VendorReplace | job application was replaced (vendor proposed different terms) | |
| ClientRead | job application was read by the client | |
| ClientHide | job application was unhidden by the client | |
| ClientUnhide | job application was unhidden by the client | |
| SystemHide | job application was hidden by the system | |
| SystemUnhide | job application was unhidden by the system | |
| SystemRecommend | job application was recommended by the system | |
| SystemArchive | job application was archived by system (for example, when opening was cancelled) | |
| ClientMessage | client sends a message | |
| VendorAcceptInvite | vendor accepts a job invitation | |
| ClientShortlist | client shortlisted an application | |
| ClientUnshortlist | client unshortlisted an application | |
| SystemScoreApplication | match scored a job application | |
| SystemReplace | new job application was created by system with new terms proposed by vendor | |
| NotRecommend | not recommended event | |
| VendorDeclineOffer | when vendor declines client offer | |
| ClientWithdrawOffer | when vendor withdraws client offer | |
| VendorAcceptOffer | when vendor accepts client offer | |
| VendorAcceptInviteWithPendingOffer | vendor accepts a job invitation with offer in pending state | |
| VendorAcceptInviteWithAcceptedOffer | vendor accepts a job invitation with accepted offer | |
| SystemWithdraw | system withdrew event | |
| OccupationUpdated | occupation updated | |
| OccupationRemoved | occupation removed | |
| UpdateTerms | terms were updated | |
| OutOfMoney | job application went out of money | |
| RecruiterShortlist | vendor shortlisted a job application | |
| RecruiterUnshortlist | vendor unshortlisted a job application |
Subscription events when any milestone is refreshed.
| Entity | Action | Description |
|---|---|---|
| Milestone (MILESTONE) | REFRESH | milestone refreshed |
Subscription events when any action is performed on a Contract Feedback, initiated by any party.
| Entity | Action | Description |
|---|---|---|
| Contract Feedback (CFB) | SUBMIT | contract feedback was submitted |
| UPDATE | contract feedback was updated | |
| DELETE | contract feedback was deleted |
Queries
jobPosting
Description
Get job posting by its ID
Required Permissions
"Job Postings - Read-Only Access"
Response
Returns a JobPosting!
Example
Query
query jobPosting(
$jobPostingId: ID!,
$loadAnnotation: Boolean
) {
jobPosting(
jobPostingId: $jobPostingId,
loadAnnotation: $loadAnnotation
) {
id
version
info {
...JobPostingInfoFragment
}
visibility
ownership {
...JobPostingOwnershipFragment
}
content {
...JobPostingContentFragment
}
attachment {
...JobPostingAttachmentFragment
}
classification {
...JobPostingClassificationFragment
}
segmentationData {
...JobPostingSegmentationDataFragment
}
contractTerms {
...JobPostingContractTermsFragment
}
contractorSelection {
...JobPostingContractorSelectionFragment
}
additionalInfo {
...JobPostingAdditionalInfoFragment
}
ptcInfo {
...JobPostingPtcInfoFragment
}
proposalsStatistics {
...ProposalsStatisticsFragment
}
customFields {
...JobPostingCustomFieldsFragment
}
}
}
Variables
{"jobPostingId": 4, "loadAnnotation": false}
Response
{
"data": {
"jobPosting": {
"id": 4,
"version": 123,
"info": JobPostingInfo,
"visibility": "PUBLIC_INDEX",
"ownership": JobPostingOwnership,
"content": JobPostingContent,
"attachment": [JobPostingAttachment],
"classification": JobPostingClassification,
"segmentationData": JobPostingSegmentationData,
"contractTerms": JobPostingContractTerms,
"contractorSelection": JobPostingContractorSelection,
"additionalInfo": JobPostingAdditionalInfo,
"ptcInfo": JobPostingPtcInfo,
"proposalsStatistics": ProposalsStatistics,
"customFields": [JobPostingCustomFields]
}
}
}
jobsFeaturePredictions
Description
The prediction models of a set of jobs
Required Permissions
"Read marketplace Job Postings"
Response
Returns [JobFeaturePrediction!]!
Arguments
| Name | Description |
|---|---|
ids - [ID!]!
|
Job posting identifiers |
Example
Query
query jobsFeaturePredictions($ids: [ID!]!) {
jobsFeaturePredictions(ids: $ids) {
id
openingMultiFreelancerPrediction
opening
}
}
Variables
{"ids": [4]}
Response
{
"data": {
"jobsFeaturePredictions": [
{
"id": 4,
"openingMultiFreelancerPrediction": true,
"opening": "abc123"
}
]
}
}
marketplaceJobPosting
Description
Get marketplace job posting by its ID
Required Permissions
"Read marketplace Job Postings"
Response
Returns a MarketplaceJobPosting
Arguments
| Name | Description |
|---|---|
id - ID!
|
Job posting identifier |
Example
Query
query marketplaceJobPosting($id: ID!) {
marketplaceJobPosting(id: $id) {
id
workFlowState {
...MarketplacePostingWorkFlowStateFragment
}
ownership {
...MarketplacePostingOwnershipFragment
}
annotations {
...MarketplacePostingAnnotationsFragment
}
activityStat {
...MarketplacePostingActivityStatFragment
}
content {
...MarketplaceJobPostingContentFragment
}
attachments {
...MarketplacePostingAttachmentFragment
}
classification {
...MarketplacePostingClassificationFragment
}
segmentationData {
...MarketplaceSegmentationDataFragment
}
contractTerms {
...MarketplaceContractTermsFragment
}
contractorSelection {
...MarketplaceContractorSelectionFragment
}
additionalSearchInfo {
...MarketplaceAdditionalSearchInfoFragment
}
clientCompany {
...PrivateCompanyInfoFragment
}
clientCompanyPublic {
...MarketplacePublicCompanyInfoFragment
}
canClientReceiveContractProposal
clientProposals {
...ClientProposalsConnectionFragment
}
customFields {
...CustomFieldsConnectionFragment
}
}
}
Variables
{"id": "4"}
Response
{
"data": {
"marketplaceJobPosting": {
"id": 4,
"workFlowState": MarketplacePostingWorkFlowState,
"ownership": MarketplacePostingOwnership,
"annotations": MarketplacePostingAnnotations,
"activityStat": MarketplacePostingActivityStat,
"content": MarketplaceJobPostingContent,
"attachments": [MarketplacePostingAttachment],
"classification": MarketplacePostingClassification,
"segmentationData": MarketplaceSegmentationData,
"contractTerms": MarketplaceContractTerms,
"contractorSelection": MarketplaceContractorSelection,
"additionalSearchInfo": MarketplaceAdditionalSearchInfo,
"clientCompany": PrivateCompanyInfo,
"clientCompanyPublic": MarketplacePublicCompanyInfo,
"canClientReceiveContractProposal": true,
"clientProposals": ClientProposalsConnection,
"customFields": CustomFieldsConnection
}
}
}
marketplaceJobPostings
Required Permissions
"Read marketplace Job Postings"
Response
Returns a MarketplaceJobPostingSearchConnection
Arguments
| Name | Description |
|---|---|
marketPlaceJobFilter - MarketplaceJobFilter
|
Filter to search job postings |
searchType - MarketplaceJobPostingSearchType
|
Search type context |
sortAttributes - [MarketplaceJobPostingSearchSortAttribute]
|
Sort attributes |
Example
Query
query marketplaceJobPostings(
$marketPlaceJobFilter: MarketplaceJobFilter,
$searchType: MarketplaceJobPostingSearchType,
$sortAttributes: [MarketplaceJobPostingSearchSortAttribute]
) {
marketplaceJobPostings(
marketPlaceJobFilter: $marketPlaceJobFilter,
searchType: $searchType,
sortAttributes: $sortAttributes
) {
totalCount
edges {
...MarketplaceJobpostingSearchEdgeFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Variables
{
"marketPlaceJobFilter": MarketplaceJobFilter,
"searchType": "USER_JOBS_SEARCH",
"sortAttributes": [
MarketplaceJobPostingSearchSortAttribute
]
}
Response
{
"data": {
"marketplaceJobPostings": {
"totalCount": 123,
"edges": [MarketplaceJobpostingSearchEdge],
"pageInfo": PageInfo
}
}
}
marketplaceJobPostingsContents
Description
Get marketplace job postings content by ID
Required Permissions
"Read marketplace Job Postings"
Response
Arguments
| Name | Description |
|---|---|
ids - [ID!]!
|
Job posting identifiers |
Example
Query
query marketplaceJobPostingsContents($ids: [ID!]!) {
marketplaceJobPostingsContents(ids: $ids) {
id
ciphertext
title
description
publishedDateTime
annotations {
...MarketplacePostingAnnotationsFragment
}
}
}
Variables
{"ids": ["4"]}
Response
{
"data": {
"marketplaceJobPostingsContents": [
{
"id": "4",
"ciphertext": "abc123",
"title": "xyz789",
"description": "abc123",
"publishedDateTime": "xyz789",
"annotations": MarketplacePostingAnnotations
}
]
}
}
countries
Description
List of countries. Currently no filtering is available
Required Permissions
"Common Functionality - Read And Write Access"
Response
Returns [Country!]!
Example
Query
query countries {
countries {
id
name
twoLetterAbbreviation
threeLetterAbbreviation
region
phoneCode
relatedRegion {
...RegionFragment
}
relatedSubRegion {
...RegionFragment
}
active
registrationAllowed
}
}
Response
{
"data": {
"countries": [
{
"id": "4",
"name": "xyz789",
"twoLetterAbbreviation": "xyz789",
"threeLetterAbbreviation": "abc123",
"region": "EU",
"phoneCode": "abc123",
"relatedRegion": Region,
"relatedSubRegion": Region,
"active": false,
"registrationAllowed": true
}
]
}
}
languages
Description
Get the list of languages
Required Permissions
One of: "Common Entities - Read-Only Access" OR "Common Functionality - Read And Write Access"
Response
Returns [Language!]!
Example
Query
query languages {
languages {
iso639Code
active
englishName
}
}
Response
{
"data": {
"languages": [
{
"iso639Code": "xyz789",
"active": true,
"englishName": "abc123"
}
]
}
}
reasons
Description
Reasons for some actions. Examples - declining invitation, ending contract, withdrawing offer
Required Permissions
"Common Functionality - Read And Write Access"
Response
Returns [ReasonsMetadata!]!
Arguments
| Name | Description |
|---|---|
reasonType - ReasonType!
|
Reason category type |
all - Boolean
|
Return all reasons (ignore visibility filters) |
Example
Query
query reasons(
$reasonType: ReasonType!,
$all: Boolean
) {
reasons(
reasonType: $reasonType,
all: $all
) {
id
reason
alias
}
}
Variables
{"reasonType": "PROPOSAL_DECLINE", "all": true}
Response
{
"data": {
"reasons": [
{
"id": "4",
"reason": "xyz789",
"alias": "abc123"
}
]
}
}
regions
Description
Get the list of regions
Required Permissions
"Common Functionality - Read And Write Access"
Response
Returns [Region!]
Example
Query
query regions {
regions {
id
name
parentRegion {
...RegionFragment
}
}
}
Response
{
"data": {
"regions": [
{
"id": "4",
"name": "xyz789",
"parentRegion": Region
}
]
}
}
requestMetadata
Description
Information about request - whether it is an internal requests, in specific mode, etc
Required Permissions
"Common Functionality - Read And Write Access"
Response
Returns a RequestMetadata!
Example
Query
query requestMetadata {
requestMetadata {
sudo
internal
}
}
Response
{"data": {"requestMetadata": {"sudo": true, "internal": true}}}
timeZones
Description
List of all availabe time zones
Required Permissions
"Common Functionality - Read And Write Access"
Response
Returns [TimeZoneRecord!]!
Example
Query
query timeZones {
timeZones {
timeZoneName
timeZoneDescription
}
}
Response
{
"data": {
"timeZones": [
{
"timeZoneName": "xyz789",
"timeZoneDescription": "abc123"
}
]
}
}
visitor
Description
Visitor details
Required Permissions
"Common Functionality - Read And Write Access"
Response
Returns a Visitor
Example
Query
query visitor {
visitor {
i18n {
...VisitorI18NFragment
}
segment {
...VisitorSegmentFragment
}
}
}
Response
{
"data": {
"visitor": {
"i18n": VisitorI18N,
"segment": VisitorSegment
}
}
}
contract
Description
Fetch contract information by ID. Note: The provided 'id' corresponds to the id of the contract term in the ContractDetails schema.
Required Permissions
"Offer - Read-Only Access"
Example
Query
query contract($id: ID!) {
contract(id: $id) {
id
title
contractType
job {
...MarketplaceJobPostingFragment
}
hasAgency
offer {
...OfferFragment
}
clientProposal {
...ClientProposalFragment
}
vendorProposal {
...VendorProposalFragment
}
weeklyChargeAmount {
...MoneyFragment
}
weeklyHoursLimit
hourlyChargeRate {
...MoneyFragment
}
createdDateTime
firstContractStartDateTime
modifiedDateTime
startDateTime
endDateTime
manualTimeAllowed
hideScreenshots
last
weeklyStipendHours
estimatedDuration {
...ProposalEngagementDurationFragment
}
status
suspended
freelancer {
...FreelancerProfileFragment
}
paused
clientCompany {
...PublicCompanyInfoFragment
}
milestones {
...MilestoneFragment
}
contractId
workDays {
...WorkDayFragment
}
workDiaryTimeCells {
...WorkDiaryTimeCellFragment
}
feedback {
...FeedbackFragment
}
}
}
Variables
{"id": "4"}
Response
{
"data": {
"contract": {
"id": "4",
"title": "xyz789",
"contractType": "HOURLY",
"job": MarketplaceJobPosting,
"hasAgency": false,
"offer": Offer,
"clientProposal": ClientProposal,
"vendorProposal": VendorProposal,
"weeklyChargeAmount": Money,
"weeklyHoursLimit": 123.45,
"hourlyChargeRate": Money,
"createdDateTime": "abc123",
"firstContractStartDateTime": "abc123",
"modifiedDateTime": "abc123",
"startDateTime": "abc123",
"endDateTime": "xyz789",
"manualTimeAllowed": false,
"hideScreenshots": false,
"last": true,
"weeklyStipendHours": 123.45,
"estimatedDuration": ProposalEngagementDuration,
"status": "ACTIVE",
"suspended": true,
"freelancer": FreelancerProfile,
"paused": false,
"clientCompany": PublicCompanyInfo,
"milestones": [Milestone],
"contractId": 4,
"workDays": [WorkDay],
"workDiaryTimeCells": [WorkDiaryTimeCell],
"feedback": Feedback
}
}
}
contractByTerm
Description
Get contract data by term id
Required Permissions
"Offer - Read-Only Access"
Response
Returns a ContractDetails!
Example
Query
query contractByTerm(
$termId: ID!,
$date: String
) {
contractByTerm(
termId: $termId,
date: $date
) {
id
title
status
closingReason {
...ClosingReasonFragment
}
deliveryModel
kind
isPtc
createDate
modifyDate
startDate
endDate
offer {
...OfferFragment
}
offerId
job {
...JobPostingFragment
}
freelancer {
...ContractUserFragment
}
vendorOrganization {
...GenericOrganizationFragment
}
vendorTeam {
...GenericOrganizationFragment
}
clientOrganization {
...GenericOrganizationFragment
}
clientTeam {
...GenericOrganizationFragment
}
hiringManager {
...ContractUserFragment
}
agencyManager {
...ContractUserFragment
}
supervisor {
...ContractUserFragment
}
changingUserType
changedBy {
...ContractUserFragment
}
endedBy {
...ContractUserFragment
}
metadata {
...ContractMetadataFragment
}
hourlyLimits {
...HourlyLimitFragment
}
terms {
...ContractTermsFragment
}
projectId
}
}
Variables
{
"termId": "4",
"date": "xyz789"
}
Response
{
"data": {
"contractByTerm": {
"id": "4",
"title": "abc123",
"status": "ACTIVE",
"closingReason": ClosingReason,
"deliveryModel": "TALENT_MARKETPLACE",
"kind": "WEEKLY_RETAINER",
"isPtc": false,
"createDate": "xyz789",
"modifyDate": "abc123",
"startDate": "xyz789",
"endDate": "abc123",
"offer": Offer,
"offerId": "4",
"job": JobPosting,
"freelancer": ContractUser,
"vendorOrganization": GenericOrganization,
"vendorTeam": GenericOrganization,
"clientOrganization": GenericOrganization,
"clientTeam": GenericOrganization,
"hiringManager": ContractUser,
"agencyManager": ContractUser,
"supervisor": ContractUser,
"changingUserType": "CLIENT",
"changedBy": ContractUser,
"endedBy": ContractUser,
"metadata": ContractMetadata,
"hourlyLimits": [HourlyLimit],
"terms": ContractTerms,
"projectId": 4
}
}
}
contractDetails
Description
Get contract data by contract id.
Required Permissions
"Offer - Read-Only Access"
Response
Returns a ContractDetails!
Example
Query
query contractDetails(
$id: ID!,
$date: String
) {
contractDetails(
id: $id,
date: $date
) {
id
title
status
closingReason {
...ClosingReasonFragment
}
deliveryModel
kind
isPtc
createDate
modifyDate
startDate
endDate
offer {
...OfferFragment
}
offerId
job {
...JobPostingFragment
}
freelancer {
...ContractUserFragment
}
vendorOrganization {
...GenericOrganizationFragment
}
vendorTeam {
...GenericOrganizationFragment
}
clientOrganization {
...GenericOrganizationFragment
}
clientTeam {
...GenericOrganizationFragment
}
hiringManager {
...ContractUserFragment
}
agencyManager {
...ContractUserFragment
}
supervisor {
...ContractUserFragment
}
changingUserType
changedBy {
...ContractUserFragment
}
endedBy {
...ContractUserFragment
}
metadata {
...ContractMetadataFragment
}
hourlyLimits {
...HourlyLimitFragment
}
terms {
...ContractTermsFragment
}
projectId
}
}
Variables
{"id": 4, "date": "abc123"}
Response
{
"data": {
"contractDetails": {
"id": 4,
"title": "xyz789",
"status": "ACTIVE",
"closingReason": ClosingReason,
"deliveryModel": "TALENT_MARKETPLACE",
"kind": "WEEKLY_RETAINER",
"isPtc": false,
"createDate": "abc123",
"modifyDate": "abc123",
"startDate": "xyz789",
"endDate": "xyz789",
"offer": Offer,
"offerId": 4,
"job": JobPosting,
"freelancer": ContractUser,
"vendorOrganization": GenericOrganization,
"vendorTeam": GenericOrganization,
"clientOrganization": GenericOrganization,
"clientTeam": GenericOrganization,
"hiringManager": ContractUser,
"agencyManager": ContractUser,
"supervisor": ContractUser,
"changingUserType": "CLIENT",
"changedBy": ContractUser,
"endedBy": ContractUser,
"metadata": ContractMetadata,
"hourlyLimits": [HourlyLimit],
"terms": ContractTerms,
"projectId": 4
}
}
}
contractList
Description
Get contract details list by contract ids
Required Permissions
"Offer - Read-Only Access"
Response
Returns a ContractList
Arguments
| Name | Description |
|---|---|
ids - [ID!]
|
list of contract ids. max size is 10 |
Example
Query
query contractList($ids: [ID!]) {
contractList(ids: $ids) {
contracts {
...ContractDetailsFragment
}
}
}
Variables
{"ids": ["4"]}
Response
{
"data": {
"contractList": {"contracts": [ContractDetails]}
}
}
contractProposal
Description
Fetch contract proposal information by contract proposal ID.
Required Permissions
"Contract - Read and Write Access"
Response
Returns a ContractProposal
Arguments
| Name | Description |
|---|---|
id - ID!
|
Example
Query
query contractProposal($id: ID!) {
contractProposal(id: $id) {
id
state
updatedDateTime
createdDateTime
canClientOfferBeAccepted
}
}
Variables
{"id": "4"}
Response
{
"data": {
"contractProposal": {
"id": "4",
"state": "abc123",
"updatedDateTime": "abc123",
"createdDateTime": "abc123",
"canClientOfferBeAccepted": false
}
}
}
contractTerm
Description
Get contract and single term data
Required Permissions
"Offer - Read-Only Access"
Response
Returns a ContractDetails!
Arguments
| Name | Description |
|---|---|
termId - ID!
|
contract term id, legacy contract assignment rid |
Example
Query
query contractTerm($termId: ID!) {
contractTerm(termId: $termId) {
id
title
status
closingReason {
...ClosingReasonFragment
}
deliveryModel
kind
isPtc
createDate
modifyDate
startDate
endDate
offer {
...OfferFragment
}
offerId
job {
...JobPostingFragment
}
freelancer {
...ContractUserFragment
}
vendorOrganization {
...GenericOrganizationFragment
}
vendorTeam {
...GenericOrganizationFragment
}
clientOrganization {
...GenericOrganizationFragment
}
clientTeam {
...GenericOrganizationFragment
}
hiringManager {
...ContractUserFragment
}
agencyManager {
...ContractUserFragment
}
supervisor {
...ContractUserFragment
}
changingUserType
changedBy {
...ContractUserFragment
}
endedBy {
...ContractUserFragment
}
metadata {
...ContractMetadataFragment
}
hourlyLimits {
...HourlyLimitFragment
}
terms {
...ContractTermsFragment
}
projectId
}
}
Variables
{"termId": 4}
Response
{
"data": {
"contractTerm": {
"id": "4",
"title": "xyz789",
"status": "ACTIVE",
"closingReason": ClosingReason,
"deliveryModel": "TALENT_MARKETPLACE",
"kind": "WEEKLY_RETAINER",
"isPtc": false,
"createDate": "xyz789",
"modifyDate": "xyz789",
"startDate": "xyz789",
"endDate": "xyz789",
"offer": Offer,
"offerId": "4",
"job": JobPosting,
"freelancer": ContractUser,
"vendorOrganization": GenericOrganization,
"vendorTeam": GenericOrganization,
"clientOrganization": GenericOrganization,
"clientTeam": GenericOrganization,
"hiringManager": ContractUser,
"agencyManager": ContractUser,
"supervisor": ContractUser,
"changingUserType": "CLIENT",
"changedBy": ContractUser,
"endedBy": ContractUser,
"metadata": ContractMetadata,
"hourlyLimits": [HourlyLimit],
"terms": ContractTerms,
"projectId": 4
}
}
}
customFields
Description
Custom fields information
Required Permissions
"Common Entities - Read-Only Access"
Response
Returns [CustomFields!]
Arguments
| Name | Description |
|---|---|
input - CustomFieldsInput!
|
Filters for custom fields retrieval |
offset - Int
|
Pagination offset |
limit - Int
|
Pagination limit |
Example
Query
query customFields(
$input: CustomFieldsInput!,
$offset: Int,
$limit: Int
) {
customFields(
input: $input,
offset: $offset,
limit: $limit
) {
responseId
id
itemId
typeSnap
labelSnap
displayValueSnap
creator {
...GenericUserFragment
}
createdDateTime {
...DateTimeFragment
}
rollupAssignmentId
firstContractId
offerId
jobPostingId
byoInvitationId
buyItNowId
questionnaireResponsesId
stale
termSectionId
aclSnap
}
}
Variables
{"input": CustomFieldsInput, "offset": 987, "limit": 123}
Response
{
"data": {
"customFields": [
{
"responseId": "4",
"id": 4,
"itemId": 4,
"typeSnap": "TEXT_FIELD",
"labelSnap": "xyz789",
"displayValueSnap": "abc123",
"creator": GenericUser,
"createdDateTime": DateTime,
"rollupAssignmentId": 4,
"firstContractId": 4,
"offerId": "4",
"jobPostingId": "4",
"byoInvitationId": 4,
"buyItNowId": 4,
"questionnaireResponsesId": "4",
"stale": true,
"termSectionId": 4,
"aclSnap": "xyz789"
}
]
}
}
offer
Description
Returns offer for the given id
Required Permissions
"Offer - Read-Only Access"
Example
Query
query offer($id: ID!) {
offer(id: $id) {
id
title
description
type
job {
...MarketplaceJobPostingFragment
}
vendorProposal {
...VendorProposalFragment
}
closeJobPostingOnAccept
client {
...GenericOrganizationFragment
}
offerTerms {
...OfferTermsFragment
}
messageToContractor
state
offerFeatures {
...OfferFeaturesFragment
}
clientCompany {
...PublicCompanyInfoFragment
}
milestones {
...MilestoneFragment
}
createdUsingBYOFlow
freelancer {
...FreelancerProfileFragment
}
payrollOffer
deliveryModel
customFields {
...CustomFieldsConnectionFragment
}
}
}
Variables
{"id": "4"}
Response
{
"data": {
"offer": {
"id": "4",
"title": "abc123",
"description": "abc123",
"type": "MARKET_PLACE_HOURLY",
"job": MarketplaceJobPosting,
"vendorProposal": VendorProposal,
"closeJobPostingOnAccept": false,
"client": GenericOrganization,
"offerTerms": OfferTerms,
"messageToContractor": "abc123",
"state": "DRAFT",
"offerFeatures": OfferFeatures,
"clientCompany": PublicCompanyInfo,
"milestones": [Milestone],
"createdUsingBYOFlow": true,
"freelancer": FreelancerProfile,
"payrollOffer": true,
"deliveryModel": "TalentMarketplace",
"customFields": CustomFieldsConnection
}
}
}
offersByAttribute
Description
Get offers by search attribute and id.
Required Permissions
"Offer - Read-Only Access"
Response
Returns an OfferList
Arguments
| Name | Description |
|---|---|
filter - SearchOffersInput!
|
contains data for searching |
Example
Query
query offersByAttribute($filter: SearchOffersInput!) {
offersByAttribute(filter: $filter) {
offers {
...OfferFragment
}
}
}
Variables
{"filter": SearchOffersInput}
Response
{"data": {"offersByAttribute": {"offers": [Offer]}}}
offersByAttributes
Description
Get modernized offers by search for multiple attributes ids.
Required Permissions
One of: "Offer - Read-Only Access" OR "Offer - Read And Write Access"
Response
Returns a ModernizedContractOfferList
Arguments
| Name | Description |
|---|---|
filter - SearchOffersByAttributesInput!
|
Search criteria by attribute IDs |
Example
Query
query offersByAttributes($filter: SearchOffersByAttributesInput!) {
offersByAttributes(filter: $filter) {
offers {
...ModernizedContractOfferFragment
}
}
}
Variables
{"filter": SearchOffersByAttributesInput}
Response
{
"data": {
"offersByAttributes": {
"offers": [ModernizedContractOffer]
}
}
}
vendorContracts
Description
Get list of contracts associated with a specific vendor
Required Permissions
"Offer - Read-Only Access"
Response
Returns a ContractSearchResults
Arguments
| Name | Description |
|---|---|
filter - VendorContractSearchFilter!
|
vendor contract search filter |
options - ContractOptionsInput
|
contract options |
paging - ContractPagingInput
|
paging input |
Example
Query
query vendorContracts(
$filter: VendorContractSearchFilter!,
$options: ContractOptionsInput,
$paging: ContractPagingInput
) {
vendorContracts(
filter: $filter,
options: $options,
paging: $paging
) {
paging {
...ContractPagingFragment
}
contracts {
...ContractDetailsFragment
}
}
}
Variables
{
"filter": VendorContractSearchFilter,
"options": ContractOptionsInput,
"paging": ContractPagingInput
}
Response
{
"data": {
"vendorContracts": {
"paging": ContractPaging,
"contracts": [ContractDetails]
}
}
}
ontologyCategories
Description
Fetch all enabled categories/subcategories/services
Required Permissions
One of: "Common Functionality - Read And Write Access" OR "Ontology - Read-Only Access"
Response
Returns [OntologyCategory!]!
Example
Query
query ontologyCategories {
ontologyCategories {
id
preferredLabel
altLabel
slug
ontologyId
subcategories {
...OntologySubcategoryFragment
}
services {
...OntologyServiceFragment
}
}
}
Response
{
"data": {
"ontologyCategories": [
{
"id": "4",
"preferredLabel": "abc123",
"altLabel": ["xyz789"],
"slug": "abc123",
"ontologyId": "abc123",
"subcategories": [OntologySubcategory],
"services": [OntologyService]
}
]
}
}
ontologyElementsSearchByPrefLabel
Description
Allows search of elements by prefLabel and return the elements that have provided string in prefLabel, at start, end or in the middle; case insensitive
Required Permissions
"Common Entities - Read-Only Access"
Response
Returns [OntologyEntity!]!
Arguments
| Name | Description |
|---|---|
filter - OntologyElementsSearchByPrefLabelFilter
|
Example
Query
query ontologyElementsSearchByPrefLabel($filter: OntologyElementsSearchByPrefLabelFilter) {
ontologyElementsSearchByPrefLabel(filter: $filter) {
id
ontologyId
type
entityStatus
preferredLabel
definition
createdDateTime
modifiedDateTime
}
}
Variables
{"filter": OntologyElementsSearchByPrefLabelFilter}
Response
{
"data": {
"ontologyElementsSearchByPrefLabel": [
{
"id": "4",
"ontologyId": "xyz789",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "xyz789",
"definition": "xyz789",
"createdDateTime": "xyz789",
"modifiedDateTime": "abc123"
}
]
}
}
ontologyEntities
Description
Lookup entities by IDs
Required Permissions
One of: "Common Functionality - Read And Write Access" OR "Ontology - Read-Only Access"
Response
Returns [OntologyEntityResult!]!
Arguments
| Name | Description |
|---|---|
ids - [String!]!
|
Example
Query
query ontologyEntities($ids: [String!]!) {
ontologyEntities(ids: $ids) {
... on Skill {
...SkillFragment
}
... on Occupation {
...OccupationFragment
}
}
}
Variables
{"ids": ["abc123"]}
Response
{"data": {"ontologyEntities": [Skill]}}
ontologyEntitiesFiltered
Description
Lookup entities by pref label and status, currently this field supports only taxonomyLevel=SERVICE E.g supported filtering : ontologyEntityFilter:{preferredLabel_any:"javascript", taxonomyLevel: SERVICE, limit: 5}
Required Permissions
One of: "Common Functionality - Read And Write Access" OR "Ontology - Read-Only Access"
Response
Returns an OntologyConnection
Arguments
| Name | Description |
|---|---|
ontologyEntityFilter - OntologyEntityFilter
|
|
pagination - Pagination
|
Example
Query
query ontologyEntitiesFiltered(
$ontologyEntityFilter: OntologyEntityFilter,
$pagination: Pagination
) {
ontologyEntitiesFiltered(
ontologyEntityFilter: $ontologyEntityFilter,
pagination: $pagination
) {
totalCount
edges {
...OntologyEntityEdgeFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Variables
{
"ontologyEntityFilter": OntologyEntityFilter,
"pagination": Pagination
}
Response
{
"data": {
"ontologyEntitiesFiltered": {
"totalCount": 123,
"edges": [OntologyEntityEdge],
"pageInfo": PageInfo
}
}
}
ontologyEntity
Description
Fetch entity by ID
Required Permissions
"Ontology - Read-Only Access"
Response
Returns an OntologyEntityResult
Arguments
| Name | Description |
|---|---|
id - ID!
|
Example
Query
query ontologyEntity($id: ID!) {
ontologyEntity(id: $id) {
... on Skill {
...SkillFragment
}
... on Occupation {
...OccupationFragment
}
}
}
Variables
{"id": "4"}
Response
{"data": {"ontologyEntity": Skill}}
ontologyEntitySearchRecords
Description
Search ontology entities by ontoloyIds ontologyId is consistent accross all environments as opposed to UID which is unique per environment example: upwork:AndroidGameDevelopmentEngines
Required Permissions
"Ontology - Read-Only Access"
Response
Returns [OntologyEntitySearchRecord!]
Arguments
| Name | Description |
|---|---|
filter - OntologyEntitySearchFilter!
|
Example
Query
query ontologyEntitySearchRecords($filter: OntologyEntitySearchFilter!) {
ontologyEntitySearchRecords(filter: $filter) {
ontologyEntity {
...OntologyEntityFragment
}
}
}
Variables
{"filter": OntologyEntitySearchFilter}
Response
{
"data": {
"ontologyEntitySearchRecords": [
{"ontologyEntity": OntologyEntity}
]
}
}
ontologyOccupationsCategoriesServices
Description
Searches occupations categories services by list of category Uids and return the list of categories and a map of every category and related services
Response
Returns a CategoryServicesResponse
Arguments
| Name | Description |
|---|---|
categoryUids - [ID!]
|
Example
Query
query ontologyOccupationsCategoriesServices($categoryUids: [ID!]) {
ontologyOccupationsCategoriesServices(categoryUids: $categoryUids) {
categories {
...OccupationFragment
}
categoryServices {
...StringMapOccupationFragment
}
}
}
Variables
{"categoryUids": ["4"]}
Response
{
"data": {
"ontologyOccupationsCategoriesServices": {
"categories": [Occupation],
"categoryServices": [StringMapOccupation]
}
}
}
ontologySkills
Description
Get the list of skills paginated with limit and offset
Required Permissions
One of: "Common Entities - Read-Only Access" OR "Common Functionality - Read And Write Access"
Example
Query
query ontologySkills(
$limit: Int!,
$offset: Int
) {
ontologySkills(
limit: $limit,
offset: $offset
) {
id
ontologyId
type
entityStatus
preferredLabel
createdDateTime
modifiedDateTime
definition
altLabel
narrower
narrowerIds
broader
broaderIds
dependsOn
dependsOnIds
splitInto
splitIntoIds
mergedInto
mergedIntoId
replacedBy
replacedById
scopeNote
externalLink
exactMatch
exactMatchIds
closeMatch
closeMatchIds
comment
attributeLevel
allowMultipleClient
allowMultipleFreelancer
allowOther
clientQuestion
clientTip
freelancerQuestion
freelancerTip
advancedClient
client
freelancer
requiredClient
requiredFreelancer
otherClientLabel
otherFreelancerLabel
presentationMode
priority
isRequiredBy
isRequiredByIds
legacySkillNid
prettyName
legacySkillId
}
}
Variables
{"limit": 123, "offset": 987}
Response
{
"data": {
"ontologySkills": [
{
"id": "4",
"ontologyId": "xyz789",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "xyz789",
"createdDateTime": "abc123",
"modifiedDateTime": "xyz789",
"definition": "abc123",
"altLabel": ["abc123"],
"narrower": ["xyz789"],
"narrowerIds": ["4"],
"broader": ["abc123"],
"broaderIds": [4],
"dependsOn": ["abc123"],
"dependsOnIds": [4],
"splitInto": ["abc123"],
"splitIntoIds": ["4"],
"mergedInto": "abc123",
"mergedIntoId": "4",
"replacedBy": "xyz789",
"replacedById": "4",
"scopeNote": "abc123",
"externalLink": ["xyz789"],
"exactMatch": ["abc123"],
"exactMatchIds": [4],
"closeMatch": ["xyz789"],
"closeMatchIds": [4],
"comment": "xyz789",
"attributeLevel": ["xyz789"],
"allowMultipleClient": true,
"allowMultipleFreelancer": true,
"allowOther": true,
"clientQuestion": "abc123",
"clientTip": "xyz789",
"freelancerQuestion": "abc123",
"freelancerTip": "xyz789",
"advancedClient": true,
"client": true,
"freelancer": false,
"requiredClient": true,
"requiredFreelancer": false,
"otherClientLabel": "xyz789",
"otherFreelancerLabel": "xyz789",
"presentationMode": "abc123",
"priority": 123,
"isRequiredBy": ["abc123"],
"isRequiredByIds": ["4"],
"legacySkillNid": "abc123",
"prettyName": "abc123",
"legacySkillId": 4
}
]
}
}
proposalMetadata
Description
Metadata for proposals
Required Permissions
One of: "Common Entities - Read-Only Access" OR "Common Functionality - Read And Write Access"
Response
Returns a ProposalMetadata
Example
Query
query proposalMetadata {
proposalMetadata {
engagementDurationValues {
...ProposalEngagementDurationFragment
}
reasons {
...ReasonsMetadataFragment
}
}
}
Response
{
"data": {
"proposalMetadata": {
"engagementDurationValues": [
ProposalEngagementDuration
],
"reasons": [ReasonsMetadata]
}
}
}
vendorProposal
Description
Vendor proposal by ID
Required Permissions
"Client Proposals - Read And Write Access"
Response
Returns a VendorProposal
Arguments
| Name | Description |
|---|---|
id - ID!
|
id of the vendor proposal |
Example
Query
query vendorProposal($id: ID!) {
vendorProposal(id: $id) {
id
user {
...GenericUserFragment
}
organization {
...GenericOrganizationFragment
}
marketplaceJobPosting {
...MarketplaceJobPostingFragment
}
terms {
...ProposalTermsFragment
}
coverLetter
proposalCoverLetter
projectPlan {
...ProposalProjectPlanFragment
}
auditDetails {
...ProposalAuditDetailsFragment
}
status {
...VendorProposalStatusFragment
}
annotations
}
}
Variables
{"id": "4"}
Response
{
"data": {
"vendorProposal": {
"id": "4",
"user": GenericUser,
"organization": GenericOrganization,
"marketplaceJobPosting": MarketplaceJobPosting,
"terms": ProposalTerms,
"coverLetter": "abc123",
"proposalCoverLetter": "abc123",
"projectPlan": ProposalProjectPlan,
"auditDetails": ProposalAuditDetails,
"status": VendorProposalStatus,
"annotations": ["Hidden"]
}
}
}
vendorProposals
Description
List of vendor proposals based on filters like job posting ids, vendor id, etc. "after" field in pagination only supports null or cursor based pagination returned in VendorProposalsConnection.pageInfo.endCursor.
Required Permissions
"Client Proposals - Read And Write Access"
Response
Returns a VendorProposalsConnection!
Arguments
| Name | Description |
|---|---|
filter - VendorProposalFilter!
|
Filter for vendor proposals |
sortAttribute - VendorProposalSortAttribute!
|
Sort attribute |
pagination - Pagination!
|
Pagination options |
Example
Query
query vendorProposals(
$filter: VendorProposalFilter!,
$sortAttribute: VendorProposalSortAttribute!,
$pagination: Pagination!
) {
vendorProposals(
filter: $filter,
sortAttribute: $sortAttribute,
pagination: $pagination
) {
totalCount
edges {
...VendorProposalsEdgeFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Variables
{
"filter": VendorProposalFilter,
"sortAttribute": VendorProposalSortAttribute,
"pagination": Pagination
}
Response
{
"data": {
"vendorProposals": {
"totalCount": 987,
"edges": [VendorProposalsEdge],
"pageInfo": PageInfo
}
}
}
clientProposal
Description
Client proposal by ID
Required Permissions
"Client Proposals - Read And Write Access"
Response
Returns a ClientProposal
Arguments
| Name | Description |
|---|---|
id - ID!
|
id of the client proposal |
Example
Query
query clientProposal($id: ID!) {
clientProposal(id: $id) {
id
user {
...GenericUserFragment
}
organization {
...GenericOrganizationFragment
}
job {
...MarketplaceJobPostingFragment
}
terms {
...ProposalTermsFragment
}
coverLetter
projectPlan {
...ProposalProjectPlanFragment
}
auditDetails {
...ProposalAuditDetailsFragment
}
status {
...ClientProposalStatusFragment
}
annotations
}
}
Variables
{"id": 4}
Response
{
"data": {
"clientProposal": {
"id": "4",
"user": GenericUser,
"organization": GenericOrganization,
"job": MarketplaceJobPosting,
"terms": ProposalTerms,
"coverLetter": "abc123",
"projectPlan": ProposalProjectPlan,
"auditDetails": ProposalAuditDetails,
"status": ClientProposalStatus,
"annotations": ["Recommended"]
}
}
}
clientProposals
Description
Search client proposal
Required Permissions
"Client Proposals - Read And Write Access"
Response
Returns a ClientProposalsConnection
Arguments
| Name | Description |
|---|---|
jobPostingId - ID!
|
Job posting identifier |
filter - ClientProposalFilter
|
Filter for client proposals |
sortAttribute - ClientProposalSortAttribute
|
Sort attribute |
pagination - Pagination
|
Pagination options |
Example
Query
query clientProposals(
$jobPostingId: ID!,
$filter: ClientProposalFilter,
$sortAttribute: ClientProposalSortAttribute,
$pagination: Pagination
) {
clientProposals(
jobPostingId: $jobPostingId,
filter: $filter,
sortAttribute: $sortAttribute,
pagination: $pagination
) {
totalCount
edges {
...ClientProposalsEdgeFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Variables
{
"jobPostingId": 4,
"filter": ClientProposalFilter,
"sortAttribute": ClientProposalSortAttribute,
"pagination": Pagination
}
Response
{
"data": {
"clientProposals": {
"totalCount": 987,
"edges": [ClientProposalsEdge],
"pageInfo": PageInfo
}
}
}
contractTimeReport
Required Permissions
"TimeSheet - Read-Only Access"
Response
Returns a TimeReportConnection!
Arguments
| Name | Description |
|---|---|
filter - TimeReportFilter
|
Filter by organization, time range and optional contracts |
pagination - Pagination
|
Pagination options |
Example
Query
query contractTimeReport(
$filter: TimeReportFilter,
$pagination: Pagination
) {
contractTimeReport(
filter: $filter,
pagination: $pagination
) {
totalCount
edges {
...TimeReportEdgeFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Variables
{
"filter": TimeReportFilter,
"pagination": Pagination
}
Response
{
"data": {
"contractTimeReport": {
"totalCount": 987,
"edges": [TimeReportEdge],
"pageInfo": PageInfo
}
}
}
timeReport
Description
Get the time report details for the given time range and a given organization
Required Permissions
"TimeSheet - Read-Only Access"
Response
Returns [TimeReport!]
Arguments
| Name | Description |
|---|---|
filter - TimeReportFilter
|
Example
Query
query timeReport($filter: TimeReportFilter) {
timeReport(filter: $filter) {
dateWorkedOn
weekWorkedOn
monthWorkedOn
yearWorkedOn
freelancer {
...GenericUserFragment
}
team {
...GenericOrganizationFragment
}
contractOffer {
...ContractOfferResultFragment
}
contract {
...ContractDetailsFragment
}
termId
task
taskDescription
memo
totalHoursWorked
totalCharges
totalOnlineHoursWorked
totalOnlineCharge
totalOfflineHoursWorked
totalOfflineCharge
billRate {
...BillRateFragment
}
}
}
Variables
{"filter": TimeReportFilter}
Response
{
"data": {
"timeReport": [
{
"dateWorkedOn": "abc123",
"weekWorkedOn": "xyz789",
"monthWorkedOn": "abc123",
"yearWorkedOn": "abc123",
"freelancer": GenericUser,
"team": GenericOrganization,
"contractOffer": ContractOfferResult,
"contract": ContractDetails,
"termId": "4",
"task": "xyz789",
"taskDescription": "xyz789",
"memo": "abc123",
"totalHoursWorked": 123.45,
"totalCharges": 987.65,
"totalOnlineHoursWorked": 987.65,
"totalOnlineCharge": 987.65,
"totalOfflineHoursWorked": 987.65,
"totalOfflineCharge": 123.45,
"billRate": BillRate
}
]
}
}
transactionHistory
Description
Returns some total data about the entire set of transactions. Result also includes groups of pending transactions, if available.
Required Permissions
One of: "Common Entities - Read-Only Access" OR "Read only access for transaction data"
Response
Returns a TransactionHistory
Arguments
| Name | Description |
|---|---|
transactionHistoryFilter - TransactionHistoryFilter
|
Transactions history filter |
Example
Query
query transactionHistory($transactionHistoryFilter: TransactionHistoryFilter) {
transactionHistory(transactionHistoryFilter: $transactionHistoryFilter) {
transactionDetail {
...TransactionHistoryDetailFragment
}
}
}
Variables
{"transactionHistoryFilter": TransactionHistoryFilter}
Response
{
"data": {
"transactionHistory": {
"transactionDetail": TransactionHistoryDetail
}
}
}
freelancerProfileSearchRecords
Description
Search freelancer profiles based on various filters
Required Permissions
"Freelancer Profile - Read And Write Access"
Response
Arguments
| Name | Description |
|---|---|
searchFilter - FreelancerProfileSearchFilter!
|
Search filters for freelancer profiles |
pagination - Pagination!
|
Pagination options |
Example
Query
query freelancerProfileSearchRecords(
$searchFilter: FreelancerProfileSearchFilter!,
$pagination: Pagination!
) {
freelancerProfileSearchRecords(
searchFilter: $searchFilter,
pagination: $pagination
) {
edges {
...FreelancerProfilesSearchResultEdgeFragment
}
pageInfo {
...PageInfoFragment
}
totalCount
}
}
Variables
{
"searchFilter": FreelancerProfileSearchFilter,
"pagination": Pagination
}
Response
{
"data": {
"freelancerProfileSearchRecords": {
"edges": [FreelancerProfilesSearchResultEdge],
"pageInfo": PageInfo,
"totalCount": 987
}
}
}
marketplaceJobPostingsSearch
Description
Search Marketplace Jobs and get their relevant details searchType determines the context and method of the job search being executed Note : searchType value will be ignored and always set to USER_JOBS_SEARCH, utilized when performing a user-initiated job search.
Required Permissions
"Read marketplace Job Postings"
Response
Returns a MarketplaceJobPostingSearchConnection
Arguments
| Name | Description |
|---|---|
marketPlaceJobFilter - MarketplaceJobPostingsSearchFilter
|
Filters to be applied to the search |
searchType - MarketplaceJobPostingSearchType
|
The appropriate search type |
sortAttributes - [MarketplaceJobPostingSearchSortAttribute]
|
Sorting options for the search results |
Example
Query
query marketplaceJobPostingsSearch(
$marketPlaceJobFilter: MarketplaceJobPostingsSearchFilter,
$searchType: MarketplaceJobPostingSearchType,
$sortAttributes: [MarketplaceJobPostingSearchSortAttribute]
) {
marketplaceJobPostingsSearch(
marketPlaceJobFilter: $marketPlaceJobFilter,
searchType: $searchType,
sortAttributes: $sortAttributes
) {
totalCount
edges {
...MarketplaceJobpostingSearchEdgeFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Variables
{
"marketPlaceJobFilter": MarketplaceJobPostingsSearchFilter,
"searchType": "USER_JOBS_SEARCH",
"sortAttributes": [
MarketplaceJobPostingSearchSortAttribute
]
}
Response
{
"data": {
"marketplaceJobPostingsSearch": {
"totalCount": 987,
"edges": [MarketplaceJobpostingSearchEdge],
"pageInfo": PageInfo
}
}
}
search
Description
Universal search
Required Permissions
"Freelancer Profile - Read And Write Access"
Response
Returns a Search
Example
Query
query search {
search {
searchFreelancerPublicProfile {
...SemSearchV2ResponseFragment
}
}
}
Response
{
"data": {
"search": {
"searchFreelancerPublicProfile": SemSearchV2Response
}
}
}
talentCloudTasks
Description
List of task overviews for specified talent clouds
Required Permissions
"Job Postings - Read-Only Access"
Response
Returns [TalentCloudTask]
Arguments
| Name | Description |
|---|---|
filter - TalentCloudTasksInputFilter!
|
Filter for talent cloud tasks |
Example
Query
query talentCloudTasks($filter: TalentCloudTasksInputFilter!) {
talentCloudTasks(filter: $filter) {
talentCloud {
...PrivateTalentCloudFragment
}
taskSections {
...TalentCloudTaskSectionFragment
}
}
}
Variables
{"filter": TalentCloudTasksInputFilter}
Response
{
"data": {
"talentCloudTasks": [
{
"talentCloud": PrivateTalentCloud,
"taskSections": [TalentCloudTaskSection]
}
]
}
}
talentProfileByProfileKey
Description
Primary profile by profile key
Required Permissions
"Talent Profile - Read And Write Access public"
Response
Returns a TalentProfile
Arguments
| Name | Description |
|---|---|
profileKey - String!
|
Public profile key string |
Example
Query
query talentProfileByProfileKey($profileKey: String!) {
talentProfileByProfileKey(profileKey: $profileKey) {
personId
identity {
...TalentProfileIdentityFragment
}
personalData {
...TalentProfilePersonalDataFragment
}
preferences {
...TalentProfileUserPreferencesFragment
}
settings {
...TalentProfileSettingsFragment
}
personAvailability {
...TalentPersonAvailabilityFragment
}
projectList {
...TalentProjectListFragment
}
communityCertificates {
...TalentProfileCommunityCertificateFragment
}
profileCompleteness {
...TalentProfileCompletenessSummaryFragment
}
otherExperiences {
...TalentProfileOtherExperienceFragment
}
educationRecords {
...TalentEducationRecordFragment
}
employmentRecords {
...TalentProfileEmploymentRecordFragment
}
skills {
...TalentProfilePersonSkillFragment
}
jobCategories {
...TalentJobCategoryGroupFragment
}
profileAggregates {
...TalentProfileAggregateFragment
}
specializedProfiles {
...TalentSpecializedProfileFragment
}
specializedProfilesSkills {
...TalentSpecializedProfileSkillFragment
}
specializedProfilesProjects {
...TalentSpecializedProfilesProjectFragment
}
}
}
Variables
{"profileKey": "abc123"}
Response
{
"data": {
"talentProfileByProfileKey": {
"personId": "4",
"identity": TalentProfileIdentity,
"personalData": TalentProfilePersonalData,
"preferences": TalentProfileUserPreferences,
"settings": TalentProfileSettings,
"personAvailability": TalentPersonAvailability,
"projectList": TalentProjectList,
"communityCertificates": [
TalentProfileCommunityCertificate
],
"profileCompleteness": TalentProfileCompletenessSummary,
"otherExperiences": [TalentProfileOtherExperience],
"educationRecords": [TalentEducationRecord],
"employmentRecords": [
TalentProfileEmploymentRecord
],
"skills": [TalentProfilePersonSkill],
"jobCategories": [TalentJobCategoryGroup],
"profileAggregates": TalentProfileAggregate,
"specializedProfiles": [TalentSpecializedProfile],
"specializedProfilesSkills": [
TalentSpecializedProfileSkill
],
"specializedProfilesProjects": [
TalentSpecializedProfilesProject
]
}
}
}
talentWorkHistory
Description
Get Talent Work history
Required Permissions
"Talent Workhistory - Read Only Access"
Response
Returns a TalentWorkHistoryConnection
Arguments
| Name | Description |
|---|---|
filter - TalentWorkHistoryFilterInput
|
Example
Query
query talentWorkHistory($filter: TalentWorkHistoryFilterInput) {
talentWorkHistory(filter: $filter) {
workHistoryList {
...TalentWorkHistoryFragment
}
totalCount
}
}
Variables
{"filter": TalentWorkHistoryFilterInput}
Response
{
"data": {
"talentWorkHistory": {
"workHistoryList": [TalentWorkHistory],
"totalCount": 987
}
}
}
company
Description
Get company info
Required Permissions
"Common Entities - Read-Only Access"
Response
Returns a CompanyInfo
Arguments
| Name | Description |
|---|---|
id - ID!
|
Company identifier |
Example
Query
query company($id: ID!) {
company(id: $id) {
public {
...PublicCompanyInfoFragment
}
private {
...PrivateCompanyInfoFragment
}
}
}
Variables
{"id": 4}
Response
{
"data": {
"company": {
"public": PublicCompanyInfo,
"private": PrivateCompanyInfo
}
}
}
companySelector
Description
Company selector provides information on companies that user can select
Required Permissions
"Common Entities - Read-Only Access"
Response
Returns a CompanySelector!
Example
Query
query companySelector {
companySelector {
items {
...CompanySelectorItemFragment
}
}
}
Response
{
"data": {
"companySelector": {"items": [CompanySelectorItem]}
}
}
contractRoom
Description
Returns the interview room associated with the given contractId
Required Permissions
One of: "Messaging - Read-Only Access" OR "Messaging - Read and Write Access"
Example
Query
query contractRoom($contractId: ID!) {
contractRoom(contractId: $contractId) {
id
roomName
organization {
...CurrentOrganizationFragment
}
creator {
...RoomUserFragment
}
createdAtDateTime
public
topic
owner {
...RoomUserFragment
}
numUnread
roomFavoriteDateTime
favorite
numUnreadMentions
roomUsers {
...RoomUserFragment
}
numUsers
joinDateTime
lastVisitedDateTime
lastReadDateTime
roomType
readOnlyDateTime
readOnly
blockDateTime
blockedBy {
...RoomUserFragment
}
hidden
muted
contractId
contract {
...ContractFragment
}
contractDetails {
...ContractDetailsFragment
}
vendorProposal {
...VendorProposalFragment
}
roomNote
roomNotePresent
offerIds
recruiters {
...GenericUserFragment
}
latestStory {
...RoomStoryFragment
}
story {
...RoomStoryFragment
}
stories {
...RoomStoryConnectionFragment
}
latestStoryPreRendered {
...RoomStoryFragment
}
}
}
Variables
{"contractId": 4}
Response
{
"data": {
"contractRoom": {
"id": 4,
"roomName": "abc123",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "xyz789",
"public": true,
"topic": "xyz789",
"owner": RoomUser,
"numUnread": 987,
"roomFavoriteDateTime": "abc123",
"favorite": true,
"numUnreadMentions": 987,
"roomUsers": [RoomUser],
"numUsers": 987,
"joinDateTime": "abc123",
"lastVisitedDateTime": "xyz789",
"lastReadDateTime": "xyz789",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "abc123",
"readOnly": false,
"blockDateTime": "abc123",
"blockedBy": RoomUser,
"hidden": true,
"muted": false,
"contractId": "4",
"contract": Contract,
"contractDetails": ContractDetails,
"vendorProposal": VendorProposal,
"roomNote": "abc123",
"roomNotePresent": true,
"offerIds": ["4"],
"recruiters": [GenericUser],
"latestStory": RoomStory,
"story": RoomStory,
"stories": RoomStoryConnection,
"latestStoryPreRendered": RoomStory
}
}
}
freelancerProfileByProfileKey
Description
Retrieve freelancer profile by the freelancer profile key(ciphertext)
Required Permissions
"Freelancer Profile - Read And Write Access"
Response
Returns a FreelancerProfile!
Arguments
| Name | Description |
|---|---|
profileKey - String!
|
Public profile key |
Example
Query
query freelancerProfileByProfileKey($profileKey: String!) {
freelancerProfileByProfileKey(profileKey: $profileKey) {
user {
...CurrentUserFragment
}
userDetails {
...GenericUserFragment
}
personalData {
...FreelancerProfilePersonalDataFragment
}
userPreferences {
...FreelancerProfileUserPreferencesFragment
}
otherExperiences {
...FreelancerProfileOtherExperiencesConnectionFragment
}
languages {
...FreelancerProfileLanguagesConnectionFragment
}
educationRecords {
...FreelancerProfileEducationRecordFragment
}
certificates {
...FreelancerProfileCertificateFragment
}
employmentRecords {
...FreelancerProfileEmploymentRecordFragment
}
availability {
...FreelancerProfileAvailabilityFragment
}
committedResponseTime {
...FreelancerProfileCommittedResponseTimeFragment
}
project {
...FreelancerProfileProjectFragment
}
skills {
...FreelancerSkillsConnectionFragment
}
aggregates {
...FreelancerProfileAggregatesFragment
}
jobCategories {
...FreelancerProfileJobCategoriesConnectionFragment
}
profileCompletenessSummary {
...FreelancerProfileCompletenessSummaryFragment
}
linkedExternalAccountsList {
...FreelancerProfileLinkedExternalAccountsConnectionFragment
}
verifications {
...FreelancerProfileVerificationsFragment
}
fullName
firstName
lastName
countryDetails {
...CountryFragment
}
email
portrait {
...PortraitFragment
}
phoneNumber {
...PhoneNumberFragment
}
privateTalentCloud {
...PrivateTalentCloudConnectionFragment
}
}
}
Variables
{"profileKey": "abc123"}
Response
{
"data": {
"freelancerProfileByProfileKey": {
"user": CurrentUser,
"userDetails": GenericUser,
"personalData": FreelancerProfilePersonalData,
"userPreferences": FreelancerProfileUserPreferences,
"otherExperiences": FreelancerProfileOtherExperiencesConnection,
"languages": FreelancerProfileLanguagesConnection,
"educationRecords": [
FreelancerProfileEducationRecord
],
"certificates": [FreelancerProfileCertificate],
"employmentRecords": [
FreelancerProfileEmploymentRecord
],
"availability": FreelancerProfileAvailability,
"committedResponseTime": FreelancerProfileCommittedResponseTime,
"project": FreelancerProfileProject,
"skills": FreelancerSkillsConnection,
"aggregates": FreelancerProfileAggregates,
"jobCategories": FreelancerProfileJobCategoriesConnection,
"profileCompletenessSummary": FreelancerProfileCompletenessSummary,
"linkedExternalAccountsList": FreelancerProfileLinkedExternalAccountsConnection,
"verifications": FreelancerProfileVerifications,
"fullName": "xyz789",
"firstName": "abc123",
"lastName": "xyz789",
"countryDetails": Country,
"email": "xyz789",
"portrait": Portrait,
"phoneNumber": PhoneNumber,
"privateTalentCloud": PrivateTalentCloudConnection
}
}
}
freelancerVisibility
Description
Get the visibility status of a given freelancer profile
Required Permissions
"Freelancer Profile - Read And Write Access"
Response
Returns a FreelancerVisibility
Arguments
| Name | Description |
|---|---|
id - ID
|
Freelancer user identifier |
Example
Query
query freelancerVisibility($id: ID) {
freelancerVisibility(id: $id) {
locked
risky
currentVisibility
originalVisibility
}
}
Variables
{"id": "4"}
Response
{
"data": {
"freelancerVisibility": {
"locked": false,
"risky": true,
"currentVisibility": "xyz789",
"originalVisibility": "abc123"
}
}
}
offerRoom
Description
Returns room associated with the given offerId
Required Permissions
One of: "Messaging - Read-Only Access" OR "Messaging - Read and Write Access"
Example
Query
query offerRoom($offerId: ID!) {
offerRoom(offerId: $offerId) {
id
roomName
organization {
...CurrentOrganizationFragment
}
creator {
...RoomUserFragment
}
createdAtDateTime
public
topic
owner {
...RoomUserFragment
}
numUnread
roomFavoriteDateTime
favorite
numUnreadMentions
roomUsers {
...RoomUserFragment
}
numUsers
joinDateTime
lastVisitedDateTime
lastReadDateTime
roomType
readOnlyDateTime
readOnly
blockDateTime
blockedBy {
...RoomUserFragment
}
hidden
muted
contractId
contract {
...ContractFragment
}
contractDetails {
...ContractDetailsFragment
}
vendorProposal {
...VendorProposalFragment
}
roomNote
roomNotePresent
offerIds
recruiters {
...GenericUserFragment
}
latestStory {
...RoomStoryFragment
}
story {
...RoomStoryFragment
}
stories {
...RoomStoryConnectionFragment
}
latestStoryPreRendered {
...RoomStoryFragment
}
}
}
Variables
{"offerId": 4}
Response
{
"data": {
"offerRoom": {
"id": 4,
"roomName": "abc123",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "xyz789",
"public": true,
"topic": "abc123",
"owner": RoomUser,
"numUnread": 123,
"roomFavoriteDateTime": "abc123",
"favorite": false,
"numUnreadMentions": 987,
"roomUsers": [RoomUser],
"numUsers": 123,
"joinDateTime": "abc123",
"lastVisitedDateTime": "xyz789",
"lastReadDateTime": "abc123",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "xyz789",
"readOnly": false,
"blockDateTime": "abc123",
"blockedBy": RoomUser,
"hidden": true,
"muted": false,
"contractId": 4,
"contract": Contract,
"contractDetails": ContractDetails,
"vendorProposal": VendorProposal,
"roomNote": "xyz789",
"roomNotePresent": false,
"offerIds": ["4"],
"recruiters": [GenericUser],
"latestStory": RoomStory,
"story": RoomStory,
"stories": RoomStoryConnection,
"latestStoryPreRendered": RoomStory
}
}
}
oneOnOneRoom
Description
Returns 1on1 room between the current user and passed user and organization id
Required Permissions
One of: "Messaging - Read-Only Access" OR "Messaging - Read and Write Access"
Example
Query
query oneOnOneRoom(
$userId: ID!,
$organizationId: ID!
) {
oneOnOneRoom(
userId: $userId,
organizationId: $organizationId
) {
id
roomName
organization {
...CurrentOrganizationFragment
}
creator {
...RoomUserFragment
}
createdAtDateTime
public
topic
owner {
...RoomUserFragment
}
numUnread
roomFavoriteDateTime
favorite
numUnreadMentions
roomUsers {
...RoomUserFragment
}
numUsers
joinDateTime
lastVisitedDateTime
lastReadDateTime
roomType
readOnlyDateTime
readOnly
blockDateTime
blockedBy {
...RoomUserFragment
}
hidden
muted
contractId
contract {
...ContractFragment
}
contractDetails {
...ContractDetailsFragment
}
vendorProposal {
...VendorProposalFragment
}
roomNote
roomNotePresent
offerIds
recruiters {
...GenericUserFragment
}
latestStory {
...RoomStoryFragment
}
story {
...RoomStoryFragment
}
stories {
...RoomStoryConnectionFragment
}
latestStoryPreRendered {
...RoomStoryFragment
}
}
}
Variables
{"userId": 4, "organizationId": "4"}
Response
{
"data": {
"oneOnOneRoom": {
"id": "4",
"roomName": "abc123",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "xyz789",
"public": false,
"topic": "abc123",
"owner": RoomUser,
"numUnread": 123,
"roomFavoriteDateTime": "abc123",
"favorite": false,
"numUnreadMentions": 987,
"roomUsers": [RoomUser],
"numUsers": 123,
"joinDateTime": "xyz789",
"lastVisitedDateTime": "abc123",
"lastReadDateTime": "xyz789",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "abc123",
"readOnly": true,
"blockDateTime": "xyz789",
"blockedBy": RoomUser,
"hidden": false,
"muted": false,
"contractId": "4",
"contract": Contract,
"contractDetails": ContractDetails,
"vendorProposal": VendorProposal,
"roomNote": "abc123",
"roomNotePresent": false,
"offerIds": ["4"],
"recruiters": [GenericUser],
"latestStory": RoomStory,
"story": RoomStory,
"stories": RoomStoryConnection,
"latestStoryPreRendered": RoomStory
}
}
}
organization
Description
Current organization
Required Permissions
One of: "Common Entities - Read-Only Access" OR "Common Functionality - Read And Write Access"
Response
Returns a CurrentOrganization
Example
Query
query organization {
organization {
id
rid
legacyId
name
type
legacyType
flag {
...OrganizationFlagFragment
}
parentOrganization {
...CurrentOrganizationFragment
}
active
hidden
childOrganizations {
...CurrentOrganizationFragment
}
childOrganization {
...CurrentOrganizationFragment
}
company {
...PrivateCompanyInfoFragment
}
photoUrl
creationDate
staffs {
...StaffsConnectionFragment
}
userPermissions {
...UserPermissionsFragment
}
agencyOffers {
...ContractOfferConnectionFragment
}
clientOffers {
...ContractOfferConnectionFragment
}
clientTimeReport {
...TimeReportFragment
}
clientContractTimeReport {
...TimeReportConnectionFragment
}
agencyTimeReport {
...TimeReportFragment
}
agencyContractTimeReport {
...TimeReportConnectionFragment
}
privateTalentClouds {
...PrivateTalentCloudFragment
}
jobPosting {
...JobPostingConnectionFragment
}
}
}
Response
{
"data": {
"organization": {
"id": "4",
"rid": 4,
"legacyId": "4",
"name": "abc123",
"type": "BUSINESS",
"legacyType": "CLIENT",
"flag": OrganizationFlag,
"parentOrganization": CurrentOrganization,
"active": true,
"hidden": true,
"childOrganizations": [CurrentOrganization],
"childOrganization": CurrentOrganization,
"company": PrivateCompanyInfo,
"photoUrl": "xyz789",
"creationDate": "xyz789",
"staffs": StaffsConnection,
"userPermissions": UserPermissions,
"agencyOffers": ContractOfferConnection,
"clientOffers": ContractOfferConnection,
"clientTimeReport": [TimeReport],
"clientContractTimeReport": TimeReportConnection,
"agencyTimeReport": [TimeReport],
"agencyContractTimeReport": TimeReportConnection,
"privateTalentClouds": [PrivateTalentCloud],
"jobPosting": JobPostingConnection
}
}
}
proposalRoom
Description
Returns room associated with a vendor proposal
Required Permissions
One of: "Messaging - Read-Only Access" OR "Messaging - Read and Write Access"
Response
Returns a Room!
Arguments
| Name | Description |
|---|---|
vendorProposalId - ID!
|
Vendor proposal identifier |
Example
Query
query proposalRoom($vendorProposalId: ID!) {
proposalRoom(vendorProposalId: $vendorProposalId) {
id
roomName
organization {
...CurrentOrganizationFragment
}
creator {
...RoomUserFragment
}
createdAtDateTime
public
topic
owner {
...RoomUserFragment
}
numUnread
roomFavoriteDateTime
favorite
numUnreadMentions
roomUsers {
...RoomUserFragment
}
numUsers
joinDateTime
lastVisitedDateTime
lastReadDateTime
roomType
readOnlyDateTime
readOnly
blockDateTime
blockedBy {
...RoomUserFragment
}
hidden
muted
contractId
contract {
...ContractFragment
}
contractDetails {
...ContractDetailsFragment
}
vendorProposal {
...VendorProposalFragment
}
roomNote
roomNotePresent
offerIds
recruiters {
...GenericUserFragment
}
latestStory {
...RoomStoryFragment
}
story {
...RoomStoryFragment
}
stories {
...RoomStoryConnectionFragment
}
latestStoryPreRendered {
...RoomStoryFragment
}
}
}
Variables
{"vendorProposalId": 4}
Response
{
"data": {
"proposalRoom": {
"id": 4,
"roomName": "abc123",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "abc123",
"public": false,
"topic": "abc123",
"owner": RoomUser,
"numUnread": 987,
"roomFavoriteDateTime": "xyz789",
"favorite": false,
"numUnreadMentions": 123,
"roomUsers": [RoomUser],
"numUsers": 123,
"joinDateTime": "abc123",
"lastVisitedDateTime": "xyz789",
"lastReadDateTime": "xyz789",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "xyz789",
"readOnly": true,
"blockDateTime": "xyz789",
"blockedBy": RoomUser,
"hidden": false,
"muted": false,
"contractId": 4,
"contract": Contract,
"contractDetails": ContractDetails,
"vendorProposal": VendorProposal,
"roomNote": "xyz789",
"roomNotePresent": false,
"offerIds": ["4"],
"recruiters": [GenericUser],
"latestStory": RoomStory,
"story": RoomStory,
"stories": RoomStoryConnection,
"latestStoryPreRendered": RoomStory
}
}
}
publicRooms
Description
Get public rooms inside an organization
Required Permissions
One of: "Messaging - Read-Only Access" OR "Messaging - Read and Write Access"
Response
Returns a RoomConnection!
Arguments
| Name | Description |
|---|---|
pagination - Pagination
|
Pagination options |
Example
Query
query publicRooms($pagination: Pagination) {
publicRooms(pagination: $pagination) {
totalCount
edges {
...RoomEdgeFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Variables
{"pagination": Pagination}
Response
{
"data": {
"publicRooms": {
"totalCount": 123,
"edges": [RoomEdge],
"pageInfo": PageInfo
}
}
}
room
Description
Details of a room
Required Permissions
One of: "Messaging - Read-Only Access" OR "Messaging - Read and Write Access"
Example
Query
query room($id: ID!) {
room(id: $id) {
id
roomName
organization {
...CurrentOrganizationFragment
}
creator {
...RoomUserFragment
}
createdAtDateTime
public
topic
owner {
...RoomUserFragment
}
numUnread
roomFavoriteDateTime
favorite
numUnreadMentions
roomUsers {
...RoomUserFragment
}
numUsers
joinDateTime
lastVisitedDateTime
lastReadDateTime
roomType
readOnlyDateTime
readOnly
blockDateTime
blockedBy {
...RoomUserFragment
}
hidden
muted
contractId
contract {
...ContractFragment
}
contractDetails {
...ContractDetailsFragment
}
vendorProposal {
...VendorProposalFragment
}
roomNote
roomNotePresent
offerIds
recruiters {
...GenericUserFragment
}
latestStory {
...RoomStoryFragment
}
story {
...RoomStoryFragment
}
stories {
...RoomStoryConnectionFragment
}
latestStoryPreRendered {
...RoomStoryFragment
}
}
}
Variables
{"id": "4"}
Response
{
"data": {
"room": {
"id": "4",
"roomName": "abc123",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "xyz789",
"public": false,
"topic": "abc123",
"owner": RoomUser,
"numUnread": 987,
"roomFavoriteDateTime": "abc123",
"favorite": true,
"numUnreadMentions": 987,
"roomUsers": [RoomUser],
"numUsers": 123,
"joinDateTime": "abc123",
"lastVisitedDateTime": "abc123",
"lastReadDateTime": "xyz789",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "abc123",
"readOnly": false,
"blockDateTime": "xyz789",
"blockedBy": RoomUser,
"hidden": true,
"muted": false,
"contractId": "4",
"contract": Contract,
"contractDetails": ContractDetails,
"vendorProposal": VendorProposal,
"roomNote": "abc123",
"roomNotePresent": false,
"offerIds": ["4"],
"recruiters": [GenericUser],
"latestStory": RoomStory,
"story": RoomStory,
"stories": RoomStoryConnection,
"latestStoryPreRendered": RoomStory
}
}
}
roomList
Description
List of rooms based on the given filter condition
Required Permissions
One of: "Messaging - Read-Only Access" OR "Messaging - Read and Write Access"
Response
Returns a RoomConnection!
Arguments
| Name | Description |
|---|---|
filter - RoomFilter
|
Filter criteria |
pagination - Pagination
|
Pagination options |
sortOrder - SortOrder
|
Sorting order |
Example
Query
query roomList(
$filter: RoomFilter,
$pagination: Pagination,
$sortOrder: SortOrder
) {
roomList(
filter: $filter,
pagination: $pagination,
sortOrder: $sortOrder
) {
totalCount
edges {
...RoomEdgeFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Variables
{
"filter": RoomFilter,
"pagination": Pagination,
"sortOrder": "ASC"
}
Response
{
"data": {
"roomList": {
"totalCount": 987,
"edges": [RoomEdge],
"pageInfo": PageInfo
}
}
}
roomStories
Description
Returns stories in the room
Required Permissions
One of: "Messaging - Read-Only Access" OR "Messaging - Read and Write Access"
Response
Returns a RoomStoryConnection
Arguments
| Name | Description |
|---|---|
filter - RoomStoryFilter
|
Filter for room stories |
Example
Query
query roomStories($filter: RoomStoryFilter) {
roomStories(filter: $filter) {
totalCount
edges {
...RoomStoryEdgeFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Variables
{"filter": RoomStoryFilter}
Response
{
"data": {
"roomStories": {
"totalCount": 987,
"edges": [RoomStoryEdge],
"pageInfo": PageInfo
}
}
}
roomStory
Description
Returns a particular story from a room
Required Permissions
One of: "Messaging - Read-Only Access" OR "Messaging - Read and Write Access"
Response
Returns a RoomStory
Example
Query
query roomStory(
$roomId: ID!,
$storyId: ID!
) {
roomStory(
roomId: $roomId,
storyId: $storyId
) {
id
room {
...RoomFragment
}
createdDateTime
updatedDateTime
user {
...GenericUserFragment
}
message
organization {
...GenericOrganizationFragment
}
roomStoryNote {
...RoomStoryNoteFragment
}
attachments {
...MessageAttachmentsFragment
}
}
}
Variables
{
"roomId": "4",
"storyId": "4"
}
Response
{
"data": {
"roomStory": {
"id": 4,
"room": Room,
"createdDateTime": "xyz789",
"updatedDateTime": "xyz789",
"user": GenericUser,
"message": "abc123",
"organization": GenericOrganization,
"roomStoryNote": RoomStoryNote,
"attachments": [MessageAttachments]
}
}
}
snapshotsByContractId
Description
List all Snapshots for given contract ID and particular timestamp. timestamp are in (Unix Epoch seconds)
Required Permissions
"Scope to read snapshots information - Public"
Response
Returns [Snapshot]
Arguments
| Name | Description |
|---|---|
input - SnapshotsByContractIdInput!
|
Contract and timestamp parameters |
Example
Query
query snapshotsByContractId($input: SnapshotsByContractIdInput!) {
snapshotsByContractId(input: $input) {
id
time
contractId
mouseEventsCount
keyboardEventsCount
teamName
status
activeWindowTitle
memo
companyId
hasScreenshot
screenshotUrl
screenshotImage
screenshotImageLarge
screenshotImageMedium
screenshotImageThumbnail
hasWebcam
webcamUrl
webcamImage
webcamImageThumbnail
task
minutes {
...SnapshotMinutesFragment
}
}
}
Variables
{"input": SnapshotsByContractIdInput}
Response
{
"data": {
"snapshotsByContractId": [
{
"id": 4,
"time": 123,
"contractId": "abc123",
"mouseEventsCount": 123,
"keyboardEventsCount": 987,
"teamName": "xyz789",
"status": "abc123",
"activeWindowTitle": "xyz789",
"memo": "xyz789",
"companyId": "abc123",
"hasScreenshot": false,
"screenshotUrl": "abc123",
"screenshotImage": "xyz789",
"screenshotImageLarge": "abc123",
"screenshotImageMedium": "xyz789",
"screenshotImageThumbnail": "xyz789",
"hasWebcam": true,
"webcamUrl": "abc123",
"webcamImage": "abc123",
"webcamImageThumbnail": "abc123",
"task": "abc123",
"minutes": SnapshotMinutes
}
]
}
}
user
Description
Current user
Required Permissions
One of: "Common Entities - Read-Only Access" OR "Common Functionality - Read And Write Access"
Response
Returns a CurrentUser
Example
Query
query user {
user {
id
nid
rid
email
name
userPermissions {
...UserPermissionsFragment
}
photoUrl
offer {
...ContractOfferConnectionFragment
}
timeReport {
...TimeReportFragment
}
contractTimeReport {
...TimeReportConnectionFragment
}
freelancerProfile {
...FreelancerProfileFragment
}
ciphertext
i18NSettings {
...I18nSettingsFragment
}
talentProfile {
...TalentProfileFragment
}
}
}
Response
{
"data": {
"user": {
"id": 4,
"nid": 4,
"rid": "4",
"email": "xyz789",
"name": "xyz789",
"userPermissions": UserPermissions,
"photoUrl": "xyz789",
"offer": ContractOfferConnection,
"timeReport": [TimeReport],
"contractTimeReport": TimeReportConnection,
"freelancerProfile": FreelancerProfile,
"ciphertext": "xyz789",
"i18NSettings": I18nSettings,
"talentProfile": TalentProfile
}
}
}
workDays
Description
list of working days for a contractId and a given time range
Required Permissions
"TimeSheet - Read-Only Access"
Response
Returns a WorkdayResult
Arguments
| Name | Description |
|---|---|
workdaysInput - WorkdaysInput!
|
Contract list and date range |
Example
Query
query workDays($workdaysInput: WorkdaysInput!) {
workDays(workdaysInput: $workdaysInput) {
workDays
}
}
Variables
{"workdaysInput": WorkdaysInput}
Response
{
"data": {
"workDays": {"workDays": ["xyz789"]}
}
}
workDiaryContract
Description
WorkDiary information with screenshot urls for a particular contract and a particular date
Required Permissions
One of: "Contract - Read and Write Access" OR "Offer - Read-Only Access"
Response
Returns a WorkDiaryContract
Arguments
| Name | Description |
|---|---|
workDiaryContractInput - WorkDiaryContractInput!
|
Contract and date parameters |
Example
Query
query workDiaryContract($workDiaryContractInput: WorkDiaryContractInput!) {
workDiaryContract(workDiaryContractInput: $workDiaryContractInput) {
workDiaryMetadata {
...WorkDiaryMetadataFragment
}
workDiaryTimeCells {
...WorkDiaryTimeCellFragment
}
}
}
Variables
{"workDiaryContractInput": WorkDiaryContractInput}
Response
{
"data": {
"workDiaryContract": {
"workDiaryMetadata": WorkDiaryMetadata,
"workDiaryTimeCells": [WorkDiaryTimeCell]
}
}
}
accountAuditRecord
Description
Audit information of the account management action
Required Permissions
"Organization - Read and Write access"
Response
Returns an AccountAuditRecord
Arguments
| Name | Description |
|---|---|
processInstanceId - ID!
|
Account management process identifier |
Example
Query
query accountAuditRecord($processInstanceId: ID!) {
accountAuditRecord(processInstanceId: $processInstanceId) {
processInstanceId
status
metadata {
...StringMapElementFragment
}
}
}
Variables
{"processInstanceId": "4"}
Response
{
"data": {
"accountAuditRecord": {
"processInstanceId": 4,
"status": "abc123",
"metadata": [StringMapElement]
}
}
}
staffsByPersonId
Description
Get Staffs by personUid @Example: { staffsByPersonId( personId: "1284199710373576704" hiddenOrg: false orgLegacyType: Vendor orgType: Business activeOrg: true eac: false hierarchy: true pagination: {after: null, first: 100} ) { edges { node { id user { id nid name } organization { id name } activationStatus owner creationDate staffType exclusiveAgencyContractor isDefault orgId } } totalCount pageInfo { hasNextPage endCursor } } }
Required Permissions
"Common Entities - Read-Only Access"
Response
Returns a StaffsConnection!
Arguments
| Name | Description |
|---|---|
personId - ID!
|
Target person identifier |
status - Int
|
Filter by staff status |
staffType - String
|
Filter by staff type |
affiliateContractor - Boolean
|
Affiliate contractor flag |
hierarchy - Boolean
|
Include organization hierarchy |
orgLegacyType - OrgLegacyType
|
Legacy organization type |
orgType - OrgType
|
Organization type |
hiddenOrg - Boolean
|
Hidden organization flag |
activeOrg - Boolean
|
Active organization flag |
eac - Boolean
|
Enterprise account company flag |
pagination - Pagination
|
Pagination options |
Example
Query
query staffsByPersonId(
$personId: ID!,
$status: Int,
$staffType: String,
$affiliateContractor: Boolean,
$hierarchy: Boolean,
$orgLegacyType: OrgLegacyType,
$orgType: OrgType,
$hiddenOrg: Boolean,
$activeOrg: Boolean,
$eac: Boolean,
$pagination: Pagination
) {
staffsByPersonId(
personId: $personId,
status: $status,
staffType: $staffType,
affiliateContractor: $affiliateContractor,
hierarchy: $hierarchy,
orgLegacyType: $orgLegacyType,
orgType: $orgType,
hiddenOrg: $hiddenOrg,
activeOrg: $activeOrg,
eac: $eac,
pagination: $pagination
) {
edges {
...StaffsConnectionEdgeFragment
}
totalCount
pageInfo {
...PageInfoFragment
}
}
}
Variables
{
"personId": 4,
"status": 987,
"staffType": "abc123",
"affiliateContractor": true,
"hierarchy": false,
"orgLegacyType": "Client",
"orgType": "Business",
"hiddenOrg": false,
"activeOrg": true,
"eac": true,
"pagination": Pagination
}
Response
{
"data": {
"staffsByPersonId": {
"edges": [StaffsConnectionEdge],
"totalCount": 123,
"pageInfo": PageInfo
}
}
}
teamActivities
Description
Get a flat list (with no company/user description) of all activities under the specified team. A user needs to have hiring manager privileges within the team in order to create an activity at team level
Required Permissions
One of: "Activity Entities - Read-Only Access" OR "Activity Entities - Read and Write Access"
Response
Returns an ActivitiesConnection!
Arguments
| Name | Description |
|---|---|
orgId - ID!
|
The org id where the team belongs to |
teamId - ID
|
The team id where activities are being requested |
page - PageFilterInput
|
Pagination information |
filter - ActivityFilterInput
|
Filters to apply to the activity list |
Example
Query
query teamActivities(
$orgId: ID!,
$teamId: ID,
$page: PageFilterInput,
$filter: ActivityFilterInput
) {
teamActivities(
orgId: $orgId,
teamId: $teamId,
page: $page,
filter: $filter
) {
totalCount
edges {
...ActivityEdgeFragment
}
page {
...PageFragment
}
}
}
Variables
{
"orgId": "4",
"teamId": "4",
"page": PageFilterInput,
"filter": ActivityFilterInput
}
Response
{
"data": {
"teamActivities": {
"totalCount": 987,
"edges": [ActivityEdge],
"page": Page
}
}
}
userDetails
Description
Retrieves the user details based on their unique identifier. This query allows fetching detailed user information based on their ID. Ultimately, it returns the personal identifiable information (PII) of the user.
Required Permissions
"View UserDetails"
Example
Query
query userDetails($id: ID!) {
userDetails(id: $id) {
id
nid
rid
name
firstName
lastName
photoUrl
publicUrl
email
location {
...UserLocationFragment
}
}
}
Variables
{"id": "4"}
Response
{
"data": {
"userDetails": {
"id": "4",
"nid": "4",
"rid": "4",
"name": "xyz789",
"firstName": "xyz789",
"lastName": "xyz789",
"photoUrl": "xyz789",
"publicUrl": "xyz789",
"email": "xyz789",
"location": UserLocation
}
}
}
userIdsByEmail
Description
List of users by email
Required Permissions
"Freelancer Profile - Read And Write Access"
Response
Returns a UserIdsByEmailResponse
Arguments
| Name | Description |
|---|---|
email - String!
|
Example
Query
query userIdsByEmail($email: String!) {
userIdsByEmail(email: $email) {
totalCount
edges {
...UserIdsByEmailRecordEdgeFragment
}
}
}
Variables
{"email": "abc123"}
Response
{
"data": {
"userIdsByEmail": {
"totalCount": 123,
"edges": [UserIdsByEmailRecordEdge]
}
}
}
workDiaryCompany
Description
WorkDiary information with screenshot urls for a particular company and a particular date
Required Permissions
"Read Work diary company for public user"
Response
Returns a WorkDiaryCompany
Arguments
| Name | Description |
|---|---|
workDiaryCompanyInput - WorkDiaryCompanyInput!
|
Company and date parameters |
Example
Query
query workDiaryCompany($workDiaryCompanyInput: WorkDiaryCompanyInput!) {
workDiaryCompany(workDiaryCompanyInput: $workDiaryCompanyInput) {
total
snapshots {
...WorkDiaryCompanySnapshotFragment
}
}
}
Variables
{"workDiaryCompanyInput": WorkDiaryCompanyInput}
Response
{
"data": {
"workDiaryCompany": {
"total": 123,
"snapshots": [WorkDiaryCompanySnapshot]
}
}
}
workflowView
Description
Workflow encapsulates the detailed sequence of tasks or business activities needed to complete a business process. Following query allows retreival of workflow associated with a particular entityType and entityId.
Required Permissions
"Job Postings - Read and Write Access"
Response
Returns a WorkflowView
Example
Query
query workflowView(
$entityType: String!,
$entityId: ID!
) {
workflowView(
entityType: $entityType,
entityId: $entityId
) {
id
type
onboardedStatus
totalTasks
notStartedTasksCount
inProgressTasksCount
completedTasksCount
tasksOverdue
percentComplete
startDateTime
completionDateTime
associations {
...WorkflowAssociationViewFragment
}
tasks {
...WorkflowTaskViewFragment
}
createdDateTime
modifiedDateTime
createdBy
modifiedBy
}
}
Variables
{"entityType": "xyz789", "entityId": 4}
Response
{
"data": {
"workflowView": {
"id": 4,
"type": "abc123",
"onboardedStatus": "NOT_STARTED",
"totalTasks": 987,
"notStartedTasksCount": 123,
"inProgressTasksCount": 123,
"completedTasksCount": 987,
"tasksOverdue": 987,
"percentComplete": 123,
"startDateTime": "abc123",
"completionDateTime": "abc123",
"associations": [WorkflowAssociationView],
"tasks": [WorkflowTaskView],
"createdDateTime": "abc123",
"modifiedDateTime": "xyz789",
"createdBy": "abc123",
"modifiedBy": "xyz789"
}
}
}
accountingEntity
Description
Get the Accounting Entity of the current user from their organization uid
Required Permissions
"Read only access for transaction data"
Response
Returns an AccountingEntity!
Example
Query
query accountingEntity {
accountingEntity {
id
}
}
Response
{"data": {"accountingEntity": {"id": "4"}}}
Mutations
createJobPosting
Description
Create a new Job post
Required Permissions
"Job Postings - Read and Write Access"
Response
Returns a JobPostingCreateResponse
Arguments
| Name | Description |
|---|---|
jobPostingRequest - JobPostingCreateRequest!
|
Job posting creation request |
Example
Query
mutation createJobPosting($jobPostingRequest: JobPostingCreateRequest!) {
createJobPosting(jobPostingRequest: $jobPostingRequest) {
id
qualificationsSaved
skillsSaved
questionsSaved
segmentationDataSaved
attachmentsSaved
ptcInfoSaved
jobPostingAdditional
sandsJobPostSaved
customFieldsSaved
version
}
}
Variables
{"jobPostingRequest": JobPostingCreateRequest}
Response
{
"data": {
"createJobPosting": {
"id": 4,
"qualificationsSaved": true,
"skillsSaved": true,
"questionsSaved": true,
"segmentationDataSaved": true,
"attachmentsSaved": false,
"ptcInfoSaved": false,
"jobPostingAdditional": true,
"sandsJobPostSaved": false,
"customFieldsSaved": false,
"version": 987
}
}
}
updateJobPosting
Description
Update an existing Job post by its ID
Required Permissions
"Job Postings - Read and Write Access"
Response
Returns a JobPostingUpdateResponse
Arguments
| Name | Description |
|---|---|
id - ID!
|
Job posting identifier |
jobPostingRequest - JobPostingUpdateRequest!
|
Job posting update request |
Example
Query
mutation updateJobPosting(
$id: ID!,
$jobPostingRequest: JobPostingUpdateRequest!
) {
updateJobPosting(
id: $id,
jobPostingRequest: $jobPostingRequest
) {
id
qualificationsSaved
skillsSaved
questionsSaved
segmentationDataSaved
attachmentsSaved
ptcInfoSaved
sandsJobPostSaved
version
}
}
Variables
{"id": 4, "jobPostingRequest": JobPostingUpdateRequest}
Response
{
"data": {
"updateJobPosting": {
"id": "4",
"qualificationsSaved": false,
"skillsSaved": true,
"questionsSaved": false,
"segmentationDataSaved": false,
"attachmentsSaved": false,
"ptcInfoSaved": true,
"sandsJobPostSaved": false,
"version": 123
}
}
}
endContractByFreelancer
Description
End a contract by a freelancer
Required Permissions
"Contract - Read and Write Access"
Response
Returns a ContractActionResponse
Arguments
| Name | Description |
|---|---|
contractId - ID!
|
Contract identifier |
input - EndContractInput!
|
Contract end payload |
Example
Query
mutation endContractByFreelancer(
$contractId: ID!,
$input: EndContractInput!
) {
endContractByFreelancer(
contractId: $contractId,
input: $input
) {
success
}
}
Variables
{"contractId": 4, "input": EndContractInput}
Response
{"data": {"endContractByFreelancer": {"success": true}}}
withdrawOffer
Description
Withdraw an offer.
Required Permissions
"Offer - Read And Write Access"
Response
Returns a Boolean!
Arguments
| Name | Description |
|---|---|
input - WithdrawOfferInput!
|
Withdraw request payload |
Example
Query
mutation withdrawOffer($input: WithdrawOfferInput!) {
withdrawOffer(input: $input)
}
Variables
{"input": WithdrawOfferInput}
Response
{"data": {"withdrawOffer": false}}
activateMilestone
Description
Client activates an existing milestone Note: if the client is an enterprise, the milestone will be activated immediately. If not, the unified checkout will be created, and the activation will be done asynchronously provided that the checkout is fulfilled successfully
Required Permissions
"Offer - Read And Write Access"
Response
Returns a Milestone!
Arguments
| Name | Description |
|---|---|
input - ActivateMilestoneInput
|
Example
Query
mutation activateMilestone($input: ActivateMilestoneInput) {
activateMilestone(input: $input) {
id
createdBy {
...GenericUserFragment
}
dueDateTime
state
description
currentEscrowAmount {
...MoneyFragment
}
depositAmount {
...MoneyFragment
}
fundedAmount {
...MoneyFragment
}
paid {
...MoneyFragment
}
overpayment {
...MoneyFragment
}
bonus {
...MoneyFragment
}
previousMilestoneUnusedDeposit {
...MoneyFragment
}
submissionCount
sequenceId
payComments
lastSubmissionCreatedTime
createdDateTime
modifiedDateTime
instructions
submissionEvents {
...SubmissionEventFragment
}
}
}
Variables
{"input": ActivateMilestoneInput}
Response
{
"data": {
"activateMilestone": {
"id": 4,
"createdBy": GenericUser,
"dueDateTime": "abc123",
"state": "NotFunded",
"description": "xyz789",
"currentEscrowAmount": Money,
"depositAmount": Money,
"fundedAmount": Money,
"paid": Money,
"overpayment": Money,
"bonus": Money,
"previousMilestoneUnusedDeposit": Money,
"submissionCount": 987,
"sequenceId": 987,
"payComments": "abc123",
"lastSubmissionCreatedTime": "xyz789",
"createdDateTime": "xyz789",
"modifiedDateTime": "abc123",
"instructions": "xyz789",
"submissionEvents": [SubmissionEvent]
}
}
}
approveMilestone
Description
Approves a milestone
Required Permissions
"Offer - Read And Write Access"
Response
Returns a Milestone!
Arguments
| Name | Description |
|---|---|
input - ApproveMilestoneInput!
|
Example
Query
mutation approveMilestone($input: ApproveMilestoneInput!) {
approveMilestone(input: $input) {
id
createdBy {
...GenericUserFragment
}
dueDateTime
state
description
currentEscrowAmount {
...MoneyFragment
}
depositAmount {
...MoneyFragment
}
fundedAmount {
...MoneyFragment
}
paid {
...MoneyFragment
}
overpayment {
...MoneyFragment
}
bonus {
...MoneyFragment
}
previousMilestoneUnusedDeposit {
...MoneyFragment
}
submissionCount
sequenceId
payComments
lastSubmissionCreatedTime
createdDateTime
modifiedDateTime
instructions
submissionEvents {
...SubmissionEventFragment
}
}
}
Variables
{"input": ApproveMilestoneInput}
Response
{
"data": {
"approveMilestone": {
"id": "4",
"createdBy": GenericUser,
"dueDateTime": "abc123",
"state": "NotFunded",
"description": "abc123",
"currentEscrowAmount": Money,
"depositAmount": Money,
"fundedAmount": Money,
"paid": Money,
"overpayment": Money,
"bonus": Money,
"previousMilestoneUnusedDeposit": Money,
"submissionCount": 123,
"sequenceId": 987,
"payComments": "abc123",
"lastSubmissionCreatedTime": "abc123",
"createdDateTime": "xyz789",
"modifiedDateTime": "xyz789",
"instructions": "abc123",
"submissionEvents": [SubmissionEvent]
}
}
}
createMilestoneV2
Description
Client creates a new milestone (V2)
Required Permissions
"Offer - Read And Write Access"
Response
Returns a Milestone
Arguments
| Name | Description |
|---|---|
input - CreateMilestoneInput!
|
Example
Query
mutation createMilestoneV2($input: CreateMilestoneInput!) {
createMilestoneV2(input: $input) {
id
createdBy {
...GenericUserFragment
}
dueDateTime
state
description
currentEscrowAmount {
...MoneyFragment
}
depositAmount {
...MoneyFragment
}
fundedAmount {
...MoneyFragment
}
paid {
...MoneyFragment
}
overpayment {
...MoneyFragment
}
bonus {
...MoneyFragment
}
previousMilestoneUnusedDeposit {
...MoneyFragment
}
submissionCount
sequenceId
payComments
lastSubmissionCreatedTime
createdDateTime
modifiedDateTime
instructions
submissionEvents {
...SubmissionEventFragment
}
}
}
Variables
{"input": CreateMilestoneInput}
Response
{
"data": {
"createMilestoneV2": {
"id": 4,
"createdBy": GenericUser,
"dueDateTime": "xyz789",
"state": "NotFunded",
"description": "xyz789",
"currentEscrowAmount": Money,
"depositAmount": Money,
"fundedAmount": Money,
"paid": Money,
"overpayment": Money,
"bonus": Money,
"previousMilestoneUnusedDeposit": Money,
"submissionCount": 123,
"sequenceId": 987,
"payComments": "abc123",
"lastSubmissionCreatedTime": "xyz789",
"createdDateTime": "xyz789",
"modifiedDateTime": "abc123",
"instructions": "abc123",
"submissionEvents": [SubmissionEvent]
}
}
}
createOffer
Description
Create offer mutation used for all available types of offer including Fixed price and Hourly
Required Permissions
"Offer - Read And Write Access"
Response
Returns an OfferCreationResponse
Arguments
| Name | Description |
|---|---|
offerInput - CreationOfferInput!
|
Offer creation payload |
Example
Query
mutation createOffer($offerInput: CreationOfferInput!) {
createOffer(offerInput: $offerInput) {
offer {
...ModernizedOfferFragment
}
}
}
Variables
{"offerInput": CreationOfferInput}
Response
{"data": {"createOffer": {"offer": ModernizedOffer}}}
deleteMilestone
Description
Client deletes and existing milestone
Required Permissions
"Offer - Read And Write Access"
Response
Returns a Boolean!
Arguments
| Name | Description |
|---|---|
input - DeleteMilestoneInput
|
Example
Query
mutation deleteMilestone($input: DeleteMilestoneInput) {
deleteMilestone(input: $input)
}
Variables
{"input": DeleteMilestoneInput}
Response
{"data": {"deleteMilestone": false}}
editMilestone
Description
Client edits an existing milestone
Required Permissions
"Offer - Read And Write Access"
Response
Returns a Milestone!
Arguments
| Name | Description |
|---|---|
input - EditMilestoneInput
|
Example
Query
mutation editMilestone($input: EditMilestoneInput) {
editMilestone(input: $input) {
id
createdBy {
...GenericUserFragment
}
dueDateTime
state
description
currentEscrowAmount {
...MoneyFragment
}
depositAmount {
...MoneyFragment
}
fundedAmount {
...MoneyFragment
}
paid {
...MoneyFragment
}
overpayment {
...MoneyFragment
}
bonus {
...MoneyFragment
}
previousMilestoneUnusedDeposit {
...MoneyFragment
}
submissionCount
sequenceId
payComments
lastSubmissionCreatedTime
createdDateTime
modifiedDateTime
instructions
submissionEvents {
...SubmissionEventFragment
}
}
}
Variables
{"input": EditMilestoneInput}
Response
{
"data": {
"editMilestone": {
"id": 4,
"createdBy": GenericUser,
"dueDateTime": "abc123",
"state": "NotFunded",
"description": "abc123",
"currentEscrowAmount": Money,
"depositAmount": Money,
"fundedAmount": Money,
"paid": Money,
"overpayment": Money,
"bonus": Money,
"previousMilestoneUnusedDeposit": Money,
"submissionCount": 123,
"sequenceId": 123,
"payComments": "abc123",
"lastSubmissionCreatedTime": "abc123",
"createdDateTime": "xyz789",
"modifiedDateTime": "abc123",
"instructions": "abc123",
"submissionEvents": [SubmissionEvent]
}
}
}
endContractByClient
Description
End a contract by a client
Required Permissions
"Contract - Read and Write Access"
Response
Returns a ContractActionResponse
Arguments
| Name | Description |
|---|---|
contractId - ID!
|
Contract identifier |
input - EndContractInput!
|
Contract end payload |
Example
Query
mutation endContractByClient(
$contractId: ID!,
$input: EndContractInput!
) {
endContractByClient(
contractId: $contractId,
input: $input
) {
success
}
}
Variables
{
"contractId": "4",
"input": EndContractInput
}
Response
{"data": {"endContractByClient": {"success": true}}}
pauseContract
Description
Pause a contract by a client
Required Permissions
"Contract - Read and Write Access"
Response
Returns a ContractActionResponse
Example
Query
mutation pauseContract(
$contractId: ID!,
$message: String
) {
pauseContract(
contractId: $contractId,
message: $message
) {
success
}
}
Variables
{"contractId": 4, "message": "abc123"}
Response
{"data": {"pauseContract": {"success": false}}}
rejectSubmittedMilestone
Description
Allows client to reject a milestone submission from a freelancer
Required Permissions
"Offer - Read And Write Access"
Response
Returns a MilestoneRejectionResponse
Arguments
| Name | Description |
|---|---|
input - RejectMilestoneSubmissionInput
|
Example
Query
mutation rejectSubmittedMilestone($input: RejectMilestoneSubmissionInput) {
rejectSubmittedMilestone(input: $input) {
response
}
}
Variables
{"input": RejectMilestoneSubmissionInput}
Response
{"data": {"rejectSubmittedMilestone": {"response": false}}}
restartContract
Description
Restart a contract by a client
Required Permissions
"Contract - Read and Write Access"
Response
Returns a ContractActionResponse
Example
Query
mutation restartContract(
$contractId: ID!,
$message: String
) {
restartContract(
contractId: $contractId,
message: $message
) {
success
}
}
Variables
{
"contractId": "4",
"message": "xyz789"
}
Response
{"data": {"restartContract": {"success": false}}}
updateContractHourlyLimit
Description
Update hourly limit
Required Permissions
"Contract - Read and Write Access"
Response
Returns a ContractActionResponse
Arguments
| Name | Description |
|---|---|
contractId - ID!
|
Contract Id |
updateHourlyLimitRequest - UpdateHourlyLimitRequestInput
|
Update hourly limit request |
Example
Query
mutation updateContractHourlyLimit(
$contractId: ID!,
$updateHourlyLimitRequest: UpdateHourlyLimitRequestInput
) {
updateContractHourlyLimit(
contractId: $contractId,
updateHourlyLimitRequest: $updateHourlyLimitRequest
) {
success
}
}
Variables
{
"contractId": "4",
"updateHourlyLimitRequest": UpdateHourlyLimitRequestInput
}
Response
{"data": {"updateContractHourlyLimit": {"success": false}}}
sendCustomPayment
Description
Send custom payment
Required Permissions
"Payments - Read and Write Access"
Response
Returns a CustomPaymentResponse
Arguments
| Name | Description |
|---|---|
input - CustomPaymentInput
|
Payment details |
Example
Query
mutation sendCustomPayment($input: CustomPaymentInput) {
sendCustomPayment(input: $input) {
invoiceId
}
}
Variables
{"input": CustomPaymentInput}
Response
{"data": {"sendCustomPayment": {"invoiceId": 4}}}
confirmFiles
Description
Confirm files, returned is a flag indicating whether operation was successful or not
Required Permissions
"Common Functionality - Read And Write Access"
Response
Returns a Boolean
Example
Query
mutation confirmFiles(
$fileIds: [ID!]!,
$skipMissing: Boolean
) {
confirmFiles(
fileIds: $fileIds,
skipMissing: $skipMissing
)
}
Variables
{"fileIds": [4], "skipMissing": true}
Response
{"data": {"confirmFiles": true}}
createDirectUploadLinkForJAClientProposal
Description
Create direct upload link, to upload Job Application client proposal attachments
Required Permissions
"Client Proposals - Read And Write Access"
Response
Returns a FileInfo!
Arguments
| Name | Description |
|---|---|
input - CreateDirectUploadLinkInput!
|
Upload input details |
Example
Query
mutation createDirectUploadLinkForJAClientProposal($input: CreateDirectUploadLinkInput!) {
createDirectUploadLinkForJAClientProposal(input: $input) {
id
uploadUrl
formKeyValues {
...StringMapElementFragment
}
}
}
Variables
{"input": CreateDirectUploadLinkInput}
Response
{
"data": {
"createDirectUploadLinkForJAClientProposal": {
"id": "4",
"uploadUrl": "xyz789",
"formKeyValues": [StringMapElement]
}
}
}
declineClientProposal
Description
Decline client proposal
Required Permissions
"Client Proposals - Read And Write Access"
Response
Returns an UpdateClientProposalResult!
Arguments
| Name | Description |
|---|---|
clientProposalDeclineRequest - ClientProposalDeclineRequest
|
Client proposal decline request |
Example
Query
mutation declineClientProposal($clientProposalDeclineRequest: ClientProposalDeclineRequest) {
declineClientProposal(clientProposalDeclineRequest: $clientProposalDeclineRequest) {
proposal {
...ClientProposalFragment
}
status
}
}
Variables
{
"clientProposalDeclineRequest": ClientProposalDeclineRequest
}
Response
{
"data": {
"declineClientProposal": {
"proposal": ClientProposal,
"status": "SUCCESS"
}
}
}
hideClientProposal
Description
Toggle hide status on the client proposal.
Required Permissions
"Client Proposals - Read And Write Access"
Response
Returns an UpdateClientProposalResult!
Arguments
| Name | Description |
|---|---|
clientProposalHideRequest - ClientProposalHideRequest!
|
Client proposal hide request |
Example
Query
mutation hideClientProposal($clientProposalHideRequest: ClientProposalHideRequest!) {
hideClientProposal(clientProposalHideRequest: $clientProposalHideRequest) {
proposal {
...ClientProposalFragment
}
status
}
}
Variables
{"clientProposalHideRequest": ClientProposalHideRequest}
Response
{
"data": {
"hideClientProposal": {
"proposal": ClientProposal,
"status": "SUCCESS"
}
}
}
markClientProposalAsRead
Description
Mark client proposal as read
Required Permissions
"Client Proposals - Read And Write Access"
Response
Returns an UpdateClientProposalResult!
Arguments
| Name | Description |
|---|---|
clientProposalReadRequest - ClientProposalReadRequest
|
Client proposal read request |
Example
Query
mutation markClientProposalAsRead($clientProposalReadRequest: ClientProposalReadRequest) {
markClientProposalAsRead(clientProposalReadRequest: $clientProposalReadRequest) {
proposal {
...ClientProposalFragment
}
status
}
}
Variables
{"clientProposalReadRequest": ClientProposalReadRequest}
Response
{
"data": {
"markClientProposalAsRead": {
"proposal": ClientProposal,
"status": "SUCCESS"
}
}
}
messageClientProposal
Description
Message client proposal
Required Permissions
"Client Proposals - Read And Write Access"
Response
Returns an UpdateClientProposalResult!
Arguments
| Name | Description |
|---|---|
clientProposalMessageRequest - ClientProposalMessageRequest
|
Client proposal message request |
Example
Query
mutation messageClientProposal($clientProposalMessageRequest: ClientProposalMessageRequest) {
messageClientProposal(clientProposalMessageRequest: $clientProposalMessageRequest) {
proposal {
...ClientProposalFragment
}
status
}
}
Variables
{
"clientProposalMessageRequest": ClientProposalMessageRequest
}
Response
{
"data": {
"messageClientProposal": {
"proposal": ClientProposal,
"status": "SUCCESS"
}
}
}
shortlistClientProposal
Description
Shortlist client proposal
Required Permissions
"Client Proposals - Read And Write Access"
Response
Returns an UpdateClientProposalResult!
Arguments
| Name | Description |
|---|---|
clientProposalShortlistRequest - ClientProposalShortlistRequest
|
Client proposal shortlist request |
Example
Query
mutation shortlistClientProposal($clientProposalShortlistRequest: ClientProposalShortlistRequest) {
shortlistClientProposal(clientProposalShortlistRequest: $clientProposalShortlistRequest) {
proposal {
...ClientProposalFragment
}
status
}
}
Variables
{
"clientProposalShortlistRequest": ClientProposalShortlistRequest
}
Response
{
"data": {
"shortlistClientProposal": {
"proposal": ClientProposal,
"status": "SUCCESS"
}
}
}
addFreelancerEmploymentRecord
Description
Input userId is NOT being used anymore. Internally it is always the current user's id teken from the context.
Required Permissions
"Freelancer Profile - Read And Write Access"
Response
Returns a FreelancerProfileEmploymentRecord
Arguments
| Name | Description |
|---|---|
input - CreateEmploymentRecordInput!
|
input data for creating employment record |
Example
Query
mutation addFreelancerEmploymentRecord($input: CreateEmploymentRecordInput!) {
addFreelancerEmploymentRecord(input: $input) {
id
user {
...GenericUserFragment
}
companyName
jobTitle
standardizedCompanyId
standardizedJobTitleId
role
startDate
endDate
description
city
country
}
}
Variables
{"input": CreateEmploymentRecordInput}
Response
{
"data": {
"addFreelancerEmploymentRecord": {
"id": "4",
"user": GenericUser,
"companyName": "abc123",
"jobTitle": "xyz789",
"standardizedCompanyId": "xyz789",
"standardizedJobTitleId": "abc123",
"role": "xyz789",
"startDate": "xyz789",
"endDate": "abc123",
"description": "xyz789",
"city": "abc123",
"country": "abc123"
}
}
}
addFreelancerLanguage
Description
Input userId is NOT being used anymore. Internally it is always the current user's id taken from the context.
Required Permissions
"Freelancer Profile - Read And Write Access"
Response
Returns a FreelancerProfileLanguage
Arguments
| Name | Description |
|---|---|
input - FreelancerLanguageInput!
|
input data for creating language |
Example
Query
mutation addFreelancerLanguage($input: FreelancerLanguageInput!) {
addFreelancerLanguage(input: $input) {
id
language {
...LanguageFragment
}
verified
verifiedByCertificate
verifiedByFeedback
}
}
Variables
{"input": FreelancerLanguageInput}
Response
{
"data": {
"addFreelancerLanguage": {
"id": 4,
"language": Language,
"verified": true,
"verifiedByCertificate": false,
"verifiedByFeedback": true
}
}
}
addFreelancerOtherExperience
Description
Input userId is NOT being used anymore. Internally it is always the current user's id taken from the context.
Required Permissions
"Freelancer Profile - Read And Write Access"
Response
Returns a FreelancerProfileOtherExperience
Arguments
| Name | Description |
|---|---|
input - OtherExperienceInput!
|
input data for creating other experience |
Example
Query
mutation addFreelancerOtherExperience($input: OtherExperienceInput!) {
addFreelancerOtherExperience(input: $input) {
id
user {
...GenericUserFragment
}
subject
description
active
createdDateTime
updatedDateTime
}
}
Variables
{"input": OtherExperienceInput}
Response
{
"data": {
"addFreelancerOtherExperience": {
"id": 4,
"user": GenericUser,
"subject": "abc123",
"description": "xyz789",
"active": true,
"createdDateTime": "xyz789",
"updatedDateTime": "xyz789"
}
}
}
addTeamActivity
Description
Create activity at team level. A user needs to have hiring manager privileges within the team in order to create an activity at team level
Required Permissions
"Activity Entities - Read and Write Access"
Response
Returns a ProcessAddResponse
Arguments
| Name | Description |
|---|---|
orgId - ID!
|
The org id where the team belongs to |
teamId - ID
|
The team id where activity is being created |
request - AddTeamActivityRequest!
|
Activity object that is going to be created |
Example
Query
mutation addTeamActivity(
$orgId: ID!,
$teamId: ID,
$request: AddTeamActivityRequest!
) {
addTeamActivity(
orgId: $orgId,
teamId: $teamId,
request: $request
) {
id
success
}
}
Variables
{
"orgId": 4,
"teamId": 4,
"request": AddTeamActivityRequest
}
Response
{"data": {"addTeamActivity": {"id": 4, "success": true}}}
addUserToRoom
Description
Add users to the room
Required Permissions
"Messaging - Read and Write Access"
Response
Returns a Boolean!
Arguments
| Name | Description |
|---|---|
roomId - ID!
|
|
roomUsers - [RoomUserInput!]!
|
Example
Query
mutation addUserToRoom(
$roomId: ID!,
$roomUsers: [RoomUserInput!]!
) {
addUserToRoom(
roomId: $roomId,
roomUsers: $roomUsers
)
}
Variables
{
"roomId": "4",
"roomUsers": [RoomUserInput]
}
Response
{"data": {"addUserToRoom": false}}
archiveRoom
Description
Archive an existing room
Required Permissions
"Messaging - Read and Write Access"
Example
Query
mutation archiveRoom($roomId: ID!) {
archiveRoom(roomId: $roomId) {
id
roomName
organization {
...CurrentOrganizationFragment
}
creator {
...RoomUserFragment
}
createdAtDateTime
public
topic
owner {
...RoomUserFragment
}
numUnread
roomFavoriteDateTime
favorite
numUnreadMentions
roomUsers {
...RoomUserFragment
}
numUsers
joinDateTime
lastVisitedDateTime
lastReadDateTime
roomType
readOnlyDateTime
readOnly
blockDateTime
blockedBy {
...RoomUserFragment
}
hidden
muted
contractId
contract {
...ContractFragment
}
contractDetails {
...ContractDetailsFragment
}
vendorProposal {
...VendorProposalFragment
}
roomNote
roomNotePresent
offerIds
recruiters {
...GenericUserFragment
}
latestStory {
...RoomStoryFragment
}
story {
...RoomStoryFragment
}
stories {
...RoomStoryConnectionFragment
}
latestStoryPreRendered {
...RoomStoryFragment
}
}
}
Variables
{"roomId": 4}
Response
{
"data": {
"archiveRoom": {
"id": "4",
"roomName": "xyz789",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "xyz789",
"public": false,
"topic": "xyz789",
"owner": RoomUser,
"numUnread": 987,
"roomFavoriteDateTime": "abc123",
"favorite": true,
"numUnreadMentions": 123,
"roomUsers": [RoomUser],
"numUsers": 123,
"joinDateTime": "abc123",
"lastVisitedDateTime": "xyz789",
"lastReadDateTime": "xyz789",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "xyz789",
"readOnly": false,
"blockDateTime": "xyz789",
"blockedBy": RoomUser,
"hidden": true,
"muted": false,
"contractId": "4",
"contract": Contract,
"contractDetails": ContractDetails,
"vendorProposal": VendorProposal,
"roomNote": "xyz789",
"roomNotePresent": true,
"offerIds": [4],
"recruiters": [GenericUser],
"latestStory": RoomStory,
"story": RoomStory,
"stories": RoomStoryConnection,
"latestStoryPreRendered": RoomStory
}
}
}
archiveTeamActivity
Description
Archive activities. A user needs to have hiring manager privileges within the team in order to create an activity at team level
Required Permissions
"Activity Entities - Read and Write Access"
Response
Returns a ProcessUpdateResponse
Arguments
| Name | Description |
|---|---|
orgId - ID!
|
The org id where the team belongs to |
teamId - ID
|
The team id where activity is being archived |
codes - [String!]!
|
List of activity codes to be archived |
Example
Query
mutation archiveTeamActivity(
$orgId: ID!,
$teamId: ID,
$codes: [String!]!
) {
archiveTeamActivity(
orgId: $orgId,
teamId: $teamId,
codes: $codes
) {
success
}
}
Variables
{
"orgId": 4,
"teamId": "4",
"codes": ["xyz789"]
}
Response
{"data": {"archiveTeamActivity": {"success": true}}}
assignTeamActivityToTheContract
Description
Assign and unassign contract to the list of activities. A user needs to have hiring manager privileges within the team in order to create an activity at team level. Activity appears in freelancer's team client only if his contract is assigned to the activity and activities are activated for the ongoing contract. This mutation overrides assigned contracts for the given activities. For example, if you pass empty list of codes, freelancer's contract is unassigned from all the activities it is assigned to
Required Permissions
"Activity Entities - Read and Write Access"
Response
Returns a ProcessUpdateResponse
Example
Query
mutation assignTeamActivityToTheContract(
$orgId: ID!,
$teamId: ID,
$contractId: ID!,
$codes: [String]!
) {
assignTeamActivityToTheContract(
orgId: $orgId,
teamId: $teamId,
contractId: $contractId,
codes: $codes
) {
success
}
}
Variables
{
"orgId": "4",
"teamId": "4",
"contractId": "4",
"codes": ["xyz789"]
}
Response
{"data": {"assignTeamActivityToTheContract": {"success": true}}}
createOrganization
Description
Create a new child organization
Required Permissions
"Organization - Read and Write access"
Response
Returns an AccountProcessInstance!
Arguments
| Name | Description |
|---|---|
input - CreateOrganizationInput!
|
Input for creating organization request |
Example
Query
mutation createOrganization($input: CreateOrganizationInput!) {
createOrganization(input: $input) {
id
success
}
}
Variables
{"input": CreateOrganizationInput}
Response
{
"data": {
"createOrganization": {
"id": "4",
"success": true
}
}
}
createRoomStoryV2
Description
Creates new story in an existing dash room
Required Permissions
"Messaging - Read and Write Access"
Response
Returns a RoomStory!
Arguments
| Name | Description |
|---|---|
input - RoomStoryCreateInputV2!
|
Example
Query
mutation createRoomStoryV2($input: RoomStoryCreateInputV2!) {
createRoomStoryV2(input: $input) {
id
room {
...RoomFragment
}
createdDateTime
updatedDateTime
user {
...GenericUserFragment
}
message
organization {
...GenericOrganizationFragment
}
roomStoryNote {
...RoomStoryNoteFragment
}
attachments {
...MessageAttachmentsFragment
}
}
}
Variables
{"input": RoomStoryCreateInputV2}
Response
{
"data": {
"createRoomStoryV2": {
"id": "4",
"room": Room,
"createdDateTime": "abc123",
"updatedDateTime": "xyz789",
"user": GenericUser,
"message": "abc123",
"organization": GenericOrganization,
"roomStoryNote": RoomStoryNote,
"attachments": [MessageAttachments]
}
}
}
createRoomV2
Description
Create dash room based on input arguments and returns its information
Required Permissions
"Messaging - Read and Write Access"
Response
Returns a Room!
Arguments
| Name | Description |
|---|---|
input - RoomCreateInputV2!
|
Example
Query
mutation createRoomV2($input: RoomCreateInputV2!) {
createRoomV2(input: $input) {
id
roomName
organization {
...CurrentOrganizationFragment
}
creator {
...RoomUserFragment
}
createdAtDateTime
public
topic
owner {
...RoomUserFragment
}
numUnread
roomFavoriteDateTime
favorite
numUnreadMentions
roomUsers {
...RoomUserFragment
}
numUsers
joinDateTime
lastVisitedDateTime
lastReadDateTime
roomType
readOnlyDateTime
readOnly
blockDateTime
blockedBy {
...RoomUserFragment
}
hidden
muted
contractId
contract {
...ContractFragment
}
contractDetails {
...ContractDetailsFragment
}
vendorProposal {
...VendorProposalFragment
}
roomNote
roomNotePresent
offerIds
recruiters {
...GenericUserFragment
}
latestStory {
...RoomStoryFragment
}
story {
...RoomStoryFragment
}
stories {
...RoomStoryConnectionFragment
}
latestStoryPreRendered {
...RoomStoryFragment
}
}
}
Variables
{"input": RoomCreateInputV2}
Response
{
"data": {
"createRoomV2": {
"id": 4,
"roomName": "xyz789",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "xyz789",
"public": false,
"topic": "xyz789",
"owner": RoomUser,
"numUnread": 123,
"roomFavoriteDateTime": "xyz789",
"favorite": false,
"numUnreadMentions": 123,
"roomUsers": [RoomUser],
"numUsers": 123,
"joinDateTime": "abc123",
"lastVisitedDateTime": "xyz789",
"lastReadDateTime": "xyz789",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "abc123",
"readOnly": true,
"blockDateTime": "abc123",
"blockedBy": RoomUser,
"hidden": true,
"muted": false,
"contractId": "4",
"contract": Contract,
"contractDetails": ContractDetails,
"vendorProposal": VendorProposal,
"roomNote": "xyz789",
"roomNotePresent": false,
"offerIds": ["4"],
"recruiters": [GenericUser],
"latestStory": RoomStory,
"story": RoomStory,
"stories": RoomStoryConnection,
"latestStoryPreRendered": RoomStory
}
}
}
inviteToTeam
Description
Invite someone by email or username to an existing team @Example: mutation{ inviteToTeam(invitations:{ flow:HELP_ME_HIRE, frankoRolesToBeAssigned:["200"] inviteeEmail:"f407041458vddvcd@xagdyy2vjl.qadomain.com", emailParams:{ message:"test" } invitedToOrganizationsIds:"1808424989956608001", landingUrl:"https://developer.upwork.com/" }){ succeeded{ id token } failed{ code message invitation{ email username } } } } ...
Required Permissions
"Organization - Read and Write access"
Response
Returns an InviteToTeamResponse!
Arguments
| Name | Description |
|---|---|
invitations - [InvitationToTeamInput!]!
|
Invitations payload |
Example
Query
mutation inviteToTeam($invitations: [InvitationToTeamInput!]!) {
inviteToTeam(invitations: $invitations) {
succeeded {
...InviteToTeamSucceededResponseFragment
}
failed {
...InviteToTeamFailedResponseFragment
}
}
}
Variables
{"invitations": [InvitationToTeamInput]}
Response
{
"data": {
"inviteToTeam": {
"succeeded": [InviteToTeamSucceededResponse],
"failed": [InviteToTeamFailedResponse]
}
}
}
removeFreelancerEmploymentRecord
Description
Input userId is NOT being used anymore. Internally it is always the current user's id teken from the context.
Required Permissions
"Freelancer Profile - Read And Write Access"
Response
Returns a Boolean
Example
Query
mutation removeFreelancerEmploymentRecord(
$id: ID!,
$userId: ID!
) {
removeFreelancerEmploymentRecord(
id: $id,
userId: $userId
)
}
Variables
{"id": 4, "userId": "4"}
Response
{"data": {"removeFreelancerEmploymentRecord": false}}
removeFreelancerLanguage
Description
Input userId is NOT being used anymore. Internally it is always the current user's id taken from the context.
Required Permissions
"Freelancer Profile - Read And Write Access"
Response
Returns a Boolean
Example
Query
mutation removeFreelancerLanguage(
$userId: ID!,
$iso639Code: String!
) {
removeFreelancerLanguage(
userId: $userId,
iso639Code: $iso639Code
)
}
Variables
{"userId": 4, "iso639Code": "xyz789"}
Response
{"data": {"removeFreelancerLanguage": false}}
removeFreelancerOtherExperience
Description
Remove FL experience for the current user
Required Permissions
"Freelancer Profile - Read And Write Access"
removeRoom
Description
Removes a room
Required Permissions
"Messaging - Read and Write Access"
removeRoomStory
Description
Removes a story from a room
Required Permissions
"Messaging - Read and Write Access"
Example
Query
mutation removeRoomStory(
$roomId: ID!,
$storyId: ID!
) {
removeRoomStory(
roomId: $roomId,
storyId: $storyId
)
}
Variables
{
"roomId": "4",
"storyId": "4"
}
Response
{"data": {"removeRoomStory": "abc123"}}
removeUserFromRoom
Description
Removes an user from a room
Required Permissions
"Messaging - Read and Write Access"
Example
Query
mutation removeUserFromRoom(
$roomId: ID!,
$userId: ID!,
$orgId: ID!
) {
removeUserFromRoom(
roomId: $roomId,
userId: $userId,
orgId: $orgId
)
}
Variables
{"roomId": 4, "userId": 4, "orgId": 4}
Response
{"data": {"removeUserFromRoom": false}}
roomCreate1on1IfNotExists
Description
Create 1on1 room if doesn't exist and get it's information
Required Permissions
"Messaging - Read and Write Access"
Example
Query
mutation roomCreate1on1IfNotExists(
$userId: ID!,
$orgId: ID!
) {
roomCreate1on1IfNotExists(
userId: $userId,
orgId: $orgId
) {
id
roomName
organization {
...CurrentOrganizationFragment
}
creator {
...RoomUserFragment
}
createdAtDateTime
public
topic
owner {
...RoomUserFragment
}
numUnread
roomFavoriteDateTime
favorite
numUnreadMentions
roomUsers {
...RoomUserFragment
}
numUsers
joinDateTime
lastVisitedDateTime
lastReadDateTime
roomType
readOnlyDateTime
readOnly
blockDateTime
blockedBy {
...RoomUserFragment
}
hidden
muted
contractId
contract {
...ContractFragment
}
contractDetails {
...ContractDetailsFragment
}
vendorProposal {
...VendorProposalFragment
}
roomNote
roomNotePresent
offerIds
recruiters {
...GenericUserFragment
}
latestStory {
...RoomStoryFragment
}
story {
...RoomStoryFragment
}
stories {
...RoomStoryConnectionFragment
}
latestStoryPreRendered {
...RoomStoryFragment
}
}
}
Variables
{"userId": "4", "orgId": 4}
Response
{
"data": {
"roomCreate1on1IfNotExists": {
"id": 4,
"roomName": "xyz789",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "xyz789",
"public": false,
"topic": "abc123",
"owner": RoomUser,
"numUnread": 987,
"roomFavoriteDateTime": "xyz789",
"favorite": false,
"numUnreadMentions": 123,
"roomUsers": [RoomUser],
"numUsers": 987,
"joinDateTime": "xyz789",
"lastVisitedDateTime": "abc123",
"lastReadDateTime": "xyz789",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "xyz789",
"readOnly": true,
"blockDateTime": "xyz789",
"blockedBy": RoomUser,
"hidden": false,
"muted": true,
"contractId": "4",
"contract": Contract,
"contractDetails": ContractDetails,
"vendorProposal": VendorProposal,
"roomNote": "xyz789",
"roomNotePresent": false,
"offerIds": ["4"],
"recruiters": [GenericUser],
"latestStory": RoomStory,
"story": RoomStory,
"stories": RoomStoryConnection,
"latestStoryPreRendered": RoomStory
}
}
}
unarchiveTeamActivity
Description
Unarchive activities. A user needs to have hiring manager privileges within the team in order to create an activity at team level
Required Permissions
"Activity Entities - Read and Write Access"
Response
Returns a ProcessUpdateResponse
Arguments
| Name | Description |
|---|---|
orgId - ID!
|
The org id where the team belongs to |
teamId - ID
|
The team id where activity is being unarchived |
codes - [String!]!
|
List of activity codes to be unarchived |
Example
Query
mutation unarchiveTeamActivity(
$orgId: ID!,
$teamId: ID,
$codes: [String!]!
) {
unarchiveTeamActivity(
orgId: $orgId,
teamId: $teamId,
codes: $codes
) {
success
}
}
Variables
{
"orgId": 4,
"teamId": "4",
"codes": ["xyz789"]
}
Response
{"data": {"unarchiveTeamActivity": {"success": false}}}
updateFreelancerAvailability
Description
Update freelancer's availability given its id and userId
Required Permissions
"Freelancer Profile - Read And Write Access"
Response
Returns a FreelancerProfileAvailability
Arguments
| Name | Description |
|---|---|
input - FreelancerProfileAvailabilityInput!
|
input data for updating availability |
Example
Query
mutation updateFreelancerAvailability($input: FreelancerProfileAvailabilityInput!) {
updateFreelancerAvailability(input: $input) {
id
user {
...GenericUserFragment
}
capacity
availabilityDateTime
name
createdDateTime
}
}
Variables
{"input": FreelancerProfileAvailabilityInput}
Response
{
"data": {
"updateFreelancerAvailability": {
"id": 4,
"user": GenericUser,
"capacity": "fullTime",
"availabilityDateTime": "xyz789",
"name": "xyz789",
"createdDateTime": "xyz789"
}
}
}
updateFreelancerEmploymentRecord
Description
Input userId is NOT being used anymore. Internally it is always the current user's id teken from the context.
Required Permissions
"Freelancer Profile - Read And Write Access"
Response
Returns a FreelancerProfileEmploymentRecord
Arguments
| Name | Description |
|---|---|
input - UpdateEmploymentRecordInput!
|
input data for updating employment record |
Example
Query
mutation updateFreelancerEmploymentRecord($input: UpdateEmploymentRecordInput!) {
updateFreelancerEmploymentRecord(input: $input) {
id
user {
...GenericUserFragment
}
companyName
jobTitle
standardizedCompanyId
standardizedJobTitleId
role
startDate
endDate
description
city
country
}
}
Variables
{"input": UpdateEmploymentRecordInput}
Response
{
"data": {
"updateFreelancerEmploymentRecord": {
"id": 4,
"user": GenericUser,
"companyName": "xyz789",
"jobTitle": "xyz789",
"standardizedCompanyId": "abc123",
"standardizedJobTitleId": "xyz789",
"role": "abc123",
"startDate": "abc123",
"endDate": "abc123",
"description": "abc123",
"city": "abc123",
"country": "abc123"
}
}
}
updateFreelancerOtherExperience
Description
Input userId is NOT being used anymore. Internally it is always the current user's id taken from the context.
Required Permissions
"Freelancer Profile - Read And Write Access"
Response
Returns a FreelancerProfileOtherExperience
Arguments
| Name | Description |
|---|---|
input - UpdateOtherExperienceInput!
|
input data for updating other experience |
Example
Query
mutation updateFreelancerOtherExperience($input: UpdateOtherExperienceInput!) {
updateFreelancerOtherExperience(input: $input) {
id
user {
...GenericUserFragment
}
subject
description
active
createdDateTime
updatedDateTime
}
}
Variables
{"input": UpdateOtherExperienceInput}
Response
{
"data": {
"updateFreelancerOtherExperience": {
"id": "4",
"user": GenericUser,
"subject": "xyz789",
"description": "xyz789",
"active": true,
"createdDateTime": "abc123",
"updatedDateTime": "abc123"
}
}
}
updateOrganization
Description
Update organization data
Required Permissions
"Organization - Read and Write access"
Response
Returns an AccountProcessInstance!
Arguments
| Name | Description |
|---|---|
input - UpdateOrganizationInput!
|
Input for updating organization request |
Example
Query
mutation updateOrganization($input: UpdateOrganizationInput!) {
updateOrganization(input: $input) {
id
success
}
}
Variables
{"input": UpdateOrganizationInput}
Response
{
"data": {
"updateOrganization": {
"id": "4",
"success": true
}
}
}
updateRoomStoryV2
Description
Updates an existing story in a room
Required Permissions
"Messaging - Read and Write Access"
Response
Returns an UpdateRoomStoryResponse!
Arguments
| Name | Description |
|---|---|
input - RoomStoryUpdateInputV2!
|
Example
Query
mutation updateRoomStoryV2($input: RoomStoryUpdateInputV2!) {
updateRoomStoryV2(input: $input) {
status
}
}
Variables
{"input": RoomStoryUpdateInputV2}
Response
{
"data": {
"updateRoomStoryV2": {
"status": "abc123"
}
}
}
updateRoomV2
Description
Updates an existing room
Required Permissions
"Messaging - Read and Write Access"
Response
Returns a Room!
Arguments
| Name | Description |
|---|---|
input - RoomUpdateInputV2
|
Example
Query
mutation updateRoomV2($input: RoomUpdateInputV2) {
updateRoomV2(input: $input) {
id
roomName
organization {
...CurrentOrganizationFragment
}
creator {
...RoomUserFragment
}
createdAtDateTime
public
topic
owner {
...RoomUserFragment
}
numUnread
roomFavoriteDateTime
favorite
numUnreadMentions
roomUsers {
...RoomUserFragment
}
numUsers
joinDateTime
lastVisitedDateTime
lastReadDateTime
roomType
readOnlyDateTime
readOnly
blockDateTime
blockedBy {
...RoomUserFragment
}
hidden
muted
contractId
contract {
...ContractFragment
}
contractDetails {
...ContractDetailsFragment
}
vendorProposal {
...VendorProposalFragment
}
roomNote
roomNotePresent
offerIds
recruiters {
...GenericUserFragment
}
latestStory {
...RoomStoryFragment
}
story {
...RoomStoryFragment
}
stories {
...RoomStoryConnectionFragment
}
latestStoryPreRendered {
...RoomStoryFragment
}
}
}
Variables
{"input": RoomUpdateInputV2}
Response
{
"data": {
"updateRoomV2": {
"id": "4",
"roomName": "xyz789",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "abc123",
"public": true,
"topic": "abc123",
"owner": RoomUser,
"numUnread": 123,
"roomFavoriteDateTime": "abc123",
"favorite": false,
"numUnreadMentions": 123,
"roomUsers": [RoomUser],
"numUsers": 123,
"joinDateTime": "xyz789",
"lastVisitedDateTime": "abc123",
"lastReadDateTime": "abc123",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "abc123",
"readOnly": true,
"blockDateTime": "abc123",
"blockedBy": RoomUser,
"hidden": true,
"muted": true,
"contractId": "4",
"contract": Contract,
"contractDetails": ContractDetails,
"vendorProposal": VendorProposal,
"roomNote": "xyz789",
"roomNotePresent": true,
"offerIds": [4],
"recruiters": [GenericUser],
"latestStory": RoomStory,
"story": RoomStory,
"stories": RoomStoryConnection,
"latestStoryPreRendered": RoomStory
}
}
}
updateTeamActivity
Description
Update activity at team level. A user needs to have hiring manager privileges within the team in order to create an activity at team level
Required Permissions
"Activity Entities - Read and Write Access"
Response
Returns a ProcessUpdateResponse
Arguments
| Name | Description |
|---|---|
orgId - ID!
|
The org id where the team belongs to |
teamId - ID
|
The team id where activity is being updated |
request - UpdateTeamActivityRequest!
|
The request object containing the updated activity details |
Example
Query
mutation updateTeamActivity(
$orgId: ID!,
$teamId: ID,
$request: UpdateTeamActivityRequest!
) {
updateTeamActivity(
orgId: $orgId,
teamId: $teamId,
request: $request
) {
success
}
}
Variables
{
"orgId": 4,
"teamId": "4",
"request": UpdateTeamActivityRequest
}
Response
{"data": {"updateTeamActivity": {"success": false}}}
updateWorkflowTask
Description
Updates the status of the individual task associated with the workflowId and taskId
Required Permissions
"Job Postings - Read and Write Access"
Response
Returns an UpdateWorkflowTaskResult!
Arguments
| Name | Description |
|---|---|
workflowId - ID
|
Workflow identifier |
taskId - ID
|
Task identifier |
updateWorkflowTaskDetailsInput - UpdateWorkflowTaskDetailsInput
|
Update payload |
Example
Query
mutation updateWorkflowTask(
$workflowId: ID,
$taskId: ID,
$updateWorkflowTaskDetailsInput: UpdateWorkflowTaskDetailsInput
) {
updateWorkflowTask(
workflowId: $workflowId,
taskId: $taskId,
updateWorkflowTaskDetailsInput: $updateWorkflowTaskDetailsInput
) {
workflowId
updatedTaskView {
...WorkflowTaskViewFragment
}
}
}
Variables
{
"workflowId": 4,
"taskId": "4",
"updateWorkflowTaskDetailsInput": UpdateWorkflowTaskDetailsInput
}
Response
{
"data": {
"updateWorkflowTask": {
"workflowId": "4",
"updatedTaskView": WorkflowTaskView
}
}
}
createClientJobInvitation
Description
Creates a new invitation for a given freelancer, client and jobPosting parameters
Required Permissions
"Management Job Postings"
Response
Returns an ID!
Arguments
| Name | Description |
|---|---|
clientJobInvitationCreateRequest - ClientJobInvitationCreateRequestInput!
|
Input for creating client job invitation |
Example
Query
mutation createClientJobInvitation($clientJobInvitationCreateRequest: ClientJobInvitationCreateRequestInput!) {
createClientJobInvitation(clientJobInvitationCreateRequest: $clientJobInvitationCreateRequest)
}
Variables
{
"clientJobInvitationCreateRequest": ClientJobInvitationCreateRequestInput
}
Response
{"data": {"createClientJobInvitation": 4}}
Types
Job Posts
AccessType
Description
Access type for job posting visibility
Values
| Enum Value | Description |
|---|---|
|
|
Publicly indexed |
|
|
Public access |
|
|
Private access |
Example
"PUBLIC_INDEX"
ApplicationsBidStats
Description
Statistics of bids on a job posting
Example
{
"avgRateBid": Money,
"minRateBid": Money,
"maxRateBid": Money,
"avgInterviewedRateBid": Money
}
Area
AreaFilter
AreaType
Description
Geographic area type
Values
| Enum Value | Description |
|---|---|
|
|
City area |
|
|
General area |
|
|
Postal code area |
Example
"CITY"
AutoReviewStatus
Description
Auto review status for job postings
Values
| Enum Value | Description |
|---|---|
|
|
Job posting approved |
|
|
Job posting rejected |
|
|
Job posting under review |
Example
"APPROVED"
CompanyJobPostingStatusAccess
Description
Filter input based on status and Access type for Job search
Fields
| Input Field | Description |
|---|---|
statuses_any - [JobPostingStatus!]
|
|
accesses_any - [AccessType!]
|
Example
{"statuses_any": ["REQUESTED"], "accesses_any": ["PUBLIC_INDEX"]}
ContractorType
Description
Contractor type filter
Values
| Enum Value | Description |
|---|---|
|
|
All contractor types |
|
|
Individual freelancers only |
|
|
Agencies only |
Example
"ALL"
CustomFieldDropDown
Description
Custom field dropdown option
Fields
| Input Field | Description |
|---|---|
id - ID
|
Dropdown option identifier |
customFieldId - ID
|
Custom field identifier |
value - String
|
Option value |
displayValue - String
|
Display value |
orderIndex - Int
|
Sort order index |
description - String
|
Option description |
inUse - Boolean
|
Whether option is in use |
active - Boolean
|
Whether option is active |
aclType - DropdownAclType
|
Access control type |
teamRids - [String]
|
Team record identifiers with access |
Example
{
"id": 4,
"customFieldId": 4,
"value": "xyz789",
"displayValue": "abc123",
"orderIndex": 123,
"description": "xyz789",
"inUse": true,
"active": true,
"aclType": "COMPANY",
"teamRids": ["abc123"]
}
CustomFieldsResponse
CustomJobPostSkill
DropdownAclType
Description
Access control type for dropdown options
Values
| Enum Value | Description |
|---|---|
|
|
Company-level access |
|
|
Team-level access |
Example
"COMPANY"
Earning
Description
Minimum earnings requirement
Values
| Enum Value | Description |
|---|---|
|
|
Any earnings level |
|
|
At least $1 earned |
|
|
At least $100 earned |
|
|
At least $1000 earned |
|
|
At least $10000 earned |
Example
"ANY"
EngagementType
Description
Engagement type for hourly contracts
Values
| Enum Value | Description |
|---|---|
|
|
Full-time engagement |
|
|
Part-time engagement |
|
|
As needed basis |
|
|
Client is not sure |
Example
"FULL_TIME"
EnglishProficiency
Description
English proficiency levels
Values
| Enum Value | Description |
|---|---|
|
|
Any proficiency level |
|
|
Basic proficiency |
|
|
Conversational proficiency |
|
|
Fluent proficiency |
|
|
Native proficiency |
Example
"ANY"
EnglishSkill
Description
English proficiency levels
Values
| Enum Value | Description |
|---|---|
|
|
Any level of English |
|
|
At least 1 out of 5 |
|
|
At least 2 out of 5 |
|
|
At least 3 out of 5 |
|
|
At least 4 out of 5 |
|
|
Exactly 5 out of 5 |
Example
"ANY_LEVEL"
ExperienceLevel
Description
Experience level requirements
Values
| Enum Value | Description |
|---|---|
|
|
Entry level |
|
|
Intermediate level |
|
|
Expert level |
Example
"ENTRY_LEVEL"
FixedPriceContractTerms
Description
Fixed-price contract terms
Fields
| Field Name | Description |
|---|---|
amount - Money!
|
Fixed budget amount |
maxAmount - Money
|
Maximum budget amount (if range) |
engagementDuration - EngagementDuration
|
Expected project duration |
Example
{
"amount": Money,
"maxAmount": Money,
"engagementDuration": EngagementDuration
}
FreelancerClientRelation
Description
Relationship between a freelancer and a client
Fields
| Field Name | Description |
|---|---|
companyRid - ID!
|
Client company record identifier |
companyName - String!
|
Client company name |
edcUserId - ID!
|
EDC user identifier |
lastContractPlatform - String!
|
Platform of last contract |
lastContractRid - ID!
|
Last contract record identifier |
lastContractTitle - String!
|
Title of the last contract |
Example
{
"companyRid": "4",
"companyName": "abc123",
"edcUserId": 4,
"lastContractPlatform": "xyz789",
"lastContractRid": "4",
"lastContractTitle": "xyz789"
}
HourlyContractTerms
Description
Hourly contract terms
Fields
| Field Name | Description |
|---|---|
engagementDuration - EngagementDuration
|
Expected engagement duration |
engagementType - EngagementType!
|
Type of engagement (full-time, part-time, etc.) |
notSureProjectDuration - Boolean
|
Client is unsure about project duration |
hourlyBudgetType - JobPostingHourlyBudgetType
|
Hourly budget type |
hourlyBudgetMin - Float
|
Minimum hourly rate |
hourlyBudgetMax - Float
|
Maximum hourly rate |
Example
{
"engagementDuration": EngagementDuration,
"engagementType": "FULL_TIME",
"notSureProjectDuration": false,
"hourlyBudgetType": "DEFAULT",
"hourlyBudgetMin": 987.65,
"hourlyBudgetMax": 123.45
}
JobActivity
Description
Activity metrics for a job posting
Fields
| Field Name | Description |
|---|---|
lastClientActivity - String
|
Last client activity timestamp |
invitesSent - Int!
|
Number of invites sent |
totalInvitedToInterview - Int!
|
Total invited to interview |
totalHired - Int!
|
Total hired |
totalUnansweredInvites - Int!
|
Total unanswered invites |
totalOffered - Int!
|
Total offers made |
totalRecommended - Int
|
Total recommended candidates |
Example
{
"lastClientActivity": "xyz789",
"invitesSent": 123,
"totalInvitedToInterview": 987,
"totalHired": 123,
"totalUnansweredInvites": 987,
"totalOffered": 987,
"totalRecommended": 123
}
JobDuration
Description
Job duration categories
Values
| Enum Value | Description |
|---|---|
|
|
One week duration |
|
|
One month duration |
|
|
Three months duration |
|
|
Six months duration |
|
|
Ongoing project |
Example
"WEEK"
JobFeaturePrediction
Description
Job feature prediction
Example
{
"id": 4,
"openingMultiFreelancerPrediction": false,
"opening": "abc123"
}
JobPostBillRate
Fields
| Input Field | Description |
|---|---|
billRateCode - String!
|
Example
{"billRateCode": "xyz789"}
JobPostDurationType
Description
Defines the duration of the job post
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"ONE_TIME_PROJECT"
JobPostEnterpriseCustomFields
JobPosting
Description
Management side JobPosting information
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Job posting identifier |
version - Int
|
Optimistic locking version |
info - JobPostingInfo
|
Core posting information block |
visibility - AccessType
|
Visibility/access level |
ownership - JobPostingOwnership
|
Ownership details |
content - JobPostingContent
|
Title and description |
attachment - [JobPostingAttachment!]
|
Attached files |
classification - JobPostingClassification
|
Classification attributes |
segmentationData - JobPostingSegmentationData
|
Segmentation metadata |
contractTerms - JobPostingContractTerms
|
Contract information of the Posting |
contractorSelection - JobPostingContractorSelection
|
Contractor selection criteria |
additionalInfo - JobPostingAdditionalInfo
|
Additional information |
ptcInfo - JobPostingPtcInfo
|
Private Talent Cloud info |
proposalsStatistics - ProposalsStatistics
|
Proposal statistics |
customFields - [JobPostingCustomFields]
|
Custom field responses |
Example
{
"id": "4",
"version": 123,
"info": JobPostingInfo,
"visibility": "PUBLIC_INDEX",
"ownership": JobPostingOwnership,
"content": JobPostingContent,
"attachment": [JobPostingAttachment],
"classification": JobPostingClassification,
"segmentationData": JobPostingSegmentationData,
"contractTerms": JobPostingContractTerms,
"contractorSelection": JobPostingContractorSelection,
"additionalInfo": JobPostingAdditionalInfo,
"ptcInfo": JobPostingPtcInfo,
"proposalsStatistics": ProposalsStatistics,
"customFields": [JobPostingCustomFields]
}
JobPostingAccess
Description
Job posting access levels
Values
| Enum Value | Description |
|---|---|
|
|
Publicly indexed: allowed for anonymous and search engin |
|
|
Public access: any registered user |
|
|
Private access: invited only |
Example
"PUBLIC_INDEX"
JobPostingAdditionalInfo
Description
Additional metadata captured at job creation
Fields
| Field Name | Description |
|---|---|
clientNumberOfHiresOnCreate - Int
|
Client's hire count at posting creation |
clientTotalSpentOnCreate - Money
|
Client's total spend at posting creation |
directHire - Boolean
|
Whether direct hire is enabled |
invitePost - Boolean
|
Whether this is an invite-only post |
lastBuyerActivity - String
|
Last buyer activity timestamp |
Example
{
"clientNumberOfHiresOnCreate": 123,
"clientTotalSpentOnCreate": Money,
"directHire": true,
"invitePost": true,
"lastBuyerActivity": "abc123"
}
JobPostingAdditionalRequest
Description
Additional options for job posting
Example
{
"directHire": false,
"invitePost": true,
"earlyEngagement": false,
"earlyEngagementVisited": false
}
JobPostingAdditionalSkillInput
Description
Additional skill input for job posting
Fields
| Input Field | Description |
|---|---|
skillId - String
|
Skill identifier |
freetext - String
|
Free-text skill name |
legacyConvertedSkill - Boolean
|
Whether skill was converted from legacy format |
relevance - JobPostSkillRelevance
|
Skill relevance (mandatory or nice-to-have) |
Example
{
"skillId": "abc123",
"freetext": "abc123",
"legacyConvertedSkill": true,
"relevance": "MANDATORY"
}
JobPostingAnnotations
Description
Annotations for job posting
Fields
| Input Field | Description |
|---|---|
tags - [String]
|
Tags for categorization |
customFields - [JobPostingAnnotationsCustomField]
|
Custom field key-value pairs |
Example
{
"tags": ["abc123"],
"customFields": [JobPostingAnnotationsCustomField]
}
JobPostingAnnotationsCustomField
JobPostingAttachment
Description
Attachment metadata for a job posting
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Attachment identifier |
sequenceNumber - Int!
|
Sequence number for ordering |
fileName - String!
|
Original file name |
link - String
|
Public link to the file |
afsFileLink - String
|
Link to AFS storage |
contentLength - Int
|
File size in bytes |
contentType - String
|
MIME content type |
createdDateTime - String
|
Creation timestamp |
Example
{
"id": "4",
"sequenceNumber": 123,
"fileName": "xyz789",
"link": "abc123",
"afsFileLink": "abc123",
"contentLength": 987,
"contentType": "xyz789",
"createdDateTime": "xyz789"
}
JobPostingCategory
JobPostingClassification
Description
Classification info attached with the job posting (management side)
Fields
| Field Name | Description |
|---|---|
category - JobPostingCategory
|
Primary category of the posting |
subCategory - JobSubPostingCategory
|
Subcategory of the posting |
skills - [Skill!]
|
Core skills associated with the posting |
customSkills - [CustomJobPostSkill!]
|
Custom skills provided by the client |
additionalSkills - [Skill!]
|
Additional skills associated with the posting |
occupationId - ID
|
Ontology occupation identifier |
customAdditionalSkills - [String!]
|
Additional free-text skills |
Example
{
"category": JobPostingCategory,
"subCategory": JobSubPostingCategory,
"skills": [Skill],
"customSkills": [CustomJobPostSkill],
"additionalSkills": [Skill],
"occupationId": 4,
"customAdditionalSkills": ["abc123"]
}
JobPostingConnection
Description
Connection for management job postings
Fields
| Field Name | Description |
|---|---|
totalCount - Int
|
Total number of management job postings |
edges - [JobPostingEdge]!
|
Connection edges containing nodes and cursors |
pageInfo - PageInfo
|
Pagination information |
Example
{
"totalCount": 123,
"edges": [JobPostingEdge],
"pageInfo": PageInfo
}
JobPostingContent
JobPostingContractorSelection
Description
Contractor selection criteria for a job posting
Fields
| Field Name | Description |
|---|---|
proposalRequirement - JobPostingProposalRequirements
|
Proposal submission requirements |
qualification - JobPostingQualification
|
Freelancer qualification criteria |
location - JobPostingLocation
|
Location constraints |
Example
{
"proposalRequirement": JobPostingProposalRequirements,
"qualification": JobPostingQualification,
"location": JobPostingLocation
}
JobPostingContractTerms
Description
Contract terms for a job posting
Fields
| Field Name | Description |
|---|---|
contractStartDate - String
|
Start date for the contract terms formatted according to ISO-8601 |
contractEndDate - String
|
End date for the contract terms formatted according to ISO-8601 |
contractType - ContractType!
|
Type of contract (hourly or fixed-price) |
onSiteType - OnSiteType
|
On-site work requirement type |
personsToHire - Int
|
Number of persons to hire |
experienceLevel - ExperienceLevel
|
Required experience level |
fixedPriceContractTerms - FixedPriceContractTerms
|
Fixed-price specific terms |
hourlyContractTerms - HourlyContractTerms
|
Hourly specific terms |
Example
{
"contractStartDate": "xyz789",
"contractEndDate": "abc123",
"contractType": "HOURLY",
"onSiteType": "REMOTE",
"personsToHire": 987,
"experienceLevel": "ENTRY_LEVEL",
"fixedPriceContractTerms": FixedPriceContractTerms,
"hourlyContractTerms": HourlyContractTerms
}
JobPostingCreateRequest
Description
Input for creating Job Post
Fields
| Input Field | Description |
|---|---|
organizationId - ID!
|
|
jobPostingInfo - JobPostingRequestInfo
|
|
qualifications - JobPostingQualificationRequest
|
|
questions - [JobPostingQuestionRequest!]
|
|
segmentationData - [JobPostingSegmentationRequest!]
|
|
attachmentIds - [ID!]
|
|
ptcInfo - JobPostingPtcInfoRequest
|
|
savePtcInfo - Boolean
|
|
invitePost - Boolean
|
|
jobPostingAdditionalRequest - JobPostingAdditionalRequest
|
|
sandsJobPost - SandsJobPostRequest
|
|
customFields - JobPostingCustomFieldsRequest
|
|
annotations - JobPostingAnnotations
|
|
enterpriseCustomFields - [JobPostEnterpriseCustomFields!]
|
|
billRate - JobPostBillRate
|
Example
{
"organizationId": 4,
"jobPostingInfo": JobPostingRequestInfo,
"qualifications": JobPostingQualificationRequest,
"questions": [JobPostingQuestionRequest],
"segmentationData": [JobPostingSegmentationRequest],
"attachmentIds": ["4"],
"ptcInfo": JobPostingPtcInfoRequest,
"savePtcInfo": false,
"invitePost": false,
"jobPostingAdditionalRequest": JobPostingAdditionalRequest,
"sandsJobPost": SandsJobPostRequest,
"customFields": JobPostingCustomFieldsRequest,
"annotations": JobPostingAnnotations,
"enterpriseCustomFields": [
JobPostEnterpriseCustomFields
],
"billRate": JobPostBillRate
}
JobPostingCreateResponse
Description
Response for creating a job posting
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Created job posting identifier |
qualificationsSaved - Boolean!
|
Whether qualifications section was saved |
skillsSaved - Boolean!
|
Whether skills section was saved |
questionsSaved - Boolean!
|
Whether screening questions were saved |
segmentationDataSaved - Boolean!
|
Whether segmentation data was saved |
attachmentsSaved - Boolean!
|
Whether attachments were saved |
ptcInfoSaved - Boolean!
|
Whether PTC info was saved |
jobPostingAdditional - Boolean!
|
Whether additional posting info was saved |
sandsJobPostSaved - Boolean!
|
Whether Sands job post data was saved |
customFieldsSaved - Boolean!
|
Whether custom fields were saved |
version - Int
|
Optimistic locking version |
Example
{
"id": 4,
"qualificationsSaved": false,
"skillsSaved": false,
"questionsSaved": false,
"segmentationDataSaved": false,
"attachmentsSaved": true,
"ptcInfoSaved": false,
"jobPostingAdditional": false,
"sandsJobPostSaved": true,
"customFieldsSaved": false,
"version": 987
}
JobPostingCustomFields
Description
Job posting custom fields
Example
{
"responseId": "4",
"id": 4,
"displayValue": "xyz789",
"value": "abc123"
}
JobPostingCustomFieldsRequest
Description
Custom fields request for job posting
Fields
| Input Field | Description |
|---|---|
responses - [CustomFieldsResponse]
|
Custom field responses |
newDropdowns - [CustomFieldDropDown]
|
New dropdown options |
Example
{
"responses": [CustomFieldsResponse],
"newDropdowns": [CustomFieldDropDown]
}
JobPostingEdge
Description
Edge in management job posting connection
Fields
| Field Name | Description |
|---|---|
cursor - String!
|
Cursor for pagination |
node - JobPosting
|
Job posting node |
Example
{
"cursor": "abc123",
"node": JobPosting
}
JobPostingHourlyBudgetType
Description
Hourly budget type for job posting
Values
| Enum Value | Description |
|---|---|
|
|
Default budget type |
|
|
Manually entered budget |
|
|
Budget not provided |
Example
"DEFAULT"
JobPostingInfo
Description
High-level job posting details
Fields
| Field Name | Description |
|---|---|
status - JobPostingStatus
|
Job posting status |
company - CurrentOrganization
|
Company associated with the job posting |
auditTime - AuditTime
|
Audit timestamps for the job posting |
hidden - Boolean
|
Whether the job posting is hidden |
siteSource - String
|
Source system where the posting was created |
keepOpenOnHire - Boolean
|
Keep the posting open after a hire is made |
draftJobPostingId - ID
|
Reference to the draft job posting ID |
publishDateTime - String
|
Publish date time of the posting formatted according to ISO-8601 |
filledDateTime - String
|
Filled date and time if the job was filled |
sourcingUpdateForbidden - Boolean
|
Whether sourcing updates are forbidden |
sourcingUpdateCount - Int
|
Count of sourcing updates |
premium - Boolean
|
Premium posting indicator |
legacyCiphertext - String
|
Legacy ciphertext for compatibility |
hideBudget - Boolean
|
Whether budget is hidden from public view |
categoryId - ID
|
Category identifier of the posting |
groupId - ID
|
Group identifier of the posting |
notSureFreelancersToHire - Boolean
|
Poster is unsure about number of freelancers to hire |
notSureExperienceLevel - Boolean
|
Poster is unsure about experience level required |
hourlyBudgetType - JobPostingHourlyBudgetType
|
Hourly budget type selected |
hourlyBudgetMin - Money
|
Minimum hourly budget |
hourlyBudgetMax - Money
|
Maximum hourly budget |
changedByUser - GenericUser
|
User who last changed the posting |
reasonId - ID
|
Reason identifier associated with status |
reasonName - String
|
Human-readable reason name |
Example
{
"status": "REQUESTED",
"company": CurrentOrganization,
"auditTime": AuditTime,
"hidden": false,
"siteSource": "xyz789",
"keepOpenOnHire": false,
"draftJobPostingId": 4,
"publishDateTime": "xyz789",
"filledDateTime": "xyz789",
"sourcingUpdateForbidden": true,
"sourcingUpdateCount": 987,
"premium": true,
"legacyCiphertext": "xyz789",
"hideBudget": true,
"categoryId": 4,
"groupId": "4",
"notSureFreelancersToHire": false,
"notSureExperienceLevel": true,
"hourlyBudgetType": "DEFAULT",
"hourlyBudgetMin": Money,
"hourlyBudgetMax": Money,
"changedByUser": GenericUser,
"reasonId": "4",
"reasonName": "abc123"
}
JobPostingLocation
Description
Location constraints for a job posting
Fields
| Field Name | Description |
|---|---|
countries - [String!]
|
Allowed countries |
states - [String!]
|
Allowed states |
timezones - [String!]
|
Allowed timezones |
localCheckRequired - Boolean
|
Whether local check is required |
localMarket - Boolean
|
Whether local market only |
areas - [Area!]
|
Specific geographic areas |
notSureLocationPreference - Boolean
|
Client is unsure about location preference |
localDescription - String
|
Description of local requirement |
localFlexibilityDescription - String
|
Description of location flexibility |
address - String
|
Physical address |
Example
{
"countries": ["abc123"],
"states": ["xyz789"],
"timezones": ["abc123"],
"localCheckRequired": false,
"localMarket": true,
"areas": [Area],
"notSureLocationPreference": true,
"localDescription": "xyz789",
"localFlexibilityDescription": "abc123",
"address": "abc123"
}
JobPostingLocationRequest
JobPostingOwnership
Description
Owner and organization associations for a job posting
Fields
| Field Name | Description |
|---|---|
user - GenericUser
|
User who owns the posting |
clientCompany - CurrentOrganization
|
Client company associated with the posting |
company - GenericOrganization
|
Company owning the posting |
team - GenericOrganization
|
Team owning the posting |
Example
{
"user": GenericUser,
"clientCompany": CurrentOrganization,
"company": GenericOrganization,
"team": GenericOrganization
}
JobPostingProposalRequirements
Description
Proposal requirements for a job posting
Fields
| Field Name | Description |
|---|---|
coverLetterRequired - Boolean
|
Whether cover letter is required |
freelancerMilestonesAllowed - Boolean
|
Whether freelancer can propose milestones |
screeningQuestions - [JobPostingQuestion!]
|
List of screening questions |
Example
{
"coverLetterRequired": false,
"freelancerMilestonesAllowed": false,
"screeningQuestions": [JobPostingQuestion]
}
JobPostingPtcInfo
Description
Private Talent Cloud related info for a job posting
Fields
| Field Name | Description |
|---|---|
jobPostingPtcVisibility - JobPostingPtcVisibility
|
PTC visibility setting |
Example
{"jobPostingPtcVisibility": "ANY_USER"}
JobPostingPtcInfoRequest
Description
Private Talent Cloud information for job posting
Fields
| Input Field | Description |
|---|---|
jobReference - String
|
Job reference code |
talentCloudIds - [ID!]
|
Talent cloud identifiers |
visibility - JobPostingPtcVisibility
|
PTC visibility setting |
employerCompanyReference - String
|
Employer company reference |
status - JobPostingPtcStatus
|
PTC status |
purchaseOrderId - ID
|
Purchase order identifier |
locationCheckRequired - Boolean
|
Whether location check is required |
countries - [String!]
|
Allowed countries |
onSiteType - OnSiteType
|
On-site work requirement |
onSiteCity - String
|
On-site city |
onSiteCountry - String
|
On-site country |
createDate - Int
|
Creation date (Unix timestamp) |
onSiteReason - String
|
Reason for on-site requirement |
onSiteReasonFlexible - String
|
Flexibility description for on-site |
onSiteState - String
|
On-site state |
teamId - ID
|
Team identifier |
travelRequired - Boolean
|
Whether travel is required |
updatedDate - Int
|
Last updated date (Unix timestamp) |
Example
{
"jobReference": "abc123",
"talentCloudIds": [4],
"visibility": "ANY_USER",
"employerCompanyReference": "abc123",
"status": "OPEN",
"purchaseOrderId": 4,
"locationCheckRequired": false,
"countries": ["abc123"],
"onSiteType": "REMOTE",
"onSiteCity": "abc123",
"onSiteCountry": "xyz789",
"createDate": 987,
"onSiteReason": "xyz789",
"onSiteReasonFlexible": "xyz789",
"onSiteState": "xyz789",
"teamId": "4",
"travelRequired": true,
"updatedDate": 123
}
JobPostingPtcStatus
Description
PTC status for job posting
Values
| Enum Value | Description |
|---|---|
|
|
Job posting open |
|
|
Job posting cancelled |
|
|
Job posting filled |
|
|
Job posting in draft |
|
|
Draft deleted |
|
|
Pending verification |
|
|
Pending payment method |
|
|
Under review |
Example
"OPEN"
JobPostingPtcVisibility
Description
PTC visibility options for job posting
Values
| Enum Value | Description |
|---|---|
|
|
Visible to any user |
|
|
Visible to members of selected cloud |
|
|
Visible only to invited users |
Example
"ANY_USER"
JobPostingQualification
Description
Qualification requirements for a job posting
Fields
| Field Name | Description |
|---|---|
contractorType - ContractorType
|
Type of contractor (individual, agency, etc.) |
englishProficiency - EnglishProficiency
|
Required English proficiency level |
hasPortfolio - Boolean
|
Whether portfolio is required |
risingTalent - Boolean
|
Whether rising talent is preferred |
jobSuccessScore - Int
|
Minimum job success score |
earnings - Earning
|
Minimum earnings requirement |
preferredGroups - [PreferredGroup!]
|
Preferred freelancer groups |
preferredTests - [PreferredTest]
|
Preferred tests or certifications |
Example
{
"contractorType": "ALL",
"englishProficiency": "ANY",
"hasPortfolio": true,
"risingTalent": true,
"jobSuccessScore": 123,
"earnings": "ANY",
"preferredGroups": [PreferredGroup],
"preferredTests": [PreferredTest]
}
JobPostingQualificationRequest
Description
Job Posting qualification related fields
Fields
| Input Field | Description |
|---|---|
oDeskHours - Int
|
|
testId - ID
|
|
locationRegionId - ID
|
|
hasPortfolio - Boolean
|
|
contractorType - ContractorType
|
|
jobSuccessScore - Int
|
|
englishProficiency - EnglishProficiency
|
|
risingTalent - Boolean
|
|
countries - [String!]
|
|
regions - [String!]
|
|
locationCheckRequired - Boolean
|
|
states - [String!]
|
|
timezones - [String!]
|
|
earnings - Earning
|
|
localMarket - Boolean
|
|
onSiteType - OnSiteType
|
|
locations - [JobPostingLocationRequest!]
|
|
localDescription - String
|
|
localFlexibilityDescription - String
|
|
ctime - String
|
|
englishSkill - EnglishSkill
|
|
groupRid - ID
|
|
languages - [String]
|
|
mtime - String
|
|
openingId - String
|
Example
{
"oDeskHours": 123,
"testId": "4",
"locationRegionId": 4,
"hasPortfolio": true,
"contractorType": "ALL",
"jobSuccessScore": 123,
"englishProficiency": "ANY",
"risingTalent": true,
"countries": ["abc123"],
"regions": ["xyz789"],
"locationCheckRequired": true,
"states": ["abc123"],
"timezones": ["xyz789"],
"earnings": "ANY",
"localMarket": false,
"onSiteType": "REMOTE",
"locations": [JobPostingLocationRequest],
"localDescription": "xyz789",
"localFlexibilityDescription": "xyz789",
"ctime": "xyz789",
"englishSkill": "ANY_LEVEL",
"groupRid": 4,
"languages": ["xyz789"],
"mtime": "abc123",
"openingId": "xyz789"
}
JobPostingQuestion
Description
Screening question for a job posting
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Question identifier |
question - String
|
Question text |
user - GenericUser
|
User who created the question |
questionType - QuestionType
|
Type of question |
auditTime - AuditTime
|
Audit timestamps |
Example
{
"id": "4",
"question": "abc123",
"user": GenericUser,
"questionType": "EXPERIENCE",
"auditTime": AuditTime
}
JobPostingQuestionRequest
Description
Screening question for job posting
Fields
| Input Field | Description |
|---|---|
question - String!
|
Question text |
type - QuestionType
|
Type of question |
Example
{"question": "xyz789", "type": "EXPERIENCE"}
JobPostingRequestInfo
Description
Basic input attributes
Fields
| Input Field | Description |
|---|---|
title - String
|
|
description - String
|
|
engagementType - EngagementType
|
|
durationId - ID
|
Consumers can use the following query for the duration ID proposalMetadata{ engagementDurationValues{ id label } } |
status - JobPostingStatus
|
|
type - JobPostType
|
|
amount - String
|
Amount as string containing exact value with dot symbol (".") is used to separate integer and fractional parts |
coverLetterRequired - Boolean
|
|
access - AccessType
|
|
experienceLevel - ExperienceLevel
|
|
freelancersToHire - Int
|
|
categoryId - ID
|
Consumers can use the following query for category and group ID ontologyCategories { id preferredLabel subcategories { id preferredLabel } It's equal to subcategories.id (eg Web Development) |
groupId - ID
|
Equal to ontologyCategories.id (eg Web, Mobile & Software Dev) (see example in categoryId) |
endDate - String
|
End date for the Posting formatted according to ISO-8601 |
startDate - String
|
Start date for the Posting formatted according to ISO-8601 |
siteSource - String
|
|
keepOpenOnHire - Boolean
|
Amount as string containing exact value with dot symbol (".") is used to separate integer and fractional parts |
draftJobPostingId - ID
|
|
freelancerMilestonesAllowed - Boolean
|
|
premium - Boolean
|
|
hideBudget - Boolean
|
|
notSureFreelancersToHire - Boolean
|
|
notSureProjectDuration - Boolean
|
|
notSureExperienceLevel - Boolean
|
|
notSureLocationPreference - Boolean
|
|
hourlyBudgetType - JobPostingHourlyBudgetType
|
|
hourlyBudgetMin - String
|
Hourly min budget as string containing exact value with dot symbol (".") is used to separate integer and fractional parts |
hourlyBudgetMax - String
|
Hourly max budget as string containing exact value with dot symbol (".") is used to separate integer and fractional parts |
autoReviewStatus - AutoReviewStatus
|
|
autoReviewTs - String
|
|
changedById - ID
|
|
ciphertext - String
|
|
closeTime - String
|
|
companyName - String
|
|
companyId - ID
|
|
createdByFirstName - String
|
|
createdByLastName - String
|
|
createdById - ID
|
|
ctime - String
|
|
deletedReason - String
|
|
filledDate - String
|
|
ghostPost - Boolean
|
|
hidden - Boolean
|
|
hourPackId - ID
|
|
lastOboAgentActionTs - String
|
|
lastOboAgentUserId - ID
|
|
legacyCiphertext - String
|
|
legacyRid - ID
|
|
manualReviewStatus - ManualReviewStatus
|
|
mtime - String
|
|
offTheNetwork - Boolean
|
|
publishTime - String
|
|
reasonRid - ID
|
|
sourcingTime - String
|
|
sourcingUpdateCount - Int
|
|
sourcingUpdateForbidden - Boolean
|
|
uid - String
|
|
weeklyRetainerBudget - Float
|
|
version - Int
|
Optimistic locking version |
tools - [JobPostToolInput!]
|
|
deliverables - String
|
|
durationType - JobPostDurationType
|
|
deadline - String
|
Example
{
"title": "abc123",
"description": "abc123",
"engagementType": "FULL_TIME",
"durationId": 4,
"status": "REQUESTED",
"type": "HOURLY",
"amount": "abc123",
"coverLetterRequired": true,
"access": "PUBLIC_INDEX",
"experienceLevel": "ENTRY_LEVEL",
"freelancersToHire": 123,
"categoryId": "4",
"groupId": "4",
"endDate": "abc123",
"startDate": "xyz789",
"siteSource": "abc123",
"keepOpenOnHire": true,
"draftJobPostingId": "4",
"freelancerMilestonesAllowed": false,
"premium": true,
"hideBudget": false,
"notSureFreelancersToHire": false,
"notSureProjectDuration": true,
"notSureExperienceLevel": false,
"notSureLocationPreference": false,
"hourlyBudgetType": "DEFAULT",
"hourlyBudgetMin": "abc123",
"hourlyBudgetMax": "abc123",
"autoReviewStatus": "APPROVED",
"autoReviewTs": "abc123",
"changedById": 4,
"ciphertext": "xyz789",
"closeTime": "xyz789",
"companyName": "xyz789",
"companyId": "4",
"createdByFirstName": "abc123",
"createdByLastName": "abc123",
"createdById": 4,
"ctime": "abc123",
"deletedReason": "abc123",
"filledDate": "abc123",
"ghostPost": false,
"hidden": false,
"hourPackId": "4",
"lastOboAgentActionTs": "xyz789",
"lastOboAgentUserId": "4",
"legacyCiphertext": "abc123",
"legacyRid": 4,
"manualReviewStatus": "APPROVED",
"mtime": "abc123",
"offTheNetwork": false,
"publishTime": "abc123",
"reasonRid": 4,
"sourcingTime": "xyz789",
"sourcingUpdateCount": 987,
"sourcingUpdateForbidden": true,
"uid": "xyz789",
"weeklyRetainerBudget": 987.65,
"version": 123,
"tools": [JobPostToolInput],
"deliverables": "abc123",
"durationType": "ONE_TIME_PROJECT",
"deadline": "abc123"
}
JobPostingSegmentationData
Description
Segmentation data for a job posting
Fields
| Field Name | Description |
|---|---|
segmentationValues - [JobPostingSegmentationValue!]
|
Segmentation values assigned to the posting |
Example
{"segmentationValues": [JobPostingSegmentationValue]}
JobPostingSegmentationRequest
JobPostingSegmentationValue
Description
Segmentation value entry for a job posting
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Segmentation value identifier |
label - String
|
Display label |
referenceName - String
|
Reference name/code |
sortOrder - Int
|
Sorting order |
segmentationType - SegmentationType
|
Segmentation type reference |
auditTime - AuditTime
|
Audit timestamps |
skill - Skill
|
Linked skill (if applicable) |
Example
{
"id": 4,
"label": "abc123",
"referenceName": "xyz789",
"sortOrder": 123,
"segmentationType": SegmentationType,
"auditTime": AuditTime,
"skill": Skill
}
JobPostingsFilter
Description
Input filter for searching Job Posting for a given organization
Fields
| Input Field | Description |
|---|---|
pagination_eq - Pagination
|
|
title_eq - String
|
Title of the Job to be searched |
postByTeamIds_any - [ID!]
|
Collection of the Team's Id for which result to be filtered |
postByPersonIds_any - [ID!]
|
Collection of the Person's Id for which result to be filtered |
statusAndAccess_any - [CompanyJobPostingStatusAccess!]
|
Status and success pairs for filtering |
excludePostByPersonIds_any - [ID!]
|
Jobs to be excluded posted by the persons |
categoryGroupIds_any - [ID!]
|
Jobs to be filtered based for the groups |
contractType_eq - ContractType
|
Jobs to be filtered based on the contract type |
createdDateTimeFrom_eq - String
|
Jobs to be filtered based on created after date, date in ISO format yyyy-MM-ddThh:mm:ss.SSS+HHmm or yyyy-MM-dd |
createdDateTimeTo_eq - String
|
Jobs to be filtered based on created before date, date in ISO format yyyy-MM-ddThh:mm:ss.SSS+HHmm or yyyy-MM-dd |
Example
{
"pagination_eq": Pagination,
"title_eq": "xyz789",
"postByTeamIds_any": [4],
"postByPersonIds_any": ["4"],
"statusAndAccess_any": [CompanyJobPostingStatusAccess],
"excludePostByPersonIds_any": [4],
"categoryGroupIds_any": ["4"],
"contractType_eq": "HOURLY",
"createdDateTimeFrom_eq": "abc123",
"createdDateTimeTo_eq": "xyz789"
}
JobPostingSkillInput
Description
Skill input for job posting
Fields
| Input Field | Description |
|---|---|
parentSkillId - String!
|
Parent ontology skill identifier |
skillId - String
|
Specific skill identifier |
freetext - String
|
Free-text skill name |
boolAnswer - Boolean
|
Boolean answer for skill question |
legacyConvertedSkill - Boolean
|
Whether skill was converted from legacy format |
relevance - JobPostSkillRelevance
|
Skill relevance (mandatory or nice-to-have) |
Example
{
"parentSkillId": "xyz789",
"skillId": "abc123",
"freetext": "xyz789",
"boolAnswer": true,
"legacyConvertedSkill": false,
"relevance": "MANDATORY"
}
JobPostingStatus
Description
Job posting status values
Values
| Enum Value | Description |
|---|---|
|
|
Job posting requested |
|
|
Job posting cancelled |
|
|
Job posting filled |
|
|
Job posting in draft state |
|
|
Draft job posting deleted |
|
|
Pending verification |
|
|
Pending payment method |
Example
"REQUESTED"
JobPostingUpdateRequest
Description
Input for updating Job Post
Fields
| Input Field | Description |
|---|---|
organizationId - ID!
|
|
jobPostingInfo - JobPostingRequestInfo
|
|
qualifications - JobPostingQualificationRequest
|
|
questions - [JobPostingQuestionRequest!]
|
|
segmentationData - [JobPostingSegmentationRequest!]
|
|
attachmentIds - [ID!]
|
|
ptcInfo - JobPostingPtcInfoRequest
|
|
savePtcInfo - Boolean
|
|
invitePost - Boolean
|
|
jobPostingAdditionalRequest - JobPostingAdditionalRequest
|
|
sandsJobPost - SandsJobPostRequest
|
|
customFields - JobPostingCustomFieldsRequest
|
|
annotations - JobPostingAnnotations
|
|
enterpriseCustomFields - [JobPostEnterpriseCustomFields!]
|
|
billRate - JobPostBillRate
|
Example
{
"organizationId": 4,
"jobPostingInfo": JobPostingRequestInfo,
"qualifications": JobPostingQualificationRequest,
"questions": [JobPostingQuestionRequest],
"segmentationData": [JobPostingSegmentationRequest],
"attachmentIds": ["4"],
"ptcInfo": JobPostingPtcInfoRequest,
"savePtcInfo": true,
"invitePost": true,
"jobPostingAdditionalRequest": JobPostingAdditionalRequest,
"sandsJobPost": SandsJobPostRequest,
"customFields": JobPostingCustomFieldsRequest,
"annotations": JobPostingAnnotations,
"enterpriseCustomFields": [
JobPostEnterpriseCustomFields
],
"billRate": JobPostBillRate
}
JobPostingUpdateResponse
Description
Response for updating a job posting
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Updated job posting identifier |
qualificationsSaved - Boolean!
|
Whether qualifications section was saved |
skillsSaved - Boolean!
|
Whether skills section was saved |
questionsSaved - Boolean!
|
Whether screening questions were saved |
segmentationDataSaved - Boolean!
|
Whether segmentation data was saved |
attachmentsSaved - Boolean!
|
Whether attachments were saved |
ptcInfoSaved - Boolean!
|
Whether PTC info was saved |
sandsJobPostSaved - Boolean!
|
Whether Sands job post data was saved |
version - Int
|
Optimistic locking version |
Example
{
"id": 4,
"qualificationsSaved": true,
"skillsSaved": false,
"questionsSaved": true,
"segmentationDataSaved": true,
"attachmentsSaved": false,
"ptcInfoSaved": true,
"sandsJobPostSaved": true,
"version": 987
}
JobPostsFilter
Fields
| Input Field | Description |
|---|---|
teamIds - [ID!]
|
If specified, only job posts belonging to these teams will be fetched |
statuses - [String!]
|
Job post status list. Default value is ALL. |
excludeHidden - Boolean
|
Whether to exclude hidden openings from result. Default is true. |
fields - [String!]
|
Job posts projection fields |
Example
{
"teamIds": ["4"],
"statuses": ["abc123"],
"excludeHidden": false,
"fields": ["abc123"]
}
JobPostSkillRelevance
Description
Defines whether skills are mandatory or nice to have
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"MANDATORY"
JobPostToolInput
Description
Tool input for job posting
Fields
| Input Field | Description |
|---|---|
name - String
|
Tool name |
Example
{"name": "abc123"}
JobPostType
Description
Job post type
Values
| Enum Value | Description |
|---|---|
|
|
Hourly rate job |
|
|
Fixed price job |
Example
"HOURLY"
JobSubPostingCategory
MarketplaceAdditionalSearchInfo
Description
Additional search info for marketplace results
Fields
| Field Name | Description |
|---|---|
highlightTitle - String
|
Highlighted title for search results |
Example
{"highlightTitle": "xyz789"}
MarketplaceContractorSelection
Description
Contractor selection for a marketplace job posting
Fields
| Field Name | Description |
|---|---|
proposalRequirement - MarketplaceProposalRequirements
|
Proposal submission requirements |
qualification - MarketplaceQualification
|
Freelancer qualification criteria |
location - MarketplaceLocation
|
Location constraints |
Example
{
"proposalRequirement": MarketplaceProposalRequirements,
"qualification": MarketplaceQualification,
"location": MarketplaceLocation
}
MarketplaceContractTerms
Description
Contract terms for a marketplace job posting
Fields
| Field Name | Description |
|---|---|
contractStartDate - String
|
Start date for the contract terms formatted according to ISO-8601 |
contractEndDate - String
|
End date for the contract terms formatted according to ISO-8601 |
contractType - ContractType!
|
Type of contract |
onSiteType - OnSiteType
|
On-site work requirement |
personsToHire - Int!
|
Number of persons to hire |
experienceLevel - ExperienceLevel
|
Required experience level |
fixedPriceContractTerms - FixedPriceContractTerms
|
Fixed-price terms |
hourlyContractTerms - HourlyContractTerms
|
Hourly terms |
notSurePersonsToHire - Boolean
|
Client unsure about number of persons |
notSureExperiencelevel - Boolean
|
Client unsure about experience level |
Example
{
"contractStartDate": "xyz789",
"contractEndDate": "xyz789",
"contractType": "HOURLY",
"onSiteType": "REMOTE",
"personsToHire": 987,
"experienceLevel": "ENTRY_LEVEL",
"fixedPriceContractTerms": FixedPriceContractTerms,
"hourlyContractTerms": HourlyContractTerms,
"notSurePersonsToHire": false,
"notSureExperiencelevel": false
}
MarketplaceJobFilter
Fields
| Input Field | Description |
|---|---|
searchExpression_eq - String
|
Generic search filter supports partial Lucene syntax |
skillExpression_eq - String
|
Generic skills filter supports partial Lucene syntax |
titleExpression_eq - String
|
Generic title filter supports partial Lucene syntax |
searchTerm_eq - SearchTerm
|
Provides additional search terms to check, ignored if searchExpression_eq used |
categoryIds_any - [ID!]
|
The id of category of the returned jobs. Parameter works with OR behavior |
subcategoryIds_any - [ID!]
|
The id of subcategory of the returned jobs. Parameter works with OR behavior |
occupationIds_any - [ID!]
|
The occupationUID of the jobs to return. UIDs should be taken from Ontology and values will be handled with OR |
ontologySkillIds_all - [ID!]
|
The ontology skill element uid of the jobs to return. UIDs should be taken from Ontology and values will be handled with AND |
sinceId_eq - String
|
Multiple values of skills to filter on. It makes text match on skills rather than exact match skillsFilter_any: [String!] Deprecated! Use ontology_skill_uid instead! Constrains the search to jobs with id (posting id) higher than sinceId |
maxId_eq - String
|
Constrains the search to jobs with id (posting id) less than maxId |
jobType_eq - ContractType
|
Constrains the search to jobs of the provided job type |
duration_any - [JobDuration!]
|
Duration of the hourly jobs. Fixed price jobs will be returned no matter they do not have duration |
workload_eq - EngagementType
|
Workload of the hourly jobs. Fixed price jobs will be returned no matter they do not have workload |
clientHiresRange_eq - IntRange
|
Constrains the search to jobs from clients with the number of past hires to feet the specified range or value |
clientFeedBackRange_eq - FloatRange
|
Constrains the search to jobs from clients with the rating to feet the specified range or value |
budgetRange_eq - IntRange
|
Constrains the search to jobs from clients with the budget. Hourly jobs will be returned no matter they do not have budget |
verifiedPaymentOnly_eq - Boolean
|
Whether to only return jobs of clients with verified payment method |
previousClients_eq - Boolean
|
Return jobs of the clients user worked with (applies to freelancer/agency user site jobs search/jobs feed only) |
experienceLevel_eq - ExperienceLevel
|
Return only jobs with the specified contractor tier |
locations_any - [String!]
|
Country or city of the client that posted a job |
cityId_any - [String!]
|
Returns jobs located within 100 miles radius around the city with the uid specified in search parameter. Note that other Global Location Jobs Filters are also applied |
zipCodeId_any - [String!]
|
Returns jobs located within 100 miles radius around zipcode with the uid specified in search parameter. Note that other Global Location Jobs Filters are also applied |
radius_eq - Int
|
Is used in pair with city_id or zipcode_id to use another search radius than default (100 miles) |
areaId_any - [String!]
|
Returns jobs within specified area or subarea. Note that other Global Location Jobs Filters are also applied |
timezone_eq - String
|
Returns jobs posted by client to the specified timezone. Note that other Global Location Jobs Filters are also applied |
usState_eq - String
|
Returns jobs posted by client to the specified USA state. Note that other Global Location Jobs Filters are also applied |
daysPosted_eq - Int
|
Constrains the search to jobs posted to the specified group. The source of the value is ODR op_pref_group_id field groupId_eq: String deprecated Number of days. Constrains the search to jobs posted within last N days |
jobPostingAccess - JobPostingAccess
|
Constrains the search to jobs in particular access realm |
ptcIds_any - [ID!]
|
List of Talent Clouds UIDs freelancer is allowed to see jobs in |
ptcOnly_eq - Boolean
|
|
enterpriseOnly_eq - Boolean
|
|
proposalRange_eq - IntRange
|
|
pagination_eq - Pagination
|
Pagination, e.g. { after: "0", first: 30 } will return first 30 records, starting from the very first element |
area_eq - AreaFilter
|
|
preserveFacet_eq - String
|
|
userLocationMatch_eq - Boolean
|
|
visitorCountry_eq - String
|
Example
{
"searchExpression_eq": "abc123",
"skillExpression_eq": "abc123",
"titleExpression_eq": "xyz789",
"searchTerm_eq": SearchTerm,
"categoryIds_any": ["4"],
"subcategoryIds_any": [4],
"occupationIds_any": [4],
"ontologySkillIds_all": ["4"],
"sinceId_eq": "abc123",
"maxId_eq": "abc123",
"jobType_eq": "HOURLY",
"duration_any": ["WEEK"],
"workload_eq": "FULL_TIME",
"clientHiresRange_eq": IntRange,
"clientFeedBackRange_eq": FloatRange,
"budgetRange_eq": IntRange,
"verifiedPaymentOnly_eq": true,
"previousClients_eq": true,
"experienceLevel_eq": "ENTRY_LEVEL",
"locations_any": ["abc123"],
"cityId_any": ["xyz789"],
"zipCodeId_any": ["abc123"],
"radius_eq": 123,
"areaId_any": ["abc123"],
"timezone_eq": "xyz789",
"usState_eq": "xyz789",
"daysPosted_eq": 123,
"jobPostingAccess": "PUBLIC_INDEX",
"ptcIds_any": ["4"],
"ptcOnly_eq": true,
"enterpriseOnly_eq": true,
"proposalRange_eq": IntRange,
"pagination_eq": Pagination,
"area_eq": AreaFilter,
"preserveFacet_eq": "xyz789",
"userLocationMatch_eq": false,
"visitorCountry_eq": "xyz789"
}
MarketplaceJobPosting
Description
Marketplace job posting aggregate
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Marketplace job posting identifier |
workFlowState - MarketplacePostingWorkFlowState
|
Current workflow state |
ownership - MarketplacePostingOwnership
|
Ownership details |
annotations - MarketplacePostingAnnotations
|
Annotations associated with the posting |
activityStat - MarketplacePostingActivityStat
|
Activity statistics |
content - MarketplaceJobPostingContent
|
Public-facing content |
attachments - [MarketplacePostingAttachment!]
|
Attached files |
classification - MarketplacePostingClassification
|
Classification attributes |
segmentationData - MarketplaceSegmentationData
|
Segmentation metadata |
contractTerms - MarketplaceContractTerms
|
Contract terms |
contractorSelection - MarketplaceContractorSelection
|
Contractor selection criteria |
additionalSearchInfo - MarketplaceAdditionalSearchInfo
|
Additional computed search info |
clientCompany - PrivateCompanyInfo
|
Company profile of the client Use clientCompanyPublic for company information |
clientCompanyPublic - MarketplacePublicCompanyInfo
|
|
canClientReceiveContractProposal - Boolean!
|
Indicates whether there is something that would prevent client from receiving contract proposal |
clientProposals - ClientProposalsConnection!
|
list of client proposals |
Arguments
|
|
customFields - CustomFieldsConnection
|
Custom fields attached to this particular JobPostiingId. The response can optionally be filtered by organizationIds. If organizationIds are specified, only responses of custom fields accessible by hiring managers in the specified teams will be returned. These organizationIds can be 'team OrganizationIds' or 'root organizationId'. Custom fields that are accessible/visible through out the COMPANY are always included in the response. |
Arguments
|
|
Example
{
"id": "4",
"workFlowState": MarketplacePostingWorkFlowState,
"ownership": MarketplacePostingOwnership,
"annotations": MarketplacePostingAnnotations,
"activityStat": MarketplacePostingActivityStat,
"content": MarketplaceJobPostingContent,
"attachments": [MarketplacePostingAttachment],
"classification": MarketplacePostingClassification,
"segmentationData": MarketplaceSegmentationData,
"contractTerms": MarketplaceContractTerms,
"contractorSelection": MarketplaceContractorSelection,
"additionalSearchInfo": MarketplaceAdditionalSearchInfo,
"clientCompany": PrivateCompanyInfo,
"clientCompanyPublic": MarketplacePublicCompanyInfo,
"canClientReceiveContractProposal": true,
"clientProposals": ClientProposalsConnection,
"customFields": CustomFieldsConnection
}
MarketplaceJobPostingContent
MarketplaceJobPostingsContents
Description
Contents of a marketplace job posting by ID
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Job posting identifier |
ciphertext - String!
|
Encrypted identifier value |
title - String!
|
Job posting title |
description - String!
|
Job posting description |
publishedDateTime - String!
|
Published timestamp |
annotations - MarketplacePostingAnnotations
|
Posting annotations |
Example
{
"id": 4,
"ciphertext": "xyz789",
"title": "abc123",
"description": "abc123",
"publishedDateTime": "xyz789",
"annotations": MarketplacePostingAnnotations
}
MarketplaceJobPostingSearchClientInfo
Description
Client information associated with a marketplace job posting search result
Fields
| Field Name | Description |
|---|---|
memberSinceDateTime - String
|
Date when the client joined Deprecated legacy field |
totalHires - Int!
|
Total number of hires made by the client |
totalPostedJobs - Int!
|
Total number of jobs the client has posted |
totalSpent - Money
|
Total lifetime spend by the client |
verificationStatus - ClientVerificationStatus
|
Payment verification status of the client |
location - MarketPlaceJobSearchLocation
|
Client's location information |
totalReviews - Int!
|
Total number of reviews received by the client |
totalFeedback - Float!
|
Average feedback score received by the client |
companyRid - ID!
|
Company record identifier (RID) for the client |
companyName - String
|
Company name of the client Not supported anymore |
edcUserId - ID!
|
EDC user identifier for the client |
lastContractPlatform - String
|
Platform of the client's last contract |
lastContractRid - ID
|
Record identifier (RID) of the client's last contract |
lastContractTitle - String
|
Title of the client's last contract |
companyOrgUid - ID!
|
Organization UID of the client's company |
hasFinancialPrivacy - Boolean!
|
Whether the client has financial privacy enabled |
Example
{
"memberSinceDateTime": "xyz789",
"totalHires": 987,
"totalPostedJobs": 987,
"totalSpent": Money,
"verificationStatus": "VERIFIED",
"location": MarketPlaceJobSearchLocation,
"totalReviews": 987,
"totalFeedback": 123.45,
"companyRid": "4",
"companyName": "xyz789",
"edcUserId": 4,
"lastContractPlatform": "xyz789",
"lastContractRid": "4",
"lastContractTitle": "abc123",
"companyOrgUid": "4",
"hasFinancialPrivacy": false
}
MarketplaceJobPostingSearchConnection
Description
Connection for marketplace job posting search
Fields
| Field Name | Description |
|---|---|
totalCount - Int
|
Total number of results matching the query |
edges - [MarketplaceJobpostingSearchEdge]
|
Connection edges containing nodes and cursors |
pageInfo - PageInfo
|
Pagination information |
Example
{
"totalCount": 123,
"edges": [MarketplaceJobpostingSearchEdge],
"pageInfo": PageInfo
}
MarketplaceJobpostingSearchEdge
Description
Edge for marketplace job posting search results
Fields
| Field Name | Description |
|---|---|
cursor - String!
|
Cursor for pagination |
node - MarketplaceJobPostingSearchResult!
|
Search result node |
Example
{
"cursor": "abc123",
"node": MarketplaceJobPostingSearchResult
}
MarketplaceJobPostingSearchOccupation
MarketplaceJobPostingSearchOccupations
Description
Group of occupations associated with a search result
Fields
| Field Name | Description |
|---|---|
category - MarketplaceJobPostingSearchOccupation!
|
Top-level occupation category |
subCategories - [MarketplaceJobPostingSearchOccupation]
|
Subcategories under the category |
occupationService - MarketplaceJobPostingSearchOccupation
|
Specific service within the occupation |
Example
{
"category": MarketplaceJobPostingSearchOccupation,
"subCategories": [
MarketplaceJobPostingSearchOccupation
],
"occupationService": MarketplaceJobPostingSearchOccupation
}
MarketplaceJobPostingSearchRelevance
Description
Relevance metrics for a marketplace job posting search result
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Search result identifier |
effectiveCandidates - Int!
|
Number of candidates matching effectively |
recommendedEffectiveCandidates - Int!
|
Recommended effective candidates |
uniqueImpressions - Int!
|
Unique impressions count |
publishTime - String
|
Publish time of the job posting |
hoursInactive - Int!
|
Hours since the posting was last active |
Example
{
"id": 4,
"effectiveCandidates": 123,
"recommendedEffectiveCandidates": 123,
"uniqueImpressions": 987,
"publishTime": "xyz789",
"hoursInactive": 123
}
MarketplaceJobPostingSearchResult
Description
Search result entry for a marketplace job posting
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Search result identifier |
job - MarketplaceJobPosting
|
Linked job posting entity |
title - String!
|
Job title |
description - String!
|
Job description |
ciphertext - String!
|
Encrypted identifier of the job |
duration - JobDuration
|
Expected duration category |
durationLabel - String
|
Human-readable duration label |
engagement - String
|
Engagement string |
amount - Money!
|
Budget amount (Money) |
recordNumber - String!
|
Job record number |
experienceLevel - FreelancerProfileExperienceLevel!
|
Required experience level |
category - String
|
contractorTier Category name |
subcategory - String
|
Subcategory name |
freelancersToHire - Int!
|
Number of freelancers to hire |
relevance - MarketplaceJobPostingSearchRelevance!
|
Relevance metrics |
enterprise - Boolean!
|
True if enterprise job |
relevanceEncoded - String!
|
Encoded relevance payload |
totalApplicants - Int!
|
Count of total applicants |
preferredFreelancerLocation - [String]
|
Preferred freelancer location list |
preferredFreelancerLocationMandatory - Boolean
|
Whether location preference is mandatory |
premium - Boolean!
|
True if posting is premium |
clientNotSureFields - [String]
|
Client 'not sure' flags |
clientPrivateFields - [String]
|
Client private flags |
applied - Boolean!
|
True if current user applied |
createdDateTime - String!
|
Creation timestamp |
publishedDateTime - String!
|
Publish timestamp |
renewedDateTime - String
|
Last renewal timestamp |
client - MarketplaceJobPostingSearchClientInfo!
|
Client information |
skills - [MarketplaceJobPostingSearchSkill]!
|
Associated skills |
occupations - MarketplaceJobPostingSearchOccupations
|
Associated occupations |
hourlyBudgetType - JobPostingHourlyBudgetType
|
Hourly budget type |
hourlyBudgetMin - Money
|
Hourly budget minimum |
hourlyBudgetMax - Money
|
Hourly budget maximum |
localJobUserDistance - String
|
Distance for local jobs |
weeklyBudget - Money
|
Weekly budget amount |
engagementDuration - EngagementDuration
|
The value of weeks inside of engagementDuration is deprecated , you can get the right value by using either job->contractTerms->fixedPriceContractTerms->engagementDuration or job->contractTerms->hourlyContractTerms->engagementDuration based on contract type. |
totalFreelancersToHire - Int
|
|
teamId - ID
|
|
freelancerClientRelation - FreelancerClientRelation
|
Example
{
"id": 4,
"job": MarketplaceJobPosting,
"title": "xyz789",
"description": "xyz789",
"ciphertext": "abc123",
"duration": "WEEK",
"durationLabel": "xyz789",
"engagement": "abc123",
"amount": Money,
"recordNumber": "abc123",
"experienceLevel": "NONE",
"category": "abc123",
"subcategory": "abc123",
"freelancersToHire": 987,
"relevance": MarketplaceJobPostingSearchRelevance,
"enterprise": true,
"relevanceEncoded": "abc123",
"totalApplicants": 987,
"preferredFreelancerLocation": ["xyz789"],
"preferredFreelancerLocationMandatory": false,
"premium": true,
"clientNotSureFields": ["xyz789"],
"clientPrivateFields": ["xyz789"],
"applied": true,
"createdDateTime": "abc123",
"publishedDateTime": "xyz789",
"renewedDateTime": "abc123",
"client": MarketplaceJobPostingSearchClientInfo,
"skills": [MarketplaceJobPostingSearchSkill],
"occupations": MarketplaceJobPostingSearchOccupations,
"hourlyBudgetType": "DEFAULT",
"hourlyBudgetMin": Money,
"hourlyBudgetMax": Money,
"localJobUserDistance": "xyz789",
"weeklyBudget": Money,
"engagementDuration": EngagementDuration,
"totalFreelancersToHire": 987,
"teamId": 4,
"freelancerClientRelation": FreelancerClientRelation
}
MarketplaceJobPostingSearchSkill
Description
Skill metadata attached to a search result
Example
{
"id": "4",
"name": "xyz789",
"prettyName": "xyz789",
"highlighted": true
}
MarketplaceJobPostingSearchSortAttribute
Description
Sort attribute for marketplace job posting search
Fields
| Input Field | Description |
|---|---|
field - MarketplaceJobPostingSearchSortField!
|
Sort field |
Example
{"field": "RECENCY"}
MarketplaceJobPostingSearchSortField
Description
Sort fields for marketplace job posting search
Values
| Enum Value | Description |
|---|---|
|
|
Sort by recency (newest first) |
|
|
Sort by relevance score |
|
|
Sort by client total charge |
|
|
Sort by client rating |
Example
"RECENCY"
MarketplaceJobPostingSearchType
Description
context and method of the job search being executed
Values
| Enum Value | Description |
|---|---|
|
|
default search, will be always utilized when performing a user-initiated job search, any other value will be ignored |
|
|
retrieve saved searches No longer supported |
|
|
retrieve values in RSS feed integration intended format No longer supported |
Example
"USER_JOBS_SEARCH"
MarketPlaceJobSearchLocation
Description
Client location details shown in search results
Example
{
"city": "xyz789",
"country": "abc123",
"timezone": "xyz789",
"state": "abc123",
"offsetToUTC": "xyz789"
}
MarketplaceLocation
Description
Location constraints for marketplace
Fields
| Field Name | Description |
|---|---|
countries - [String!]
|
Allowed countries |
states - [String!]
|
Allowed states |
timezones - [String!]
|
Allowed timezones |
localCheckRequired - Boolean
|
Whether local check is required |
localMarket - Boolean
|
Whether local market only |
areas - [Area!]
|
Specific geographic areas |
notSureLocationPreference - Boolean
|
Client unsure about location preference |
localDescription - String
|
Description of local requirement |
localFlexibilityDescription - String
|
Description of location flexibility |
Example
{
"countries": ["xyz789"],
"states": ["abc123"],
"timezones": ["xyz789"],
"localCheckRequired": true,
"localMarket": true,
"areas": [Area],
"notSureLocationPreference": false,
"localDescription": "xyz789",
"localFlexibilityDescription": "abc123"
}
MarketplacePostingActivityStat
Description
Activity statistics for a marketplace job posting
Fields
| Field Name | Description |
|---|---|
applicationsBidStats - ApplicationsBidStats
|
Bid statistics |
jobActivity - JobActivity
|
Activity metrics |
Example
{
"applicationsBidStats": ApplicationsBidStats,
"jobActivity": JobActivity
}
MarketplacePostingAnnotations
Description
Annotations for a marketplace job posting
Fields
| Field Name | Description |
|---|---|
tags - [String!]
|
Tags associated with the posting |
customFields - [StringMapElement!]
|
Custom field key-value pairs |
Example
{
"tags": ["xyz789"],
"customFields": [StringMapElement]
}
MarketplacePostingAttachment
Description
Attachment metadata for marketplace job posting
Example
{
"id": 4,
"sequenceNumber": 987,
"fileName": "abc123",
"fileSize": 123
}
MarketplacePostingClassification
Description
Classification details of a marketplace job posting
Fields
| Field Name | Description |
|---|---|
category - JobCategory
|
Primary job category |
subCategory - JobCategory
|
Job subcategory |
occupation - Occupation
|
Occupation classification |
skills - [Skill!]
|
Core skills required |
additionalSkills - [Skill!]
|
Additional skills |
Example
{
"category": JobCategory,
"subCategory": JobCategory,
"occupation": Occupation,
"skills": [Skill],
"additionalSkills": [Skill]
}
MarketplacePostingOwnership
Description
Ownership of a marketplace job posting
Fields
| Field Name | Description |
|---|---|
company - GenericOrganization
|
Company owning the posting |
team - GenericOrganization
|
Team owning the posting |
Example
{
"company": GenericOrganization,
"team": GenericOrganization
}
MarketplacePostingWorkFlowState
Description
Workflow state of a marketplace job posting
Fields
| Field Name | Description |
|---|---|
closeResult - String
|
Result of closing action |
status - WorkFlowStateStatus!
|
Current workflow status |
Example
{
"closeResult": "xyz789",
"status": "CLOSED"
}
MarketplaceProposalRequirements
Description
Proposal requirements for a marketplace job posting
Fields
| Field Name | Description |
|---|---|
coverLetterRequired - Boolean
|
Whether cover letter is required |
freelancerMilestonesAllowed - Boolean
|
Whether freelancer can propose milestones |
screeningQuestions - [MarketplaceQuestion!]
|
List of screening questions |
Example
{
"coverLetterRequired": true,
"freelancerMilestonesAllowed": false,
"screeningQuestions": [MarketplaceQuestion]
}
MarketplacePublicCompanyInfo
Description
Public-facing company information used in marketplace search
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Company identifier |
legacyType - OrganizationLegacyType
|
Legacy organization type |
teamsEnabled - Boolean
|
Teams feature enabled flag |
canHire - Boolean
|
Whether the company can hire |
hidden - Boolean
|
Whether the company is hidden |
includeInStats - Boolean
|
Include company in statistics (deprecated) No longer available for orgs |
country - Country
|
Country |
state - String
|
State |
city - String
|
City |
timezone - String
|
Timezone |
accountingEntity - String
|
Accounting entity code |
billingType - BillingType
|
Billing type |
paymentVerification - PaymentVerificationResult
|
Payment verification details |
agencyDetails - AgencyDetails
|
Agency details if applicable |
Example
{
"id": "4",
"legacyType": "CLIENT",
"teamsEnabled": true,
"canHire": true,
"hidden": false,
"includeInStats": false,
"country": Country,
"state": "xyz789",
"city": "xyz789",
"timezone": "abc123",
"accountingEntity": "xyz789",
"billingType": "BILL",
"paymentVerification": PaymentVerificationResult,
"agencyDetails": AgencyDetails
}
MarketplaceQualification
Description
Qualification constraints for marketplace
Fields
| Field Name | Description |
|---|---|
contractorType - ContractorType
|
Type of contractor |
englishProficiency - EnglishProficiency
|
Required English proficiency |
hasPortfolio - Boolean
|
Whether portfolio is required |
hoursWorked - Int
|
Minimum hours worked on platform |
risingTalent - Boolean
|
Whether rising talent is preferred |
jobSuccessScore - Int
|
Minimum job success score |
minEarning - Earning
|
Minimum earnings requirement |
preferredGroups - [PreferredGroup!]
|
Preferred freelancer groups |
preferenceTests - [PreferredTest]
|
Preferred tests or certifications |
Example
{
"contractorType": "ALL",
"englishProficiency": "ANY",
"hasPortfolio": false,
"hoursWorked": 987,
"risingTalent": false,
"jobSuccessScore": 987,
"minEarning": "ANY",
"preferredGroups": [PreferredGroup],
"preferenceTests": [PreferredTest]
}
MarketplaceQuestion
MarketplaceSegmentationData
Description
Segmentation data for a marketplace job posting
Fields
| Field Name | Description |
|---|---|
segmentationValues - [MarketplaceSegmentationValue!]
|
Segmentation values for the posting |
Example
{"segmentationValues": [MarketplaceSegmentationValue]}
MarketplaceSegmentationInfo
Description
Segmentation info metadata
Example
{
"id": 4,
"label": "abc123",
"referenceName": "abc123",
"sortOrder": 987,
"segmentationType": SegmentationType,
"skill": Skill
}
MarketplaceSegmentationValue
Description
Segmentation value for a marketplace job posting
Fields
| Field Name | Description |
|---|---|
customValue - String
|
Custom value entered by client |
segmentationInfo - MarketplaceSegmentationInfo
|
Segmentation metadata |
Example
{
"customValue": "abc123",
"segmentationInfo": MarketplaceSegmentationInfo
}
OnSiteType
Description
On-site work requirement type
Values
| Enum Value | Description |
|---|---|
|
|
Fully remote |
|
|
Occasional on-site |
|
|
Permanent on-site |
Example
"REMOTE"
PreferredGroup
PreferredTest
ProposalsStatistics
Description
Aggregated proposal statistics
Fields
| Field Name | Description |
|---|---|
totalProposals - Int!
|
Total number of proposals |
totalMessaged - Int!
|
Total messaged proposals |
totalHired - Int!
|
Total hired |
totalInvitesSent - Int!
|
Total invites sent |
totalApplicantsWithAutoHidden - Int!
|
Total applicants with auto-hidden status |
totalArchived - Int!
|
Total archived proposals |
totalAutoHidden - Int!
|
Total auto-hidden proposals |
totalDeclined - Int!
|
Total declined proposals |
totalHidden - Int!
|
Total hidden proposals |
totalOffered - Int!
|
Total offers made |
totalShortlisted - Int!
|
Total shortlisted proposals |
totalWithdrawn - Int!
|
Total withdrawn proposals |
Example
{
"totalProposals": 987,
"totalMessaged": 987,
"totalHired": 123,
"totalInvitesSent": 987,
"totalApplicantsWithAutoHidden": 987,
"totalArchived": 987,
"totalAutoHidden": 987,
"totalDeclined": 123,
"totalHidden": 123,
"totalOffered": 987,
"totalShortlisted": 123,
"totalWithdrawn": 987
}
QuestionType
Description
Question type for screening
Values
| Enum Value | Description |
|---|---|
|
|
Experience-based question |
|
|
BPA v1 question type |
Example
"EXPERIENCE"
SandsJobPostRequest
Description
Skills and occupations data for job posting
Fields
| Input Field | Description |
|---|---|
occupationId - String
|
jobPostId: ID # the correct id will be provided by upstream Equal to services.id (eg Front-End Development) |
skills - [JobPostingSkillInput!]
|
List of skills |
status - SandsJobPostStatus
|
Job post status |
freetextOccupation - String
|
Free-text occupation description |
tags - [String!]
|
Tags for categorization |
additionalSkills - [JobPostingAdditionalSkillInput!]
|
Additional skills |
occupations - [ID!]
|
Occupation identifiers |
Example
{
"occupationId": "xyz789",
"skills": [JobPostingSkillInput],
"status": "DRAFT",
"freetextOccupation": "xyz789",
"tags": ["xyz789"],
"additionalSkills": [JobPostingAdditionalSkillInput],
"occupations": ["4"]
}
SandsJobPostStatus
Description
Status of a Sands job post
Values
| Enum Value | Description |
|---|---|
|
|
Job post is in draft state |
|
|
Job post is published |
Example
"DRAFT"
SearchTerm
Fields
| Input Field | Description |
|---|---|
andTerms_all - [String!]
|
Provides additional search terms to check for in a job detailed description. Results must contain all of the additional search terms |
orTerms_any - [String!]
|
Provides additional search terms to check for in a job detailed description. Results must contain at least one of the search terms |
exactTerms_any - [String!]
|
Identifies a phrase that all jobs in the search results must contain |
excludeTerms_any - [String!]
|
Identifies a word or phrase that should not appear in any job in the search results |
Example
{
"andTerms_all": ["abc123"],
"orTerms_any": ["xyz789"],
"exactTerms_any": ["abc123"],
"excludeTerms_any": ["xyz789"]
}
SegmentationType
WorkFlowStateStatus
Description
Workflow state status
Values
| Enum Value | Description |
|---|---|
|
|
Workflow closed |
|
|
Workflow active |
Example
"CLOSED"
Metadata
Country
Description
Information about a country
Fields
| Field Name | Description |
|---|---|
id - ID
|
Country identifier |
name - String
|
Geographical name of a country |
twoLetterAbbreviation - String
|
Official two-letter abbrevation of a country. i.e. iso2Code |
threeLetterAbbreviation - String
|
Official three-letter abbreviation of a country, i.e. iso3Code |
region - CountryRegion!
|
Region that country belongs to. Currently only EU is recognized |
phoneCode - String
|
International phone code |
relatedRegion - Region
|
Related geographic region |
relatedSubRegion - Region
|
Related geographic sub-region |
active - Boolean
|
Whether country is active |
registrationAllowed - Boolean
|
Whether registration is allowed in this country |
Example
{
"id": "4",
"name": "abc123",
"twoLetterAbbreviation": "xyz789",
"threeLetterAbbreviation": "abc123",
"region": "EU",
"phoneCode": "abc123",
"relatedRegion": Region,
"relatedSubRegion": Region,
"active": true,
"registrationAllowed": true
}
CountryRegion
Description
Country region classification
Values
| Enum Value | Description |
|---|---|
|
|
European Union |
|
|
Other regions |
Example
"EU"
ReasonsMetadata
Region
RequestMetadata
Description
Request metadata
Example
{"sudo": true, "internal": true}
TimeZoneRecord
Visitor
Description
Anonymous visitor data and segmentation information
Fields
| Field Name | Description |
|---|---|
i18n - VisitorI18N
|
Internationalization settings for a visitor based on country |
segment - VisitorSegment
|
Query to look up visitor segment data based on visitorId and the respective segment name |
Example
{
"i18n": VisitorI18N,
"segment": VisitorSegment
}
VisitorI18N
Description
Visitor internationalization settings including location and feature flags
Fields
| Field Name | Description |
|---|---|
countrySupported - Boolean
|
Whether the visitor's country is supported |
status - String
|
Current i18n status |
locationViewType - String
|
Type of location view to display |
userPreferredLocationType - String
|
User's preferred location type setting |
settingsFlags - VisitorI18NSettings
|
Feature flags for i18n settings |
Example
{
"countrySupported": true,
"status": "xyz789",
"locationViewType": "abc123",
"userPreferredLocationType": "xyz789",
"settingsFlags": VisitorI18NSettings
}
VisitorI18NSettings
Description
Feature flags controlling i18n-related UI elements
Fields
| Field Name | Description |
|---|---|
showDomesticLocationFilterOnFLSearch - Boolean
|
Show domestic location filter on freelancer search |
showJobSearch - Boolean
|
Show job search functionality |
showPhoneVerification - Boolean
|
Show phone verification prompt |
showSmfToUpdateAddress - Boolean
|
Show SMF to update address |
showPersonalAddressAutocomplete - Boolean
|
Show personal address autocomplete |
showMessageContainer - Boolean
|
Show message container |
showLocationPreferenceOnJobPost - Boolean
|
Show location preference on job post |
defaultDomesticEnabled - Boolean
|
Whether domestic location is enabled by default |
jobSearchDefaultedToON - Boolean
|
Whether job search is defaulted to ON |
showLocationVerificationOnFWH - Boolean
|
Show location verification on freelancer work history |
domesticEnabledForFreelancersOnFLSearch - Boolean
|
Whether domestic is enabled for freelancers on FL search |
Example
{
"showDomesticLocationFilterOnFLSearch": true,
"showJobSearch": true,
"showPhoneVerification": true,
"showSmfToUpdateAddress": true,
"showPersonalAddressAutocomplete": true,
"showMessageContainer": false,
"showLocationPreferenceOnJobPost": false,
"defaultDomesticEnabled": true,
"jobSearchDefaultedToON": true,
"showLocationVerificationOnFWH": true,
"domesticEnabledForFreelancersOnFLSearch": false
}
VisitorSegment
Description
Visitor segmentation data for behavioral or demographic categorization
Example
{
"visitorId": 4,
"segmentName": "xyz789",
"data": "xyz789"
}
Offers and Contracts
ActivateMilestoneInput
Actor
ActorType
Description
Actor type in offer workflow
Values
| Enum Value | Description |
|---|---|
|
|
System actor |
|
|
Agency manager |
|
|
Hiring manager |
|
|
Contact person |
Example
"System"
AgreementKind
Description
Agreement kind
Values
| Enum Value | Description |
|---|---|
|
|
Offer agreement |
|
|
Contract agreement |
Example
"Offer"
ApproveMilestoneInput
Description
Input for approving a milestone
Fields
| Input Field | Description |
|---|---|
id - ID!
|
Milestone ID |
paidAmount - String!
|
Amount is in cents. For example 1000 represents 10 USD |
bonusAmount - String
|
Amount is in cents. For example 1000 represents 10 USD |
paymentComment - String
|
A comment attached to the payment |
underpaymentReason - String
|
The reason for underpayment |
noteToContractor - String
|
Note to contractor |
Example
{
"id": 4,
"paidAmount": "abc123",
"bonusAmount": "abc123",
"paymentComment": "abc123",
"underpaymentReason": "abc123",
"noteToContractor": "xyz789"
}
ClientFeedback
Description
Client's feedback details
Example
{
"score": 987.65,
"comment": "abc123",
"freelancerResponse": "xyz789"
}
ClosingReason
Contract
Description
This schema represents contract data. Note: This is the legacy contract schema implementation, which has been modernized with the ContractDetails schema.
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Primary key of the contract. Equivalent to the ID of the contract term in ContractDetails. |
title - String
|
|
contractType - ContractType
|
|
job - MarketplaceJobPosting
|
Job rid |
hasAgency - Boolean
|
Provider has agency |
offer - Offer!
|
|
clientProposal - ClientProposal
|
|
vendorProposal - VendorProposal
|
Job Application associated with the contract |
weeklyChargeAmount - Money
|
|
weeklyHoursLimit - Float
|
|
hourlyChargeRate - Money
|
|
createdDateTime - String
|
|
firstContractStartDateTime - String
|
|
modifiedDateTime - String
|
|
startDateTime - String
|
|
endDateTime - String
|
|
manualTimeAllowed - Boolean
|
|
hideScreenshots - Boolean
|
Will be removed in future release |
last - Boolean
|
|
weeklyStipendHours - Float
|
|
estimatedDuration - ProposalEngagementDuration
|
Will be removed in future release |
status - ContractState
|
|
suspended - Boolean
|
Will be removed in future release, use developerSuspended/companySuspended in place |
freelancer - FreelancerProfile
|
|
paused - Boolean
|
|
clientCompany - PublicCompanyInfo
|
Public company information |
milestones - [Milestone]
|
Milestones associated with the offer |
contractId - ID
|
|
workDays - [WorkDay!]!
|
|
Arguments
|
|
workDiaryTimeCells - [WorkDiaryTimeCell!]
|
work diary of the current contract |
feedback - Feedback
|
Contract feedback summary |
Example
{
"id": 4,
"title": "abc123",
"contractType": "HOURLY",
"job": MarketplaceJobPosting,
"hasAgency": true,
"offer": Offer,
"clientProposal": ClientProposal,
"vendorProposal": VendorProposal,
"weeklyChargeAmount": Money,
"weeklyHoursLimit": 123.45,
"hourlyChargeRate": Money,
"createdDateTime": "abc123",
"firstContractStartDateTime": "xyz789",
"modifiedDateTime": "xyz789",
"startDateTime": "xyz789",
"endDateTime": "xyz789",
"manualTimeAllowed": false,
"hideScreenshots": false,
"last": true,
"weeklyStipendHours": 123.45,
"estimatedDuration": ProposalEngagementDuration,
"status": "ACTIVE",
"suspended": true,
"freelancer": FreelancerProfile,
"paused": true,
"clientCompany": PublicCompanyInfo,
"milestones": [Milestone],
"contractId": "4",
"workDays": [WorkDay],
"workDiaryTimeCells": [WorkDiaryTimeCell],
"feedback": Feedback
}
ContractActionResponse
Fields
| Field Name | Description |
|---|---|
success - Boolean!
|
Defines success status |
Example
{"success": false}
ContractDetails
Description
Contract details including parties, terms, and metadata
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Unique contract identifier (UID) |
title - String
|
Contract title shown to users |
status - ContractStatus
|
Current lifecycle status of the contract |
closingReason - ClosingReason
|
Reason explaining why the contract was closed |
deliveryModel - DeliveryModel
|
Delivery model for this contract (e.g., marketplace, catalog) |
kind - ContractKind
|
Contract kind/category (e.g., weekly retainer, payroll) |
isPtc - Boolean
|
Indicates if the contract belongs to a Private Talent Cloud |
createDate - String
|
dates Contract creation date |
modifyDate - String
|
Last modification date |
startDate - String
|
Contract start date |
endDate - String
|
Contract end date |
offer - Offer
|
offer and opening Offer associated with the contract |
offerId - ID
|
Offer identifier (UID) associated with the contract |
job - JobPosting!
|
Job posting associated with the contract |
freelancer - ContractUser!
|
contract vendor/freelancer data Freelancer party on the contract |
vendorOrganization - GenericOrganization!
|
Vendor organization associated with the freelancer |
vendorTeam - GenericOrganization!
|
Vendor team organization associated with the freelancer |
clientOrganization - GenericOrganization!
|
contract client and agency data Client organization on the contract |
clientTeam - GenericOrganization!
|
Client team organization on the contract |
hiringManager - ContractUser
|
Hiring manager for the contract |
agencyManager - ContractUser
|
Agency manager for the contract (if applicable) |
supervisor - ContractUser!
|
contract supervisor Current supervisor responsible for the contract |
changingUserType - CreatorType
|
contract changes Actor type of the last change (client, professional, system, etc.) |
changedBy - ContractUser
|
User who last changed the contract |
endedBy - ContractUser
|
User who ended the contract (if ended) |
metadata - ContractMetadata
|
Additional metadata for the contract |
hourlyLimits - [HourlyLimit]
|
contract terms Weekly hourly limit history for the contract |
terms - ContractTerms
|
Aggregated contract terms by engagement type |
projectId - ID
|
Project identifier (UID) associated with the contract |
Example
{
"id": "4",
"title": "abc123",
"status": "ACTIVE",
"closingReason": ClosingReason,
"deliveryModel": "TALENT_MARKETPLACE",
"kind": "WEEKLY_RETAINER",
"isPtc": true,
"createDate": "xyz789",
"modifyDate": "xyz789",
"startDate": "xyz789",
"endDate": "abc123",
"offer": Offer,
"offerId": 4,
"job": JobPosting,
"freelancer": ContractUser,
"vendorOrganization": GenericOrganization,
"vendorTeam": GenericOrganization,
"clientOrganization": GenericOrganization,
"clientTeam": GenericOrganization,
"hiringManager": ContractUser,
"agencyManager": ContractUser,
"supervisor": ContractUser,
"changingUserType": "CLIENT",
"changedBy": ContractUser,
"endedBy": ContractUser,
"metadata": ContractMetadata,
"hourlyLimits": [HourlyLimit],
"terms": ContractTerms,
"projectId": 4
}
ContractKind
Description
Business model of the contract
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"WEEKLY_RETAINER"
ContractList
Description
List of contract details entries
Fields
| Field Name | Description |
|---|---|
contracts - [ContractDetails]
|
Example
{"contracts": [ContractDetails]}
ContractMetadata
Description
Additional metadata flags for a contract
Fields
| Field Name | Description |
|---|---|
agencyContract - Boolean
|
Example
{"agencyContract": false}
ContractOfferConnection
Description
Paginated collection of contract offers
Fields
| Field Name | Description |
|---|---|
totalCount - Int
|
Total number of results |
edges - [ContractOfferEdge]
|
Connection edges |
pageInfo - PageInfo
|
Pagination information |
Example
{
"totalCount": 987,
"edges": [ContractOfferEdge],
"pageInfo": PageInfo
}
ContractOfferEdge
Description
Edge wrapper containing a contract offer node
Fields
| Field Name | Description |
|---|---|
cursor - String!
|
Pagination cursor |
node - ContractOfferResult
|
Contract offer result node |
Example
{
"cursor": "xyz789",
"node": ContractOfferResult
}
ContractOfferLastEvent
ContractOfferLegacyState
Description
Legacy offer state values
Values
| Enum Value | Description |
|---|---|
|
|
Draft state |
|
|
Draft changed |
|
|
New offer |
|
|
Offer accepted |
|
|
Offer declined |
|
|
Offer expired |
|
|
Offer withdrawn |
|
|
Offer changed |
|
|
Offer canceled |
|
|
Offer submitted |
Example
"Draft"
ContractOfferResult
Description
An intermediate search result that contains common information about contract and offer. It contains connection to respective contract / offer additional fields.
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Result identifier |
company - GenericOrganization!
|
Owner company |
team - GenericOrganization!
|
Owner team |
contactPerson - GenericUser!
|
Client side contact person for the offer |
freelancer - GenericUser!
|
Freelancer associated with the offer |
agency - GenericOrganization
|
Agency associated with the offer |
startDateTime - String!
|
ContractOffer start date time |
endDateTime - String
|
ContractOffer end date time |
type - ContractOfferType!
|
Type of the offer |
state - ContractOfferState!
|
Current state of the offer |
milestoneState - OfferMilestoneState
|
Current milestone state for fixed price offers |
escrowRefundStatus - EscrowRefundStatus
|
Status of the escrow refund |
title - String!
|
Title of the offer |
lastUpdatedDateTime - String!
|
Date Time when the offer updated for the last time |
lastPublishedDateTime - String
|
Date Time when the offer was published |
inPrivateTalentCloud - Boolean!
|
Whether in PTC |
offerCreatedDateTime - String!
|
Date Time when the offer was created |
offer - Offer
|
Details of the associated Offer |
contract - Contract
|
Details of the associated Contract. |
contractDetails - ContractDetails
|
ContractDetails of the associated Contract |
catalogProject - Boolean
|
Whether this is a catalog project |
Example
{
"id": "4",
"company": GenericOrganization,
"team": GenericOrganization,
"contactPerson": GenericUser,
"freelancer": GenericUser,
"agency": GenericOrganization,
"startDateTime": "xyz789",
"endDateTime": "abc123",
"type": "Hourly",
"state": "Pending",
"milestoneState": "NotFunded",
"escrowRefundStatus": "Open",
"title": "abc123",
"lastUpdatedDateTime": "xyz789",
"lastPublishedDateTime": "abc123",
"inPrivateTalentCloud": false,
"offerCreatedDateTime": "abc123",
"offer": Offer,
"contract": Contract,
"contractDetails": ContractDetails,
"catalogProject": false
}
ContractOfferState
Description
Contract offer state
Values
| Enum Value | Description |
|---|---|
|
|
Offer is pending |
|
|
Offer is active |
|
|
Offer is paused |
|
|
Offer has ended |
Example
"Pending"
ContractOfferTermsVersion
Description
Contract offer terms version
Values
| Enum Value | Description |
|---|---|
|
|
Version 1 |
|
|
Version 2 |
Example
"V1"
ContractOfferType
Description
Contract offer type
Values
| Enum Value | Description |
|---|---|
|
|
Hourly rate contract |
|
|
Fixed price contract |
Example
"Hourly"
ContractOfferVendorType
Description
Vendor type for contract offer
Values
| Enum Value | Description |
|---|---|
|
|
Individual freelancer |
|
|
Agency |
Example
"FREELANCER"
ContractOptionsInput
Description
Options controlling additional data in contract queries
Example
{"addTerms": false, "addHourLimits": false}
ContractPaging
ContractPagingInput
Description
Offset/limit pagination options for contract lists
Example
{"limit": 987, "offset": 987, "includeTotalCount": false}
ContractProposal
Description
Freelancers can propose a contract to a client
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Contract proposal identifier |
state - String!
|
Proposal state |
updatedDateTime - String!
|
Last updated timestamp |
createdDateTime - String!
|
Creation timestamp |
canClientOfferBeAccepted - Boolean!
|
Whether there is something that would prevent client offer from being accepted |
Example
{
"id": 4,
"state": "xyz789",
"updatedDateTime": "xyz789",
"createdDateTime": "xyz789",
"canClientOfferBeAccepted": true
}
ContractSearchResults
Description
Results of a contract search with paging information
Fields
| Field Name | Description |
|---|---|
paging - ContractPaging
|
Pagination details |
contracts - [ContractDetails]
|
Contracts returned by the search |
Example
{
"paging": ContractPaging,
"contracts": [ContractDetails]
}
ContractState
Description
Contract state values
Values
| Enum Value | Description |
|---|---|
|
|
Contract is active |
|
|
Contract is closed |
|
|
Contract is paused |
|
|
Contract is pending |
|
|
Contract is cancelled |
Example
"ACTIVE"
ContractStatus
Description
Current lifecycle status of a contract
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"ACTIVE"
ContractTerms
Description
Contract terms grouped by engagement model
Fields
| Field Name | Description |
|---|---|
fixedPriceTerms - [FixedPriceContractTerm]
|
Fixed-price terms history |
hourlyTerms - [HourlyContractTerm]
|
Hourly terms history |
stipendTerms - [StipendContractTerm]
|
Stipend terms history |
Example
{
"fixedPriceTerms": [FixedPriceContractTerm],
"hourlyTerms": [HourlyContractTerm],
"stipendTerms": [StipendContractTerm]
}
ContractUser
Description
Person referenced in a contract context
Fields
| Field Name | Description |
|---|---|
id - ID!
|
User identifier (UID) |
rid - ID!
|
User record identifier (RID) |
name - String
|
Display name (e.g., John S.) |
photoUrl - String
|
URL to the user's profile photo |
firstName - String
|
First name |
lastName - String
|
Last name |
address - UserLocation
|
Postal address |
email - String
|
Email address |
Example
{
"id": "4",
"rid": 4,
"name": "xyz789",
"photoUrl": "xyz789",
"firstName": "abc123",
"lastName": "abc123",
"address": UserLocation,
"email": "abc123"
}
CreateMilestoneInput
Description
Input for creating a milestone
Fields
| Input Field | Description |
|---|---|
offerId - ID
|
Related offer ID |
contractId - ID
|
Related contract ID |
description - String
|
Milestone description |
instruction - String
|
Applicable instruction |
depositAmount - String
|
Amount is in cents. For example 1000 represents 10 USD |
dueDate - String
|
Due date requirement |
attachmentIds - [ID!]
|
The list of attachments' IDs (For Internal Usage Only) |
Example
{
"offerId": 4,
"contractId": "4",
"description": "abc123",
"instruction": "xyz789",
"depositAmount": "abc123",
"dueDate": "xyz789",
"attachmentIds": ["4"]
}
CreateOfferDeliveryModelInput
Description
Delivery model options for offer creation
Values
| Enum Value | Description |
|---|---|
|
|
Talent marketplace delivery |
Example
"TalentMarketplace"
CreationOfferInput
Description
Input for creating an offer
Fields
| Input Field | Description |
|---|---|
interactive - Boolean
|
Whether offer creation is interactive. Default = true |
idempotencyKey - String
|
Idempotency key for request deduplication |
ignoreTestAccount - Boolean
|
Whether to ignore test account checks |
kind - OfferKindInput!
|
Kind of offer being created |
offeror - OfferorInput!
|
Who is making the offer |
clientTeamId - ID!
|
Client team identifier |
vendorUser - VendorUserInput!
|
Vendor user information |
metadata - OfferMetadataInput!
|
Offer metadata |
attachments - [String!]
|
Attachment identifiers. Default = [] |
title - String!
|
Offer title |
description - String
|
Offer description |
contractStartDateTime - String
|
required for Enterprise offers, optional for marketplace offers |
contractEndDateTime - String
|
required for Enterprise Compliance offers (and must not be more than 180 days into the future from the start date); optional (and ignored) for others |
hourlyRateTerms - OfferHourlyRateTerms
|
Hourly rate terms |
stipendTerms - OfferStipendTerms
|
Stipend terms |
milestoneTerms - OfferMilestoneTerms
|
Milestone terms |
deliveryModel - CreateOfferDeliveryModelInput!
|
Delivery model |
closeOnAccept - Boolean
|
False by default. Default = false |
scheduledRateIncrease - OfferScheduledRateIncreaseInput
|
only allowed for Marketplace offers |
customFields - [StringMapElementInput]
|
Custom fields |
offerLocation - OfferLocationInput
|
Offer location details |
offerPayroll - OfferPayrollInput
|
Offer payroll details |
Example
{
"interactive": false,
"idempotencyKey": "abc123",
"ignoreTestAccount": false,
"kind": "Vanilla",
"offeror": "Client",
"clientTeamId": "4",
"vendorUser": VendorUserInput,
"metadata": OfferMetadataInput,
"attachments": ["abc123"],
"title": "xyz789",
"description": "xyz789",
"contractStartDateTime": "xyz789",
"contractEndDateTime": "abc123",
"hourlyRateTerms": OfferHourlyRateTerms,
"stipendTerms": OfferStipendTerms,
"milestoneTerms": OfferMilestoneTerms,
"deliveryModel": "TalentMarketplace",
"closeOnAccept": false,
"scheduledRateIncrease": OfferScheduledRateIncreaseInput,
"customFields": [StringMapElementInput],
"offerLocation": OfferLocationInput,
"offerPayroll": OfferPayrollInput
}
CreatorType
Description
Actor type associated with contract changes and events
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"CLIENT"
CustomFields
Fields
| Field Name | Description |
|---|---|
responseId - ID
|
unique identification for the response |
id - ID
|
unique identification for the custom field |
itemId - ID
|
if the response belongs to a dropdown type, item id refers to the custom field dropdown item primary key, unique identification for the dropdown item |
typeSnap - CustomFieldsTypeSnap
|
type snap |
labelSnap - String
|
label snap |
displayValueSnap - String
|
display value snap |
creator - GenericUser
|
custom field creator |
createdDateTime - DateTime
|
creation date dime use firstContractId |
rollupAssignmentId - ID
|
|
firstContractId - ID
|
top level (first contract in chain of contracts) contract. rate changes on this contract will preserve the rollup in the new contract |
offerId - ID
|
offer id |
jobPostingId - ID
|
job posting id |
byoInvitationId - ID
|
for bringYourOwnFreelancer. since the offer doesn't exist yet at time of invite, it's stored against the byo invite and saved to the offer, then contract by the byo service when the invitation has been responded to |
buyItNowId - ID
|
for buy it now - the predefined work package |
questionnaireResponsesId - ID
|
for classif and fl/cl questionnaires which use custom fields as their storage backend |
stale - Boolean
|
stale flag |
termSectionId - ID
|
for default terms. used by the default terms system within enterprise |
aclSnap - String
|
acl Snapshot indiciating the custom field access level. Possible values are 1. COMPANY, 2. TEAM: |
Example
{
"responseId": "4",
"id": "4",
"itemId": 4,
"typeSnap": "TEXT_FIELD",
"labelSnap": "abc123",
"displayValueSnap": "abc123",
"creator": GenericUser,
"createdDateTime": DateTime,
"rollupAssignmentId": "4",
"firstContractId": "4",
"offerId": 4,
"jobPostingId": 4,
"byoInvitationId": 4,
"buyItNowId": "4",
"questionnaireResponsesId": "4",
"stale": true,
"termSectionId": 4,
"aclSnap": "xyz789"
}
CustomFieldsConnection
Description
Custom field connection
Fields
| Field Name | Description |
|---|---|
edges - [CustomFieldsEdge]
|
Connection edges for paginated results |
pageInfo - PageInfo
|
Pagination information |
Example
{
"edges": [CustomFieldsEdge],
"pageInfo": PageInfo
}
CustomFieldsEdge
Description
Custom field connection edge
Fields
| Field Name | Description |
|---|---|
cursor - String!
|
Cursor for the edge |
node - CustomFields
|
Node containing a custom field snapshot |
Example
{
"cursor": "abc123",
"node": CustomFields
}
CustomFieldsInput
Description
custom fields input parameters
Fields
| Input Field | Description |
|---|---|
responseIds - [ID!]
|
each id is a unique identification for the response |
ids - [ID!]
|
each id is a unique identification for the custom field |
itemIds - [ID!]
|
for each id if the response belongs to a dropdown type, item id refers to the custom field dropdown item primary key, unique identification for the dropdown item |
rollupAssignmentIds - [ID!]
|
each id poitns to top level (first contract in chain of contracts) contract. rate changes on this contract will preserve the rollup in the new contract deprecated(reason: "use firstContractIds") |
firstContractIds - [ID!]
|
each id poitns to top level (first contract in chain of contracts) contract. rate changes on this contract will preserve the rollup in the new contract. created to be used instead of rollupAssignmentIds & take precedence of that field if specified |
offerIds - [ID!]
|
offers ids |
jobPostingIds - [ID!]
|
job posting ids |
byoInvitationIds - [ID!]
|
each id is for bringYourOwnFreelancer. since the offer doesn't exist yet at time of invite, it's stored against the byo invite and saved to the offer, then contract by the byo service when the invitation has been responded to |
buyItNowIds - [ID!]
|
each id is for buy it now - the predefined work package |
questionnaireResponsesIds - [ID!]
|
each id points to classif and fl/cl questionnaires which use custom fields as their storage backend |
organizationIds - [ID!]
|
If organizationIds are specified, only responses belonging to custom fields accessible by hiring managers in the specified teams will be returned. These organizationIds can be 'team OrganizationIds' or 'root organizationId'. Custom fields that are accessible/visible through out the COMPANY are always included in the response. |
Example
{
"responseIds": ["4"],
"ids": [4],
"itemIds": ["4"],
"rollupAssignmentIds": ["4"],
"firstContractIds": [4],
"offerIds": [4],
"jobPostingIds": [4],
"byoInvitationIds": [4],
"buyItNowIds": [4],
"questionnaireResponsesIds": ["4"],
"organizationIds": [4]
}
CustomFieldsTypeSnap
Description
Snapshot of custom field type metadata
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"TEXT_FIELD"
DeleteMilestoneInput
Description
Input for deleting a milestone
Fields
| Input Field | Description |
|---|---|
id - ID!
|
Milestone ID |
Example
{"id": "4"}
DeliveryModel
Description
Delivery models supported for contracts
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"TALENT_MARKETPLACE"
EditMilestoneInput
Description
Input for editing a milestone
Fields
| Input Field | Description |
|---|---|
id - ID!
|
Milestone ID |
description - String
|
Milestone description |
instructions - String
|
Application instructions |
depositAmount - String
|
Amount is in cents. For example 1000 represents 10 USD |
dueDate - String
|
Due date requirement |
attachments - [ID!]
|
The list of attachments' IDs (For Internal Usage Only) |
message - String
|
Attached message |
sequenceId - Int
|
Sequence ID |
Example
{
"id": "4",
"description": "abc123",
"instructions": "abc123",
"depositAmount": "xyz789",
"dueDate": "xyz789",
"attachments": ["4"],
"message": "abc123",
"sequenceId": 987
}
EndContractInput
Fields
| Input Field | Description |
|---|---|
endDate - String
|
End contract date (timestamp) defaults to the current day |
feedbackInfo - FeedbackInfoInput
|
Feedback provided as part of end-of-contract action |
reasonRef - String!
|
Contract end reason ID. Optional. See Query.reasons(reasonType: CONTRACT_END_HOURLY) and Query.reasons(reasonType: CONTRACT_END_FIXED) for the list of possible reasons. |
Example
{
"endDate": "abc123",
"feedbackInfo": FeedbackInfoInput,
"reasonRef": "xyz789"
}
EscrowRefundStatus
Description
Escrow refund status
Values
| Enum Value | Description |
|---|---|
|
|
Refund is open |
|
|
Refund is disputed |
|
|
Refund accepted |
|
|
Refund expired |
Example
"Open"
Feedback
Description
Client and freelancer feedback for a contract
Fields
| Field Name | Description |
|---|---|
clientFeedback - ClientFeedback
|
Feedback provided by the client about the freelancer |
freelancerFeedback - FreelancerFeedback
|
Feedback provided by the freelancer about the client |
Example
{
"clientFeedback": ClientFeedback,
"freelancerFeedback": FreelancerFeedback
}
FeedbackInfoInput
Example
{
"availabilityScore": 123,
"comment": "abc123",
"communicationScore": 987,
"cooperationScore": 987,
"deadlinesScore": 987,
"qualityScore": 987,
"skillsScore": 987
}
FixedPriceContractTerm
Description
Fixed price contract term including amounts and milestones
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Term identifier (UID) |
fpCharge - Money
|
Fixed price charge amount |
fixedAmount - Money
|
Fixed amount agreed for the term |
createDate - String
|
Creation date of the term |
modifyDate - String
|
Last modification date of the term |
changeDate - String
|
Effective change date |
createdBy - ContractUser
|
User who created the term |
creatorUserType - CreatorType
|
Actor type for the creator |
changedBy - ContractUser
|
User who last changed the term |
startDate - String
|
Start date of the term |
changingUserType - CreatorType
|
Actor type for the last change |
isFP2 - Boolean
|
Indicates usage of FP2 |
endDate - String
|
End date of the term |
jobType - JobType
|
Engagement payment type for the term |
ptcData - PtcData
|
Protected time calculation period |
milestones - [Milestone]
|
Milestones under this fixed-price term |
Example
{
"id": 4,
"fpCharge": Money,
"fixedAmount": Money,
"createDate": "abc123",
"modifyDate": "abc123",
"changeDate": "xyz789",
"createdBy": ContractUser,
"creatorUserType": "CLIENT",
"changedBy": ContractUser,
"startDate": "xyz789",
"changingUserType": "CLIENT",
"isFP2": false,
"endDate": "xyz789",
"jobType": "FIXED",
"ptcData": PtcData,
"milestones": [Milestone]
}
FixedPriceTerm
Description
Terms for fixed priced offer
Fields
| Field Name | Description |
|---|---|
budget - Money
|
Fixed price budget |
Example
{"budget": Money}
FreelancerFeedback
Description
Freelancer's feedback details
Example
{
"score": 987.65,
"comment": "xyz789",
"clientResponse": "xyz789",
"recommendScore": 987
}
HourlyContractTerm
Description
Hourly contract term including rate and dates
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Term identifier (UID) |
hourlyRate - Money
|
Hourly rate applied during the term |
createDate - String
|
Creation date of the term |
modifyDate - String
|
Last modification date of the term |
changeDate - String
|
Effective change date |
createdBy - ContractUser
|
User who created the term |
creatorUserType - CreatorType
|
Actor type for the creator |
changedBy - ContractUser
|
User who last changed the term |
startDate - String
|
Start date of the term |
changingUserType - CreatorType
|
Actor type for the last change |
manualTimeAllowed - Boolean
|
Whether manual time is allowed during the term |
endDate - String
|
End date of the term |
jobType - JobType
|
Engagement payment type for the term |
ptcData - PtcData
|
Protected time calculation period |
Example
{
"id": "4",
"hourlyRate": Money,
"createDate": "xyz789",
"modifyDate": "abc123",
"changeDate": "xyz789",
"createdBy": ContractUser,
"creatorUserType": "CLIENT",
"changedBy": ContractUser,
"startDate": "abc123",
"changingUserType": "CLIENT",
"manualTimeAllowed": false,
"endDate": "xyz789",
"jobType": "FIXED",
"ptcData": PtcData
}
HourlyLimit
Description
Weekly hourly limit period and identifiers
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Hourly limit record identifier (UID) |
weeklyLimit - String
|
Maximum weekly hours permitted |
createDate - String
|
Record creation date |
modifyDate - String
|
Last modification date |
startDate - String
|
Period start date |
endDate - String
|
Period end date |
legacyId - Int
|
Legacy identifier (integer) |
Example
{
"id": "4",
"weeklyLimit": "xyz789",
"createDate": "abc123",
"modifyDate": "abc123",
"startDate": "abc123",
"endDate": "abc123",
"legacyId": 123
}
HourlyTerms
Description
Terms for hourly rate offer
Fields
| Field Name | Description |
|---|---|
rate - Money
|
Hourly rate amount |
weeklyHoursLimit - Int
|
Max hours can be worked for a week |
weeklyStipend - Money
|
Weekly stipend amount, if in stipened mode Will be removed in future release, use modernized StipendTerms |
manualTimeAllowed - Boolean
|
Flag to indicate whether manual time log is allowed |
Example
{
"rate": Money,
"weeklyHoursLimit": 987,
"weeklyStipend": Money,
"manualTimeAllowed": true
}
JobType
Description
Engagement payment type associated with a contract
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"FIXED"
Metadata
Description
Offer metadata
Fields
| Field Name | Description |
|---|---|
sourceType - SourceType
|
the source type |
sourceId - ID
|
source id, it could be empty according the case |
data - String
|
data in a json format |
occupationUid - ID
|
occupation uid |
Example
{
"sourceType": "JobPosting",
"sourceId": 4,
"data": "xyz789",
"occupationUid": 4
}
Milestone
Description
Milestone information for fixed-price contracts
Fields
| Field Name | Description |
|---|---|
id - ID!
|
ID of the milestone |
createdBy - GenericUser
|
User information who created the milestone |
dueDateTime - String
|
Due date time of the milestone |
state - OfferMilestoneState
|
Current state of the offer |
description - String
|
Description available with the milestone |
currentEscrowAmount - Money
|
Current escrow amount |
depositAmount - Money
|
Deposit amount |
fundedAmount - Money
|
Funded amount |
paid - Money
|
Amount paid |
overpayment - Money
|
Overpayment amount |
bonus - Money
|
Bonus amount |
previousMilestoneUnusedDeposit - Money
|
Unused deposit from previous milestone |
submissionCount - Int
|
Number of submissions |
sequenceId - Int
|
The sequence in which the milestone is to be executed |
payComments - String
|
Payment comments |
lastSubmissionCreatedTime - String
|
Last submission creation time |
createdDateTime - String
|
Creation date for the milestone |
modifiedDateTime - String
|
Update date for the milestone |
instructions - String
|
Milestone instructions |
submissionEvents - [SubmissionEvent!]!
|
Submission events |
Example
{
"id": "4",
"createdBy": GenericUser,
"dueDateTime": "abc123",
"state": "NotFunded",
"description": "abc123",
"currentEscrowAmount": Money,
"depositAmount": Money,
"fundedAmount": Money,
"paid": Money,
"overpayment": Money,
"bonus": Money,
"previousMilestoneUnusedDeposit": Money,
"submissionCount": 987,
"sequenceId": 987,
"payComments": "abc123",
"lastSubmissionCreatedTime": "abc123",
"createdDateTime": "xyz789",
"modifiedDateTime": "abc123",
"instructions": "abc123",
"submissionEvents": [SubmissionEvent]
}
MilestoneRejectionResponse
Description
Result of milestone rejection request
Fields
| Field Name | Description |
|---|---|
response - Boolean
|
Whether rejection was successful |
Example
{"response": false}
MilestoneTerms
Description
Terms for milestones (AKA Fixed priced)
Fields
| Field Name | Description |
|---|---|
budget - Money
|
Hourly rate amount |
milestones - [Milestone!]
|
milestone list |
Example
{
"budget": Money,
"milestones": [Milestone]
}
ModernizedContractOffer
Description
Modernized contract offer details
Fields
| Field Name | Description |
|---|---|
id - ID!
|
offer id |
kind - OfferKind
|
kind |
offeror - Offeror
|
who creates the offer |
clientUserId - ID!
|
client user id |
clientTeamId - ID!
|
client team uid |
clientOrgId - ID
|
client org uid |
vendorUserId - ID!
|
vendor uid |
vendorTeamId - ID
|
vendor team uid, in case of agency |
vendorOrgId - ID
|
vendor org ui, it could be the sole propriator |
actors - [Actor]
|
other participants in the offer |
metadata - Metadata
|
metadata associated to the offer |
expirationDateTime - String
|
expiration time |
title - String!
|
title |
description - String
|
offer's description |
attachments - [ID]
|
attachments |
contractStartDateTime - String
|
contract start date |
contractEndDateTime - String
|
contract end date |
hourlyRateTerms - HourlyTerms
|
hourly terms |
stipendTerms - StipendTerms
|
stipend terms |
milestoneTerms - MilestoneTerms
|
milestone terms |
deliveryModel - OfferDeliveryModel
|
Delivery model |
state - WorkflowOfferState!
|
offer state |
instanceId - ID
|
the current offer id |
staffingManagerId - ID
|
staffing manager uid |
contractId - ID
|
contract id associated to the offer, once offer is accepted |
agencyRootCompanyId - ID
|
agency root organization id |
type - ContractOfferType
|
Type of the offer |
vendorType - ContractOfferVendorType
|
Vendor type of offer |
termsVersion - ContractOfferTermsVersion
|
Term Version of offer |
legacyState - ContractOfferLegacyState
|
legacy State of offer |
previousOfferId - ID
|
Previous offer id |
newOfferId - ID
|
New Offer Id |
closePostingUponAccept - Boolean
|
Close Posting upon to Accept |
lastEvent - ContractOfferLastEvent
|
Last event on offer |
createdDateTime - String
|
The creation date of the offer |
Example
{
"id": 4,
"kind": "HourlyPack",
"offeror": "Client",
"clientUserId": 4,
"clientTeamId": "4",
"clientOrgId": 4,
"vendorUserId": 4,
"vendorTeamId": "4",
"vendorOrgId": 4,
"actors": [Actor],
"metadata": Metadata,
"expirationDateTime": "abc123",
"title": "xyz789",
"description": "abc123",
"attachments": ["4"],
"contractStartDateTime": "abc123",
"contractEndDateTime": "abc123",
"hourlyRateTerms": HourlyTerms,
"stipendTerms": StipendTerms,
"milestoneTerms": MilestoneTerms,
"deliveryModel": "TalentMarketplace",
"state": "Submitted",
"instanceId": "4",
"staffingManagerId": 4,
"contractId": 4,
"agencyRootCompanyId": 4,
"type": "Hourly",
"vendorType": "FREELANCER",
"termsVersion": "V1",
"legacyState": "Draft",
"previousOfferId": 4,
"newOfferId": "4",
"closePostingUponAccept": false,
"lastEvent": ContractOfferLastEvent,
"createdDateTime": "abc123"
}
ModernizedContractOfferList
Description
List of modernized contract offers
Fields
| Field Name | Description |
|---|---|
offers - [ModernizedContractOffer]
|
list of offers |
Example
{"offers": [ModernizedContractOffer]}
ModernizedOffer
Description
Modernized offer details
Fields
| Field Name | Description |
|---|---|
id - ID!
|
offer id |
kind - OfferKind
|
kind |
offeror - Offeror
|
who creates the offer |
clientUserId - ID!
|
client user id |
clientTeamId - ID!
|
client team uid |
clientOrgId - ID
|
client org uid |
vendorUserId - ID!
|
vendor uid |
vendorTeamId - ID
|
vendor team uid, in case of agency |
vendorOrgId - ID
|
vendor org ui, it could be the sole propriator |
actors - [Actor]
|
other participants in the offer |
metadata - Metadata
|
metadata associated to the offer |
expirationDateTime - String
|
expiration time |
title - String!
|
title |
description - String
|
offer's description |
attachments - [ID]
|
attachments |
contractStartDateTime - String
|
contract start date |
contractEndDateTime - String
|
contract end date |
hourlyRateTerms - HourlyTerms
|
hourly terms |
stipendTerms - StipendTerms
|
stipend terms |
milestoneTerms - MilestoneTerms
|
milestone terms |
deliveryModel - OfferDeliveryModel
|
Delivery model |
state - WorkflowOfferState!
|
offer state |
staffingManagerId - ID
|
staffing manager uid |
contractId - ID
|
contract id associated to the offer, once offer is accepted |
agencyRootCompanyId - ID
|
agency root organization id |
instanceId - ID
|
the current offer id |
client - GenericOrganization!
|
Connection to the client associated with the offer |
clientCompany - PublicCompanyInfo
|
Public company information |
createdDateTime - String
|
The creation date of the offer |
lastEvent - OfferLastEvent
|
Last event on offer |
Example
{
"id": 4,
"kind": "HourlyPack",
"offeror": "Client",
"clientUserId": "4",
"clientTeamId": "4",
"clientOrgId": "4",
"vendorUserId": 4,
"vendorTeamId": 4,
"vendorOrgId": "4",
"actors": [Actor],
"metadata": Metadata,
"expirationDateTime": "abc123",
"title": "abc123",
"description": "xyz789",
"attachments": [4],
"contractStartDateTime": "xyz789",
"contractEndDateTime": "xyz789",
"hourlyRateTerms": HourlyTerms,
"stipendTerms": StipendTerms,
"milestoneTerms": MilestoneTerms,
"deliveryModel": "TalentMarketplace",
"state": "Submitted",
"staffingManagerId": 4,
"contractId": "4",
"agencyRootCompanyId": 4,
"instanceId": "4",
"client": GenericOrganization,
"clientCompany": PublicCompanyInfo,
"createdDateTime": "abc123",
"lastEvent": OfferLastEvent
}
NotificationsInput
Offer
Description
Details information about offer
Fields
| Field Name | Description |
|---|---|
id - ID!
|
ID of the offer |
title - String!
|
Title of the offer |
description - String
|
Description of the offer |
type - OfferType!
|
Type of the offer like Hourley/Fixed price etc. |
job - MarketplaceJobPosting
|
Job post associated with the offer |
vendorProposal - VendorProposal
|
Job Application associated with the offer |
closeJobPostingOnAccept - Boolean!
|
Flag to indicate whether posting will be closed when offer is accepted |
client - GenericOrganization!
|
Connection to the client associated with the offer |
offerTerms - OfferTerms!
|
Terms associated with the offer |
messageToContractor - String
|
Message for the contractor |
state - OfferState
|
Current sate of the offer like, new, accepted, declined etc. |
offerFeatures - OfferFeatures
|
Different features of the enterprise related offer |
clientCompany - PublicCompanyInfo
|
Public company information |
milestones - [Milestone]
|
Milestones associated with the offer |
createdUsingBYOFlow - Boolean!
|
was this offer created via the Bring Your Own Freelancer flow |
freelancer - FreelancerProfile!
|
Freelancer profile associated to the offer |
payrollOffer - Boolean
|
Flag to indicate whether this is a payroll offer |
deliveryModel - OfferDeliveryModel
|
Delivery model |
customFields - CustomFieldsConnection
|
Custom fields attached to this particular Offer. The response can optionally be filtered by organizationIds. If organizationIds are specified, only responses of custom fields accessible by hiring managers in the specified teams will be returned. These organizationIds can be 'team OrganizationIds' or 'root organizationId'. Custom fields that are accessible/visible through out the COMPANY are always included in the response. |
Arguments
|
|
Example
{
"id": "4",
"title": "abc123",
"description": "abc123",
"type": "MARKET_PLACE_HOURLY",
"job": MarketplaceJobPosting,
"vendorProposal": VendorProposal,
"closeJobPostingOnAccept": true,
"client": GenericOrganization,
"offerTerms": OfferTerms,
"messageToContractor": "xyz789",
"state": "DRAFT",
"offerFeatures": OfferFeatures,
"clientCompany": PublicCompanyInfo,
"milestones": [Milestone],
"createdUsingBYOFlow": false,
"freelancer": FreelancerProfile,
"payrollOffer": false,
"deliveryModel": "TalentMarketplace",
"customFields": CustomFieldsConnection
}
OfferAddressInput
OfferByClientFilter
Description
Filter for offers by client
Fields
| Input Field | Description |
|---|---|
teamId_any - [ID!]
|
Filter by team IDs |
contactPersonId_any - [ID!]
|
Filter by contact person IDs |
offerType_any - [ContractOfferType!]
|
Filter by offer types |
milestoneState_any - [OfferMilestoneState!]
|
Filter by milestone states |
escrowRefundStatus_any - [EscrowRefundStatus!]
|
Filter by escrow refund statuses |
freelancerId_any - [ID!]
|
Filter by freelancer IDs |
agreementKind_any - [AgreementKind!]
|
Filter by agreement kinds |
commonFilter - OfferSearchCommonFilter
|
Common filter criteria |
Example
{
"teamId_any": [4],
"contactPersonId_any": ["4"],
"offerType_any": ["Hourly"],
"milestoneState_any": ["NotFunded"],
"escrowRefundStatus_any": ["Open"],
"freelancerId_any": [4],
"agreementKind_any": ["Offer"],
"commonFilter": OfferSearchCommonFilter
}
OfferByRootCompanyFilter
Description
Filter for offers by root company
Fields
| Input Field | Description |
|---|---|
freelancerId_any - [ID!]
|
Filter by freelancer IDs |
agencyTeamOrgId_any - [ID!]
|
Filter by agency team organization IDs |
clientOrgId_any - [ID!]
|
Filter by client organization IDs |
commonFilter - OfferSearchCommonFilter
|
Common filter criteria |
Example
{
"freelancerId_any": ["4"],
"agencyTeamOrgId_any": ["4"],
"clientOrgId_any": ["4"],
"commonFilter": OfferSearchCommonFilter
}
OfferCreationResponse
Description
Response from offer creation
Fields
| Field Name | Description |
|---|---|
offer - ModernizedOffer
|
Created offer |
Example
{"offer": ModernizedOffer}
OfferDeliveryModel
Description
Offer delivery model
Values
| Enum Value | Description |
|---|---|
|
|
Talent marketplace delivery |
|
|
Catalog project delivery |
|
|
Upwork remote delivery |
|
|
Talent scout delivery |
|
|
Direct contract delivery |
|
|
Micro payments delivery |
|
|
Direct contract V2 delivery |
|
|
Manage and pay delivery |
|
|
Outcome contract delivery |
|
|
Unknown delivery model |
Example
"TalentMarketplace"
OfferFeatures
Description
Features associated with the enterprise related offer
Fields
| Field Name | Description |
|---|---|
purchaseOrder - PurchaseOrder
|
Purchase order information |
privateTalentCloud - PrivateTalentCloud
|
Private talent cloud information |
onSiteType - OfferWorkType
|
On-site work type requirement |
country - Country
|
Country requirement |
state - String
|
State requirement |
localDescription - String
|
Local work description |
localFlexibilityDescription - String
|
Local flexibility description |
eor - Boolean
|
"Employer of Record" referred to as the W-2 Employer of Record because they are responsible for issuing W-2s (Wage and Tax Statement) to the employee shoulders the responsibility for all the traditional employment tasks and liabilities. When the invited freelancer accepts this invitation, the freelancer is added to the specific Upwork agency entity as a contractor |
Example
{
"purchaseOrder": PurchaseOrder,
"privateTalentCloud": PrivateTalentCloud,
"onSiteType": "REMOTE",
"country": Country,
"state": "abc123",
"localDescription": "xyz789",
"localFlexibilityDescription": "xyz789",
"eor": true
}
OfferForFreelancerFilter
Description
Filter for offers for freelancer
Fields
| Input Field | Description |
|---|---|
agencyRootCompanyOrgId_any - [ID!]
|
Filter by agency root company organization IDs |
agencyTeamOrgId_any - [ID!]
|
Filter by agency team organization IDs |
clientOrgId_any - [ID!]
|
Filter by client organization IDs |
commonFilter - OfferSearchCommonFilter
|
Common filter criteria |
Example
{
"agencyRootCompanyOrgId_any": ["4"],
"agencyTeamOrgId_any": [4],
"clientOrgId_any": [4],
"commonFilter": OfferSearchCommonFilter
}
OfferHourlyRateTerms
Description
Hourly rate terms for hourly offers
Fields
| Input Field | Description |
|---|---|
vendorRate - MoneyInput!
|
Hourly rate associated with the offer, currency amount in the lowest currency denominations (so USD 49.12 would be 4912) |
weeklyLimit - String
|
Max hour can be logged per week, note: "0" and null/"not set" has different meanings, |
manualTimeAllowed - Boolean
|
Whether manual time entry is allowed. Default = false |
Example
{
"vendorRate": MoneyInput,
"weeklyLimit": "abc123",
"manualTimeAllowed": true
}
OfferKind
Description
Offer kind types
Values
| Enum Value | Description |
|---|---|
|
|
Hourly pack offer |
|
|
Weekly retainer offer |
|
|
Vanilla offer |
|
|
Payroll enterprise offer |
|
|
Bring your own offer |
|
|
Enterprise offer |
|
|
Payroll remote offer |
Example
"HourlyPack"
OfferKindInput
Description
Offer kind types
Values
| Enum Value | Description |
|---|---|
|
|
Standard marketplace offer |
|
|
Enterprise |
Example
"Vanilla"
OfferLastEvent
OfferLegacyState
Description
Legacy offer state values
Values
| Enum Value | Description |
|---|---|
|
|
Draft state |
|
|
Draft changed |
|
|
New offer |
|
|
Offer accepted |
|
|
Offer declined |
|
|
Offer expired |
|
|
Offer withdrawn |
|
|
Offer changed |
|
|
Offer canceled |
|
|
Offer submitted |
Example
"Draft"
OfferList
Description
List of offers
Fields
| Field Name | Description |
|---|---|
offers - [Offer]
|
list of offers |
Example
{"offers": [Offer]}
OfferLocationInput
Description
Location information for offer
Fields
| Input Field | Description |
|---|---|
workType - OfferWorkType
|
Work type (remote or on-site) |
country - String
|
Can be retrieved by Query countries: [Country!]! |
state - String
|
Can be retrieved by Query location{state} |
description - String
|
Location description |
flexible - Boolean
|
Whether location is flexible |
flexibilityDescription - String
|
Flexibility description |
city - String
|
Can be retrieved by Query location{state} |
address - OfferAddressInput
|
Address details |
Example
{
"workType": "REMOTE",
"country": "xyz789",
"state": "xyz789",
"description": "xyz789",
"flexible": true,
"flexibilityDescription": "abc123",
"city": "xyz789",
"address": OfferAddressInput
}
OfferMetadataInput
Description
Offer metadata and source information
Fields
| Input Field | Description |
|---|---|
sourceType - SourceTypeInput!
|
Source type of the offer |
sourceId - ID
|
Following options available:
|
occupationId - ID
|
Required for Direct offer |
jobPostingId - ID
|
Job posting identifier |
data - String
|
Additional metadata |
checkoutId - ID
|
Checkout identifier |
Example
{
"sourceType": "JobPosting",
"sourceId": "4",
"occupationId": 4,
"jobPostingId": 4,
"data": "abc123",
"checkoutId": 4
}
OfferMilestoneState
Description
Milestone state values
Values
| Enum Value | Description |
|---|---|
|
|
Milestone not funded |
|
|
Milestone in offer |
|
|
Milestone is active |
|
|
Milestone submitted |
|
|
Milestone rejected |
|
|
Milestone rejected by Upwork |
|
|
Milestone paid |
|
|
Milestone paid by Upwork |
|
|
Not funded and closed |
|
|
Cancelled by client |
|
|
Cancelled by freelancer |
|
|
Cancelled by Upwork |
|
|
Offer cancelled |
Example
"NotFunded"
OfferMilestoneTerms
Description
Milestone terms for fixed-price offers
Fields
| Input Field | Description |
|---|---|
budget - MoneyInput!
|
milestone amount in the lowest currency denominations (so USD 49.12 would be 4912) |
milestoneList - [OfferTermsMilestoneInput!]!
|
List of milestones |
Example
{
"budget": MoneyInput,
"milestoneList": [OfferTermsMilestoneInput]
}
Offeror
Description
Offeror type
Values
| Enum Value | Description |
|---|---|
|
|
Client is offeror |
|
|
Vendor is offeror |
Example
"Client"
OfferorInput
Description
Offeror input type
Values
| Enum Value | Description |
|---|---|
|
|
Client is offeror |
Example
"Client"
OfferPayrollInput
OfferPeriodTypeInput
Description
Stipend period types
Values
| Enum Value | Description |
|---|---|
|
|
Weekly period |
Example
"Weekly"
OfferScheduledRateIncreaseInput
OfferSearchAttribute
Description
Offer search attribute types
Values
| Enum Value | Description |
|---|---|
|
|
Search by job application |
|
|
Search by job posting |
|
|
Search by client user |
|
|
Search by vendor user |
|
|
Search by client team |
|
|
Search by vendor team |
|
|
Search by client organization |
|
|
Search by vendor organization |
|
|
Search by contract |
Example
"JobApplication"
OfferSearchCommonFilter
Description
Common filter fields for offer search
Fields
| Input Field | Description |
|---|---|
text_eq - String
|
Text search filter |
states_any - [ContractOfferState!]
|
Filter by offer states |
startDatePeriod_bt - [String!]
|
Filter by start date period |
endDatePeriod_bt - [String!]
|
Filter by end date period |
catalogProject - Boolean
|
Filter by catalog project flag |
Example
{
"text_eq": "xyz789",
"states_any": ["Pending"],
"startDatePeriod_bt": ["xyz789"],
"endDatePeriod_bt": ["abc123"],
"catalogProject": true
}
OfferState
Description
Offer state values
Values
| Enum Value | Description |
|---|---|
|
|
Offer is in draft |
|
|
Offer is discarded |
|
|
Offer is submitted |
|
|
Offer is withdrawn |
|
|
Offer is replaced |
|
|
Awaiting approval |
|
|
Offer is approved |
|
|
Pending vendor acceptance |
|
|
Pending vendor acceptance after reminder |
|
|
Offer is accepted |
|
|
Offer is rejected |
|
|
Offer failed |
|
|
Offer expired |
|
|
Offer canceled |
|
|
Offer denied |
|
|
Pending funding |
|
|
Funding failed |
|
|
Offer funded |
|
|
Offer deleted |
Example
"DRAFT"
OfferStipendTerms
Description
Stipend terms for stipend-based offers
Fields
| Input Field | Description |
|---|---|
stipend - MoneyInput!
|
periodic stipend |
vendorRate - MoneyInput!
|
Vendor rate |
period - OfferPeriodTypeInput!
|
Stipend period |
Example
{
"stipend": MoneyInput,
"vendorRate": MoneyInput,
"period": "Weekly"
}
OfferTerms
Description
Terms associated with the offer
Fields
| Field Name | Description |
|---|---|
expectedStartDate - String
|
Expected start date of offer |
expectedEndDate - String
|
Expected end date of offer |
fixedPriceTerm - FixedPriceTerm
|
Offer terms for fixed price |
hourlyTerms - HourlyTerms
|
Offer terms for hourly rate |
Example
{
"expectedStartDate": "abc123",
"expectedEndDate": "xyz789",
"fixedPriceTerm": FixedPriceTerm,
"hourlyTerms": HourlyTerms
}
OfferTermsMilestoneInput
Description
Individual milestone definition
Fields
| Input Field | Description |
|---|---|
amount - MoneyInput!
|
milestone amount in the lowest currency denominations (so USD 49.12 would be 4912) |
description - String!
|
Milestone description |
dueDate - String
|
milestone due date in yyyy-MM-dd format |
instructions - String
|
Milestone instructions |
attachments - [String!]
|
Attachment identifiers. Default = [] |
Example
{
"amount": MoneyInput,
"description": "abc123",
"dueDate": "abc123",
"instructions": "xyz789",
"attachments": ["abc123"]
}
OfferType
Description
Offer type values
Values
| Enum Value | Description |
|---|---|
|
|
Marketplace hourly offer |
|
|
Marketplace fixed price offer |
|
|
Enterprise hourly offer |
|
|
Enterprise fixed price offer |
Example
"MARKET_PLACE_HOURLY"
OfferWorkType
Description
Work type for offer
Values
| Enum Value | Description |
|---|---|
|
|
Remote work |
|
|
Permanent on-site work |
Example
"REMOTE"
PeriodType
Description
Period type for stipend
Values
| Enum Value | Description |
|---|---|
|
|
Weekly period |
|
|
Monthly period |
Example
"Weekly"
PtcData
PurchaseOrder
Description
Purchase order information
Fields
| Field Name | Description |
|---|---|
id - ID!
|
ID of the PO |
orderNumber - String!
|
The order number to be displayed to the user |
description - String
|
Description associated with the offer, if any |
amount - Money!
|
PO amount |
expiresAtDateTime - String
|
Time for experince of the model |
aclType - PurchaseOrderAclType!
|
Controls who can see/use this PO |
aclSpecification - String
|
ACL specification |
archived - Boolean!
|
Whether PO is archived |
placeHolder - Boolean!
|
True if "I don't have it yet" is enabled and selected |
createdAtDateTime - String!
|
Creation timestamp |
creator - GenericUser!
|
User who created the PO |
alertThreshold - String
|
Percentage of spend used at which point user shall be notified |
notificationAlcType - PurchaseOrderNotificationAclType
|
Controls who gets notified |
notificationAlcSpecification - String
|
Notification ACL specification |
Example
{
"id": 4,
"orderNumber": "xyz789",
"description": "xyz789",
"amount": Money,
"expiresAtDateTime": "xyz789",
"aclType": "HMS_IN_COMPANY",
"aclSpecification": "abc123",
"archived": true,
"placeHolder": false,
"createdAtDateTime": "xyz789",
"creator": GenericUser,
"alertThreshold": "xyz789",
"notificationAlcType": "ALL_USERS_WITH_HIRING_PERMISSIONS_IN_COMPANY",
"notificationAlcSpecification": "abc123"
}
PurchaseOrderAclType
Description
Purchase order ACL type
Values
| Enum Value | Description |
|---|---|
|
|
Hiring managers in company |
|
|
Hiring managers in team |
|
|
Specific user list |
Example
"HMS_IN_COMPANY"
PurchaseOrderNotificationAclType
Description
Purchase order notification ACL type
Values
| Enum Value | Description |
|---|---|
|
|
All users with hiring permissions in company |
|
|
Users with hiring permissions in selected teams |
|
|
Specific users |
|
|
No notifications |
Example
"ALL_USERS_WITH_HIRING_PERMISSIONS_IN_COMPANY"
RejectMilestoneSubmissionInput
Description
Input for rejecting a milestone submission
Example
{
"id": "4",
"noteToContractor": "abc123",
"attachments": [4]
}
SearchOffersByAttributesInput
Description
Input for searching offers by attributes
Fields
| Input Field | Description |
|---|---|
ids - [ID!]!
|
List of ids of attributes |
searchAttribute - OfferSearchAttribute!
|
attribute to search offers by |
includeAttachments - Boolean
|
indicates wherever query for attachments or not, turning it off may improve query performance,default true. Default = true |
includeMilestones - Boolean
|
indicates wherever query for milestones or not, turning it off may improve query performance,default true. Default = true |
Example
{
"ids": ["4"],
"searchAttribute": "JobApplication",
"includeAttachments": false,
"includeMilestones": false
}
SearchOffersInput
Description
Input for searching offers
Fields
| Input Field | Description |
|---|---|
id - ID!
|
Id of the attribute |
searchAttribute - OfferSearchAttribute!
|
attribute to search offers by |
states - [OfferLegacyState!]
|
legacy offer states to search by |
limit - Int
|
size of a single page, '0' means unlimited, default 10. Default = 10 |
page - Int
|
page number starting from '1', default 1. Default = 1 |
ascendingOrder - Boolean
|
wherever order of offers should be ascending, default true. Default = true |
includeAttachments - Boolean
|
indicates wherever query for attachments or not, turning it off may improve query performance,default true. Default = true |
includeMilestones - Boolean
|
indicates wherever query for milestones or not, turning it off may improve query performance,default true. Default = true |
Example
{
"id": 4,
"searchAttribute": "JobApplication",
"states": ["Draft"],
"limit": 123,
"page": 987,
"ascendingOrder": true,
"includeAttachments": false,
"includeMilestones": true
}
SourceType
Description
Source type for offer
Values
| Enum Value | Description |
|---|---|
|
|
From job posting |
|
|
From job application |
|
|
Direct offer |
|
|
From contract proposal |
|
|
Payroll offer |
|
|
From talent scout |
|
|
Category UID source |
|
|
Category reference source |
|
|
Catalog project order UID |
|
|
Upwork remote source |
|
|
Bring your own source |
Example
"JobPosting"
SourceTypeInput
Description
Offer source type
Values
| Enum Value | Description |
|---|---|
|
|
From job posting |
|
|
From job application |
|
|
Direct offer |
Example
"JobPosting"
StipendContractTerm
Description
Stipend-based contract term including minimum hours and amount
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Term identifier (string UID) |
createDate - String
|
Creation date of the term |
modifyDate - String
|
Last modification date of the term |
changeDate - String
|
Effective change date |
createdBy - ContractUser
|
User who created the term |
creatorUserType - CreatorType
|
Actor type for the creator |
changedBy - ContractUser
|
User who last changed the term |
minGuaranteedHours - String
|
Minimum guaranteed hours |
stipendAmount - Money
|
Stipend amount |
startDate - String
|
Start date of the term |
changingUserType - CreatorType
|
Actor type for the last change |
endDate - String
|
End date of the term |
jobType - JobType
|
Engagement payment type for the term |
ptcData - PtcData
|
Protected time calculation period |
Example
{
"id": 4,
"createDate": "xyz789",
"modifyDate": "abc123",
"changeDate": "abc123",
"createdBy": ContractUser,
"creatorUserType": "CLIENT",
"changedBy": ContractUser,
"minGuaranteedHours": "xyz789",
"stipendAmount": Money,
"startDate": "abc123",
"changingUserType": "CLIENT",
"endDate": "xyz789",
"jobType": "FIXED",
"ptcData": PtcData
}
StipendTerms
Description
Terms for Stipend
Fields
| Field Name | Description |
|---|---|
stipend - Money
|
Stipend amount |
vendorRate - Money
|
Vendor hourly rate |
period - PeriodType
|
Period of time, default is weekly |
Example
{
"stipend": Money,
"vendorRate": Money,
"period": "Weekly"
}
Submission
Description
Milestone submission record
Example
{
"id": 4,
"createdDateTime": "abc123",
"modifiedDateTime": "abc123",
"amount": Money,
"sequenceId": 123
}
SubmissionEvent
Description
Milestone submission event and associated messages
Fields
| Field Name | Description |
|---|---|
submission - Submission!
|
Submission information |
submissionMessage - SubmissionMessage
|
Submission message |
revisionMessage - SubmissionMessage
|
Revision message |
Example
{
"submission": Submission,
"submissionMessage": SubmissionMessage,
"revisionMessage": SubmissionMessage
}
SubmissionMessage
UpdateHourlyLimitRequestInput
Description
Update hourly limit request
Fields
| Input Field | Description |
|---|---|
notifications - NotificationsInput
|
Notification configurations |
weeklyLimit - String
|
Weekly hourly limit |
Example
{
"notifications": NotificationsInput,
"weeklyLimit": "abc123"
}
VendorContractSearchFilter
Description
vendorId - Vendor UID, mandatory startDateBefore - Vendor's contracts start-date must be before this value, date in ISO format yyyy-MM-ddThh:mm+HHmm or yyyy-MM-dd, optional endDateAfter - Vendor's contracts end-date must be after this value, date in ISO format yyyy-MM-ddThh:mm+HHmm or yyyy-MM-dd, optional contractStatuses - List of contract statuses, optional Filter to search vendor contracts by date and status
Fields
| Input Field | Description |
|---|---|
vendorId - ID!
|
|
startDateBefore - String
|
|
endDateAfter - String
|
|
contractStatuses - [ContractStatus]
|
Example
{
"vendorId": 4,
"startDateBefore": "abc123",
"endDateAfter": "xyz789",
"contractStatuses": ["ACTIVE"]
}
VendorUserInput
Description
User info associated with the offer
Example
{"userId": 4, "teamId": 4}
WithdrawOfferInput
Description
Input for withdrawing an offer
Fields
| Input Field | Description |
|---|---|
offerId - ID!
|
Offer identifier |
message - String
|
Message to vendor |
withdrawalReason - WithdrawReason
|
Withdrawal reason |
Example
{
"offerId": 4,
"message": "abc123",
"withdrawalReason": "OFFER_WITHDRAW_REASON_HIRED_DIFFERENT_FREELANCER"
}
WithdrawReason
Description
Reasons for withdrawing an offer
Values
| Enum Value | Description |
|---|---|
|
|
Hired a different freelancer |
|
|
No longer hiring for the job |
|
|
Need to modify the offer |
|
|
Freelancer is unresponsive |
|
|
Offer sent by accident |
|
|
Freelancer violated terms of service |
|
|
Other reason |
|
|
Could not agree on terms |
|
|
Job expired |
|
|
Job was inappropriate |
Example
"OFFER_WITHDRAW_REASON_HIRED_DIFFERENT_FREELANCER"
WorkflowOfferState
Description
Workflow offer state
Values
| Enum Value | Description |
|---|---|
|
|
Offer submitted |
|
|
Offer active |
|
|
Offer expired |
|
|
Offer declined |
|
|
Offer withdrawn |
|
|
Offer accepted |
|
|
Offer replaced |
|
|
Offer canceled |
|
|
Approval succeeded |
|
|
Approval failed |
|
|
Onboarding succeeded |
|
|
Onboarding failed |
|
|
Offer in draft |
|
|
Offer committed |
Example
"Submitted"
Ontology
CategoryServicesResponse
Fields
| Field Name | Description |
|---|---|
categories - [Occupation!]!
|
List of category occupations |
categoryServices - [StringMapOccupation!]!
|
Map of categories to their services |
Example
{
"categories": [Occupation],
"categoryServices": [StringMapOccupation]
}
Occupation
Description
Ontology entity
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
ontologyId - String!
|
ontologyId is a semantic identifier that unqiuely identifies an ontology element Its value doesn't depend on the environment (same for dev, staging, prod) Example: upwork:AdministrationSoftware |
type - [OntologyEntityType]!
|
|
entityStatus - OntologyEntityStatus!
|
Defines the status of an occupation.
|
preferredLabel - String!
|
Defines the label of the entity that is displayed across Upwork. It must be a unique value. |
definition - String
|
|
createdDateTime - String
|
Defines (when available) the date (timestamp) of creation for the entity. |
modifiedDateTime - String
|
Defines (when available) the date (timestamp) of update for the entity. |
skills - [Skill]
|
Skills associated with this occupation |
Example
{
"id": 4,
"ontologyId": "abc123",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "xyz789",
"definition": "xyz789",
"createdDateTime": "abc123",
"modifiedDateTime": "xyz789",
"skills": [Skill]
}
OntologyCategory
Description
A simplified representation of Marketplace ontology's 'category' (level 1 of hierarchy)
Fields
| Field Name | Description |
|---|---|
id - ID!
|
UID of an entity |
preferredLabel - String
|
A label of an entity that is displayed across Upwork. It must be a unique value. |
altLabel - [String]
|
Defines alternative labels for an entity. |
slug - String
|
A human-understandable string that is used as the last of URLs built to refer the given entity. Example: 'accounting-consulting' (for 'Accounting & Consulting' category) |
ontologyId - String
|
A semantic identifier that uniquely identifies an ontology element. Its value doesn't depend on the environment, unlike a UID identifier. Example: upwork:AdministrationSoftware |
subcategories - [OntologySubcategory!]!
|
A list of simplified 'subcategory' entities which ara children of the given category |
services - [OntologyService!]!
|
A list of simplified 'service' entities which descendants (indirect children) of the given category - or, put another way, a list of all 'services' whose top parent is the current 'category' |
Example
{
"id": 4,
"preferredLabel": "abc123",
"altLabel": ["abc123"],
"slug": "xyz789",
"ontologyId": "abc123",
"subcategories": [OntologySubcategory],
"services": [OntologyService]
}
OntologyConnection
Description
Ontology connection
Fields
| Field Name | Description |
|---|---|
totalCount - Int
|
Total number of entities matching the query |
edges - [OntologyEntityEdge!]
|
List of entity edges with pagination cursors |
pageInfo - PageInfo
|
Pagination information for navigating results |
Example
{
"totalCount": 987,
"edges": [OntologyEntityEdge],
"pageInfo": PageInfo
}
OntologyElementsSearchByPrefLabelFilter
Fields
| Input Field | Description |
|---|---|
preferredLabel_any - String!
|
string to search in prefLabel, up to 100 characters Example: "Jav" |
type - OntologyEntityType
|
type of element to search, one of OntologyEntityType |
entityStatus_eq - OntologyEntityStatus
|
status of element to search, one of OntologyEntityStatus default ACTIVE. Default = ACTIVE |
sortOrder - String
|
optional parameter to specify ordering of results. If no value provided ordering is random. 'alphabet' to order results alphabetically by prefLabel 'match-start' (Default) to order results by index of filter string in prefLabel. I.e. results starting with filter will appear first. Default = |
limit - Int
|
Max number of responses. 10 by default. Default = 10 |
includeAttributeGroups - Boolean
|
if true, it includes attribute group nodes. Default: false. Default = false |
Example
{
"preferredLabel_any": "abc123",
"type": "OCCUPATION",
"entityStatus_eq": "ACTIVE",
"sortOrder": "xyz789",
"limit": 987,
"includeAttributeGroups": true
}
OntologyEntity
Description
An ontology is a set of concepts and categories in a domain that shows their properties and the relations between them.
Conceptually, the ontology is a "knowledge graph".
Currently the ontology model describes Occupations, Skills, Deliverables and Descriptors.
However, ONLY Occupations and Skills are supported. Deliverables and Deliverable Descriptors are currently supported as Skills, forming what we refer to as Attributes.
Occupations describe what we know, in the Upwork universe, as Categories, Subcategories and Services or L1s, L2s and L3s.
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
ontologyId - String!
|
ontologyId is a semantic identifier that unqiuely identifies an ontology element Its value doesn't depend on the environment (same for dev, staging, prod) Example: upwork:AdministrationSoftware |
type - [OntologyEntityType]!
|
|
entityStatus - OntologyEntityStatus!
|
Defines the status of an occupation.
|
preferredLabel - String!
|
Defines the label of the entity that is displayed across Upwork. It must be a unique value. |
definition - String
|
|
createdDateTime - String
|
Defines (when available) the date (timestamp) of creation for the entity. |
modifiedDateTime - String
|
Defines (when available) the date (timestamp) of update for the entity. |
Possible Types
| OntologyEntity Types |
|---|
Example
{
"id": "4",
"ontologyId": "xyz789",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "xyz789",
"definition": "abc123",
"createdDateTime": "xyz789",
"modifiedDateTime": "xyz789"
}
OntologyEntityEdge
Description
Ontology entity
Fields
| Field Name | Description |
|---|---|
node - OntologyEntity!
|
The ontology entity at this edge |
cursor - String!
|
Cursor for pagination |
Example
{
"node": OntologyEntity,
"cursor": "abc123"
}
OntologyEntityFilter
Fields
| Input Field | Description |
|---|---|
preferredLabel_any - String!
|
string to search in prefLabel field, up to 100 characters Example: "Jav" |
type - OntologyEntityType
|
|
taxonomyLevel - OntologyEntityTaxonomyLevel
|
|
entityStatus_eq - OntologyEntityStatus
|
|
sortOrder - OntologyResultSortOrder
|
|
limit - Int
|
Max number of responses |
Example
{
"preferredLabel_any": "abc123",
"type": "OCCUPATION",
"taxonomyLevel": "CATEGORY",
"entityStatus_eq": "ACTIVE",
"sortOrder": "RANDOM",
"limit": 987
}
OntologyEntitySearchFilter
Fields
| Input Field | Description |
|---|---|
ontologyIds_any - [ID!]!
|
Example
{"ontologyIds_any": [4]}
OntologyEntitySearchRecord
Fields
| Field Name | Description |
|---|---|
ontologyEntity - OntologyEntity!
|
The ontology entity found in the search |
Example
{"ontologyEntity": OntologyEntity}
OntologyEntityStatus
Description
Defines the status of an occupation.
Values
| Enum Value | Description |
|---|---|
|
|
Skill is active and available for use |
|
|
Skill has been deprecated |
|
|
Skill has been created recently and is not yet active |
Example
"ACTIVE"
OntologyEntityTaxonomyLevel
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"CATEGORY"
OntologyEntityType
Description
Currently supported entity types
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"OCCUPATION"
OntologyResultSortOrder
Description
- alphabet to order results alphabetically by prefLabel
- match-start to order results by index of filter string in prefLabel. I.e. results starting with filter will appear first
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"RANDOM"
OntologyService
Description
A simplified representation of Marketplace ontology's 'service' (level 3 of hierarchy)
Fields
| Field Name | Description |
|---|---|
id - ID!
|
UID of an entity |
preferredLabel - String
|
A label of an entity that is displayed across Upwork. It must be a unique value. |
altLabel - [String]
|
Defines alternative labels for an entity. |
slug - String
|
A human-understandable string that is used as the last of URLs built to refer the given entity. Example: 'accounting-consulting' (for 'Accounting & Consulting' category) |
ontologyId - String
|
A semantic identifier that uniquely identifies an ontology element. Its value doesn't depend on the environment, unlike a UID identifier. Example: upwork:AdministrationSoftware |
Example
{
"id": 4,
"preferredLabel": "xyz789",
"altLabel": ["xyz789"],
"slug": "xyz789",
"ontologyId": "abc123"
}
OntologySubcategory
Description
A simplified representation of Marketplace ontology's 'subcategory' (level 2 of hierarchy)
Fields
| Field Name | Description |
|---|---|
id - ID!
|
UID of an entity |
preferredLabel - String
|
A label of an entity that is displayed across Upwork. It must be a unique value. |
altLabel - [String]
|
Defines alternative labels for an entity. |
slug - String
|
A human-understandable string that is used as the last of URLs built to refer the given entity. Example: 'accounting-consulting' (for 'Accounting & Consulting' category) |
ontologyId - String
|
A semantic identifier that uniquely identifies an ontology element. Its value doesn't depend on the environment, unlike a UID identifier. Example: upwork:AdministrationSoftware |
services - [OntologyService!]!
|
A list of simplified 'service' entities which are children of the given subcategory |
Example
{
"id": 4,
"preferredLabel": "abc123",
"altLabel": ["xyz789"],
"slug": "abc123",
"ontologyId": "xyz789",
"services": [OntologyService]
}
Skill
Description
Skills can be seen methods, tools, frameworks, processes, etc that can be used in the industry.
Skills are organized into Attribute Groups. Every Skill can be a member of multiple Attribute groups.
Skills are linked to attribute groups through the skos:broader property.
Attribute Groups are defined using the upworkModel:attributeLevel "Attribute Group" property.
Attribute groups are linked to their member attributes through the narrower property.
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
ontologyId - String!
|
ontologyId is a semantic identifier that unqiuely identifies an ontology element Its value doesn't depend on the environment (same for dev, staging, prod) Example: upwork:AdministrationSoftware |
type - [OntologyEntityType]!
|
|
entityStatus - OntologyEntityStatus!
|
Defines the status of an occupation.
|
preferredLabel - String!
|
Defines the label of the entity that is displayed across Upwork. It must be a unique value. Example: "Accounting" |
createdDateTime - String
|
Defines (when available) the date (timestamp) of creation for the entity. |
modifiedDateTime - String
|
Defines (when available) the date (timestamp) of update for the entity. |
definition - String
|
|
altLabel - [String]
|
Defines alternative labels for the entity. |
narrower - [String]
|
Defines the narrower entity of an attribute group. It only applies to attribute groups and it defines the member entities of each attribute group. When talking about attribute groups, we actually refer to skills which have narrower relationships, but not broader. See them as the parent in a hierarchy Example: "upworkOccupation:wordpresssetupandconfiguration" |
narrowerIds - [ID]
|
Defines the narrower entity of an attribute group. It only applies to attribute groups and it defines the member entities of each attribute group. When talking about attribute groups, we actually refer to skills which have narrower relationships, but not broader. See them as the parent in a hierarchy Example ids: "1024054176003235840" |
broader - [String]
|
Defines the broader entity of a skill. The broader entity is the attribute group that the skill belongs to. Skills can have more than one broader entities. Example: "upworkOccupation:webdevelopmentsubcategory" |
broaderIds - [ID]
|
Defines the broader entity of a skill. The broader entity is the attribute group that the skill belongs to. Skills can have more than one broader entities. Example ids: "531770282584862733" |
dependsOn - [String]
|
Defines the dependency between an attribute group and an attribute. The domain of this property can only be an attribute group and the range is an attribute. |
dependsOnIds - [ID]
|
Defines the dependency between an attribute group and an attribute. The domain of this property can only be an attribute group and the range is an attribute. |
splitInto - [String]
|
Defines the entities that are the result of splitting a Skill. The resulting entities are also Skills and there must be at least two resulting entities. One of the resulting entities will serve as a primary replacement and must be present in the upwork:replacedBy property too. Split entities must also be deprecated. Example "upwork:socialmediamanagement" |
splitIntoIds - [ID]
|
Defines the entities that are the result of splitting a Skill. The resulting entities are also Skills and there must be at least two resulting entities. One of the resulting entities will serve as a primary replacement and must be present in the upwork:replacedBy property too. Split entities must also be deprecated. Example: 1109421460453785600 |
mergedInto - String
|
Defines the entity with which the source entity is merged into. The target entity is also a Skill. The target entity must be present in the upwork:replacedBy property. Merged entities must also be deprecated. |
mergedIntoId - ID
|
Defines the entity with which the source entity is merged into. The target entity is also a Skill. The target entity must be present in the upwork:replacedBy property. Merged entities must also be deprecated. |
replacedBy - String
|
Defines the replacement of split, merged and deprecated skills. The replacement entity must be a single entity of the same type and level. |
replacedById - ID
|
Defines the replacement of split, merged and deprecated skills. The replacement entity must be a single entity of the same type and level. |
scopeNote - String
|
This property defines the description for each skill. |
externalLink - [String]
|
Defines a link to an external resource (preferably Wikipedia link). |
exactMatch - [String]
|
This property defines the link between skills, indicating a high degree of confidence that the concepts are highly similar. The purpose of this property is to define a link between a new entity and an existing entity Example: "upwork:accounting" |
exactMatchIds - [ID]
|
This property defines the link between skills, indicating a high degree of confidence that the concepts are highly similar. The purpose of this property is to define a link between a new entity and an existing entity Example id: "1024054015462055936" |
closeMatch - [String]
|
This property defines the link between skills, indicating a lower degree of confidence than the exactMatch that the concepts are similar. The purpose of this property is to define a link between a new entity and an existing entity (one that has historical data associated with it). In the future this might be also used for Occupation. Example: "upwork:android_game" |
closeMatchIds - [ID]
|
This property defines the link between skills, indicating a lower degree of confidence than the exactMatch that the concepts are similar. The purpose of this property is to define a link between a new entity and an existing entity (one that has historical data associated with it). In the future this might be also used for Occupation. Example: "1024054086635200512" |
comment - String
|
Used internally, defines the source of the skill or a description extracted from dbpedia |
attributeLevel - [String]
|
Defines attribute groups. Skills that have this property with the value 'Attribute Group' are attribute groups. |
allowMultipleClient - Boolean!
|
Defines if attribute group supports multi-selection of its attributes in the job post flow. Presentation attributes present for attribute groups |
allowMultipleFreelancer - Boolean!
|
Whether freelancers can select multiple attributes from this group |
allowOther - Boolean!
|
Defines if addition of free text answers is allowed |
clientQuestion - String
|
Question text shown to clients for this attribute group |
clientTip - String
|
Tip text shown to clients for this attribute group |
freelancerQuestion - String
|
Question text shown to freelancers for this attribute group |
freelancerTip - String
|
Tip text shown to freelancers for this attribute group |
advancedClient - Boolean!
|
Defines advanced attribute groups which are being displayed in the bottom of the page. |
client - Boolean!
|
Whether this attribute group is visible to clients |
freelancer - Boolean!
|
Whether this attribute group is visible to freelancers |
requiredClient - Boolean!
|
Defines if attribute group is required or optional for clients. |
requiredFreelancer - Boolean!
|
Defines if attribute group is required or optional for freelancers. |
otherClientLabel - String
|
Defines the label that is displayed in the 'see more' dialog in job posts. |
otherFreelancerLabel - String
|
Defines the label that is displayed in the 'show more' view in profiles. |
presentationMode - String
|
Presentation mode for displaying this attribute group |
priority - Int
|
Defines the order in which attributes and attribute groups appear in. |
isRequiredBy - [String]
|
This is the inverse property of upworkModel:requires. It links an attribute group with the L3 that requires it.
Example: "upworkOccupation:brandidentitydesign |
isRequiredByIds - [ID]
|
This is the inverse property of upworkModel:requires. It links an attribute group with the L3 that requires it.
Example: "1044578476142100497" |
legacySkillNid - String
|
Legacy Skills are skills that existed prior to Ontology Skills. This is the skill name associated with the legacy skills and used to mapping ontology skills with legacy skills and viceversa. |
prettyName - String
|
LegacySkillNid value pretty formatted |
legacySkillId - ID
|
The uid identifier of the legacy skill |
Example
{
"id": "4",
"ontologyId": "xyz789",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "xyz789",
"createdDateTime": "xyz789",
"modifiedDateTime": "abc123",
"definition": "abc123",
"altLabel": ["xyz789"],
"narrower": ["abc123"],
"narrowerIds": [4],
"broader": ["xyz789"],
"broaderIds": [4],
"dependsOn": ["abc123"],
"dependsOnIds": [4],
"splitInto": ["xyz789"],
"splitIntoIds": ["4"],
"mergedInto": "abc123",
"mergedIntoId": "4",
"replacedBy": "xyz789",
"replacedById": 4,
"scopeNote": "abc123",
"externalLink": ["xyz789"],
"exactMatch": ["abc123"],
"exactMatchIds": ["4"],
"closeMatch": ["abc123"],
"closeMatchIds": [4],
"comment": "xyz789",
"attributeLevel": ["xyz789"],
"allowMultipleClient": false,
"allowMultipleFreelancer": true,
"allowOther": true,
"clientQuestion": "abc123",
"clientTip": "abc123",
"freelancerQuestion": "abc123",
"freelancerTip": "abc123",
"advancedClient": false,
"client": false,
"freelancer": false,
"requiredClient": true,
"requiredFreelancer": false,
"otherClientLabel": "xyz789",
"otherFreelancerLabel": "abc123",
"presentationMode": "abc123",
"priority": 987,
"isRequiredBy": ["abc123"],
"isRequiredByIds": [4],
"legacySkillNid": "abc123",
"prettyName": "xyz789",
"legacySkillId": "4"
}
StringMapOccupation
Fields
| Field Name | Description |
|---|---|
category - String!
|
Category identifier |
services - [Occupation!]!
|
List of services for this category |
Example
{
"category": "xyz789",
"services": [Occupation]
}
Proposals
ClientProposal
Description
client proposal
Fields
| Field Name | Description |
|---|---|
id - ID!
|
implements Proposal { id of the client proposal |
user - GenericUser!
|
connection to the vendor who will be physically working on the job if accepted |
organization - GenericOrganization!
|
connection to the organization the vendor user belongs to |
job - MarketplaceJobPosting!
|
connection to the job for which vendor has applied |
terms - ProposalTerms
|
terms on which vendor applied on |
coverLetter - String
|
cover letter to accompany the proposal |
projectPlan - ProposalProjectPlan
|
connection to the project plan which is a set of milestones defined by vendor |
auditDetails - ProposalAuditDetails!
|
information used to audit changes in proposals |
status - ClientProposalStatus!
|
status of the client proposal |
annotations - [ClientProposalAnnotation!]!
|
annotations of the client proposal |
Example
{
"id": "4",
"user": GenericUser,
"organization": GenericOrganization,
"job": MarketplaceJobPosting,
"terms": ProposalTerms,
"coverLetter": "abc123",
"projectPlan": ProposalProjectPlan,
"auditDetails": ProposalAuditDetails,
"status": ClientProposalStatus,
"annotations": ["Recommended"]
}
ClientProposalAnnotation
Description
client proposal annotation
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"Recommended"
ClientProposalDeclineRequest
Description
client proposal decline request
Example
{
"proposalId": "4",
"jobPostingId": 4,
"reason": 4,
"otherReason": "abc123",
"message": "abc123"
}
ClientProposalEarnedAmount
Description
earnings amount
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"ANY_AMOUNT_EARNED"
ClientProposalEnglishProficiency
Description
english proficiency level
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"ANY_LEVEL"
ClientProposalFilter
Description
client proposal filter
Fields
| Input Field | Description |
|---|---|
status_eq - ClientProposalStatusName
|
|
annotations_eq - ClientProposalAnnotation
|
|
freelancerId_eq - ID
|
|
chargeRate_eq - ClientProposalHourlyRate
|
|
activityDays_eq - ClientProposalLastActivity
|
|
category_eq - String
|
|
jobSuccessScore_eq - ClientProposalJobSuccessSocre
|
|
earnings_eq - ClientProposalEarnedAmount
|
|
billedHours_eq - ClientProposalHoursBilled
|
|
applierType_eq - ClientProposalTalentType
|
|
topRated_eq - ClientProposalRatedType
|
|
englishLevel_eq - ClientProposalEnglishProficiency
|
|
title_eq - String
|
|
textQuery_eq - String
|
|
country_any - [String!]
|
|
region_any - [String!]
|
|
languages_any - [String!]
|
|
occupationId - ID
|
Example
{
"status_eq": "Created",
"annotations_eq": "Recommended",
"freelancerId_eq": "4",
"chargeRate_eq": "ANY_HOURLY_RATE",
"activityDays_eq": "ANY_TIME",
"category_eq": "abc123",
"jobSuccessScore_eq": "ANY_JOB_SUCCESS",
"earnings_eq": "ANY_AMOUNT_EARNED",
"billedHours_eq": "ANY_HOURS",
"applierType_eq": "FREELANCER",
"topRated_eq": "TOP_RATED",
"englishLevel_eq": "ANY_LEVEL",
"title_eq": "xyz789",
"textQuery_eq": "abc123",
"country_any": ["xyz789"],
"region_any": ["xyz789"],
"languages_any": ["xyz789"],
"occupationId": 4
}
ClientProposalHideRequest
Description
client proposal hide request
Example
{
"proposalId": "4",
"jobPostingId": 4,
"hide": true,
"hideReason": "abc123",
"hideByClientReasonId": "4"
}
ClientProposalHourlyRate
Description
hourly rate
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"ANY_HOURLY_RATE"
ClientProposalHoursBilled
Description
hours billed
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"ANY_HOURS"
ClientProposalJobSuccessSocre
Description
job success score
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"ANY_JOB_SUCCESS"
ClientProposalLastActivity
Description
last activity
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"ANY_TIME"
ClientProposalMessageRequest
ClientProposalRatedType
Description
top rated type
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"TOP_RATED"
ClientProposalReadRequest
ClientProposalsConnection
Description
connection to the client proposal list
Fields
| Field Name | Description |
|---|---|
totalCount - Int
|
Total number of client proposals matching filters |
edges - [ClientProposalsEdge]
|
Edges containing client proposals and cursors |
pageInfo - PageInfo
|
Example
{
"totalCount": 123,
"edges": [ClientProposalsEdge],
"pageInfo": PageInfo
}
ClientProposalsEdge
Description
Edge in client proposals connection
Fields
| Field Name | Description |
|---|---|
cursor - String!
|
Cursor for pagination |
node - ClientProposal
|
Client proposal node |
Example
{
"cursor": "abc123",
"node": ClientProposal
}
ClientProposalShortlistRequest
ClientProposalSortAttribute
Fields
| Input Field | Description |
|---|---|
field - ClientProposalSortAttributeType!
|
Attribute to sort client proposals by |
sortOrder - SortOrder!
|
Sorting order |
Example
{"field": "CHARGERATE", "sortOrder": "ASC"}
ClientProposalSortAttributeType
Description
Sortable attributes for client proposals
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"CHARGERATE"
ClientProposalStatus
Description
client proposal status
Fields
| Field Name | Description |
|---|---|
status - ClientProposalStatusName!
|
Status of the proposal |
reason - ProposalReason
|
Reason for proposal to switch to current status. Applicable for declined or withdrawn proposals. |
Example
{"status": "Created", "reason": ProposalReason}
ClientProposalStatusName
Description
client proposal status name
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"Created"
ClientProposalTalentType
Description
talent type
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"FREELANCER"
CreateDirectUploadLinkInput
Description
Input for create direct upload link
Example
{
"fileName": "xyz789",
"expirationDate": "xyz789",
"maxFileSize": 987,
"contentType": "abc123",
"sslEnabled": true,
"metaData": "abc123"
}
FileInfo
Description
File info
Fields
| Field Name | Description |
|---|---|
id - ID!
|
file uid Ex: "1120653822065278976" |
uploadUrl - String!
|
created using bucket |
formKeyValues - [StringMapElement!]!
|
formKeyValues holds following attributes ......... key Generated from UrlInfoInput- keyPrefix("api/gql/domain/") Ex: "api/gql/domain/77987***********" acl Ex: "private" Content-Disposition Generated from UrlInfoInput- "content-type,fileName,downloadBehaviour("inline | attachment")" Ex: "attachment; filename="abc.txt";filename*=utf-8''abc.txt" AWSAccessKeyId Ex: "ASI**************" policy Generated from UrlInfoInput- "bucket, key, timestamp, maxFileSize, contentType, contentDisposition" signature Generated from formKeyValues' "policy" Content-Type Ex: "application/octet-stream" Form key-values |
Example
{
"id": 4,
"uploadUrl": "xyz789",
"formKeyValues": [StringMapElement]
}
ProposalAuditDetails
Description
proposal audit details
Fields
| Field Name | Description |
|---|---|
createdByUser - GenericUser!
|
User that created the proposal |
modifiedByUser - GenericUser
|
Last modifier. Modifiers of a proposal could be either Freelancer, Client, or System. In case of System, modifiedByUser will be null |
createdDateTime - DateTime!
|
Creation date and time, is the date when proposal is created by applying, or date when an invite to interview is accepted. |
modifiedDateTime - DateTime
|
Last modification date and time |
Example
{
"createdByUser": GenericUser,
"modifiedByUser": GenericUser,
"createdDateTime": DateTime,
"modifiedDateTime": DateTime
}
ProposalEngagementDuration
ProposalMetadata
Description
Proposal metadata reference values
Fields
| Field Name | Description |
|---|---|
engagementDurationValues - [ProposalEngagementDuration!]!
|
Available engagement duration options |
reasons - [ReasonsMetadata!]!
|
Reasons metadata filtered by type |
Arguments
|
|
Example
{
"engagementDurationValues": [
ProposalEngagementDuration
],
"reasons": [ReasonsMetadata]
}
ProposalMilestones
ProposalProjectPlan
Description
project plan is a set of milestones defined by vendor
Fields
| Field Name | Description |
|---|---|
id - ID!
|
id of the associated project plan |
milestones - [ProposalMilestones!]
|
list of milestones |
Example
{
"id": "4",
"milestones": [ProposalMilestones]
}
ProposalReason
Description
vendor or client proposal reason
Example
{
"id": "4",
"reason": "abc123",
"description": "xyz789"
}
ProposalTerms
Description
proposal terms, vendor applied on.
Fields
| Field Name | Description |
|---|---|
chargeRate - Money!
|
Hourly contracts: hourly charge rate or fixed price contracts charge rate |
estimatedDuration - ProposalEngagementDuration
|
duration metadata item |
upfrontPaymentPercent - Float
|
Upfront payment percent. Is NULL in case of hourly contracts. Always 0 or more for fixed price contracts. |
Example
{
"chargeRate": Money,
"estimatedDuration": ProposalEngagementDuration,
"upfrontPaymentPercent": 987.65
}
ProposalUpdateResultStatus
Description
applications with PENDING status will be retried again by the system
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"SUCCESS"
UpdateClientProposalResult
Description
Update client proposal result
Fields
| Field Name | Description |
|---|---|
proposal - ClientProposal
|
Updated client proposal |
status - ProposalUpdateResultStatus!
|
Operation status |
Example
{"proposal": ClientProposal, "status": "SUCCESS"}
VendorProposal
Description
vendor proposal
Fields
| Field Name | Description |
|---|---|
id - ID!
|
id of the vendor proposal |
user - GenericUser!
|
connection to the vendor who will be physically working on the job if accepted |
organization - GenericOrganization!
|
connection to the organization to which the vendor belongs. |
marketplaceJobPosting - MarketplaceJobPosting!
|
connection to the job for which vendor is applying to |
terms - ProposalTerms!
|
terms on which freelancer applied on |
coverLetter - String
|
cover letter to accompany the proposal use proposalCoverLetter |
proposalCoverLetter - String
|
cover letter to accompany the proposal |
projectPlan - ProposalProjectPlan
|
connection to the project plan, is a set of milestones defined by vendor |
auditDetails - ProposalAuditDetails!
|
information used to audit changes in proposals |
status - VendorProposalStatus!
|
status of the vendor proposal |
annotations - [VendorProposalAnnotation!]!
|
annotations of the vendor proposal |
Example
{
"id": "4",
"user": GenericUser,
"organization": GenericOrganization,
"marketplaceJobPosting": MarketplaceJobPosting,
"terms": ProposalTerms,
"coverLetter": "abc123",
"proposalCoverLetter": "xyz789",
"projectPlan": ProposalProjectPlan,
"auditDetails": ProposalAuditDetails,
"status": VendorProposalStatus,
"annotations": ["Hidden"]
}
VendorProposalAnnotation
Description
vendor proposal annotation
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"Hidden"
VendorProposalFilter
Description
vendor proposal related filters
Fields
| Input Field | Description |
|---|---|
status_eq - VendorProposalStatusFilterInput!
|
Filter by proposal status |
annotations_eq - VendorProposalAnnotation
|
Filter by proposal annotation |
freelancerId_eq - ID
|
Filter by freelancer ID |
organizationId_eq - ID
|
Filter by organization ID |
jobPostingIds_any - [ID!]
|
Filter by job posting IDs |
Example
{
"status_eq": "Accepted",
"annotations_eq": "Hidden",
"freelancerId_eq": 4,
"organizationId_eq": "4",
"jobPostingIds_any": [4]
}
VendorProposalsConnection
Description
connection to the vendor proposal list
Fields
| Field Name | Description |
|---|---|
totalCount - Int
|
Total number of proposals matching filters |
edges - [VendorProposalsEdge]
|
Edges containing vendor proposals and cursors |
pageInfo - PageInfo
|
Contains information about pagination, such as whether there are more results to fetch. |
Example
{
"totalCount": 987,
"edges": [VendorProposalsEdge],
"pageInfo": PageInfo
}
VendorProposalsEdge
Description
Edge in vendor proposals connection
Fields
| Field Name | Description |
|---|---|
cursor - String
|
Cursor for pagination |
node - VendorProposal
|
Vendor proposal node |
Example
{
"cursor": "abc123",
"node": VendorProposal
}
VendorProposalSortAttribute
Fields
| Input Field | Description |
|---|---|
field - VendorProposalSortAttributeType!
|
Attribute to sort vendor proposals by |
sortOrder - SortOrder!
|
Sorting order |
Example
{"field": "CREATEDDATETIME", "sortOrder": "ASC"}
VendorProposalSortAttributeType
Description
Sortable attributes for vendor proposals
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"CREATEDDATETIME"
VendorProposalStatus
Description
vendor proposal status
Fields
| Field Name | Description |
|---|---|
status - VendorProposalStatusName!
|
Status name of the proposal |
reason - ProposalReason
|
reason for the proposal |
Example
{"status": "Created", "reason": ProposalReason}
VendorProposalStatusFilterInput
Description
Possible Status filter input for Vendor Proposal Query
Values
| Enum Value | Description |
|---|---|
|
|
Application has been created and fully validated |
|
|
Application has been declined by the client |
|
|
Application was withdrawn by the freelancer |
|
|
The freelancer has been sent an Offer, or the Vendor has accepted the invite |
|
|
Application has been created as a result of an invite accepted by a freelancer |
|
|
The system has archived all the active applications when the associated job posting is closed |
|
|
Freelancer accepted the offer, or Vendor accepted the invite with an accepted offer |
|
|
If the application creation failed temporarily |
Example
"Accepted"
VendorProposalStatusName
Description
vendor proposal status name
Values
| Enum Value | Description |
|---|---|
|
|
No longer supported |
|
|
Application has been created and fully validated. (i.e. FL has submitted a proposal). |
|
|
Application was declined by the client |
|
|
Application was wihtdrawn by the freelancer |
|
|
No longer supported |
|
|
The freelancer has been sent an Offer by the client | Vendor accepted invite with pending offer |
|
|
Application is created as a result of an invite accepted by freelancer. (i.e messaging has been initiated between FL and CL) |
|
|
When job posting is closed, SystemArchive event is called to Archive all the active applications of that jobposting |
|
|
No longer supported |
|
|
Freelancer acceped the offer | Vendor accepted invite with accepted offer |
|
|
When a new application is created, if there is a temp failure in any validation, the application is set with Pending status. |
|
|
Application which was in Pending due to temp-validation-failure possibly because of internal errors, when the validation was repeated. SOme validation failed. |
Example
"Created"
Reporting
BillRate
BPAPrivateDataFilter
Cell
Description
Individual time tracking cell representing a 10-minute work segment
Example
{
"timestamp": 987,
"date": "xyz789",
"manual": true,
"overtime": true,
"memo": "abc123"
}
TimeReport
Description
Detailed time report for work performed on a contract
Fields
| Field Name | Description |
|---|---|
dateWorkedOn - String!
|
Date of the time report |
weekWorkedOn - String!
|
Week of the time report |
monthWorkedOn - String!
|
Month of the time report |
yearWorkedOn - String!
|
Year of the time report |
freelancer - GenericUser
|
User associated with the time report |
team - GenericOrganization
|
Team associated with the time report |
contractOffer - ContractOfferResult
|
Contract-Offer associated with the time report Use contract |
contract - ContractDetails
|
|
termId - ID
|
the active termId of the contract |
task - String
|
Task associated with the time report |
taskDescription - String
|
Task description associated with the time report |
memo - String
|
Memo associated with the time report |
totalHoursWorked - Float
|
Total hours worked for the time report |
totalCharges - Float
|
Total charges made for the time report |
totalOnlineHoursWorked - Float
|
Total online hours worked for the time report |
totalOnlineCharge - Float
|
Total charges made for online work for the time report |
totalOfflineHoursWorked - Float
|
Total offline hours worked for the time report |
totalOfflineCharge - Float
|
Total charges made for offline work for the time report |
billRate - BillRate
|
Bill rate associated with the time report |
Example
{
"dateWorkedOn": "abc123",
"weekWorkedOn": "abc123",
"monthWorkedOn": "xyz789",
"yearWorkedOn": "abc123",
"freelancer": GenericUser,
"team": GenericOrganization,
"contractOffer": ContractOfferResult,
"contract": ContractDetails,
"termId": "4",
"task": "xyz789",
"taskDescription": "abc123",
"memo": "abc123",
"totalHoursWorked": 987.65,
"totalCharges": 123.45,
"totalOnlineHoursWorked": 987.65,
"totalOnlineCharge": 987.65,
"totalOfflineHoursWorked": 987.65,
"totalOfflineCharge": 987.65,
"billRate": BillRate
}
TimeReportConnection
Description
Connection type for paginated time report results
Fields
| Field Name | Description |
|---|---|
totalCount - Int
|
Total number of time reports matching the query |
edges - [TimeReportEdge!]
|
List of time report edges with pagination cursors |
pageInfo - PageInfo
|
Pagination information for navigating results |
Example
{
"totalCount": 123,
"edges": [TimeReportEdge],
"pageInfo": PageInfo
}
TimeReportEdge
Description
Edge type containing a time report node and cursor for pagination
Fields
| Field Name | Description |
|---|---|
node - TimeReport!
|
Time report data |
cursor - String!
|
Cursor for pagination |
Example
{
"node": TimeReport,
"cursor": "abc123"
}
TimeReportFilter
Description
Input filter used to query time reports based on organization, date range, and optional contract IDs.
Fields
| Input Field | Description |
|---|---|
organizationId_eq - ID!
|
Only time reports belonging to this organization will be included. |
timeReportDate_bt - DateTimeRange!
|
A date range to filter time reports by their date. |
contractIds - [ID]
|
Optional list of contract IDs to filter the time reports. If provided, only reports associated with these contracts will be included. |
Example
{
"organizationId_eq": 4,
"timeReportDate_bt": DateTimeRange,
"contractIds": ["4"]
}
TransactionHistory
Description
Transaction history containing transaction details and metadata
Fields
| Field Name | Description |
|---|---|
transactionDetail - TransactionHistoryDetail
|
Group of non-pending transactions with totals |
Example
{"transactionDetail": TransactionHistoryDetail}
TransactionHistoryDetail
Description
Transaction history detail with totals and transaction rows
Fields
| Field Name | Description |
|---|---|
transactionHistoryRow - [TransactionHistoryRow!]
|
List of transaction rows |
Example
{"transactionHistoryRow": [TransactionHistoryRow]}
TransactionHistoryFilter
Fields
| Input Field | Description |
|---|---|
bpaPrivateData - BPAPrivateDataFilter
|
|
aceIds_any - [ID!]!
|
List of accounting entity ids whose transactions have to be collected |
transactionDateTime_bt - DateTimeRange!
|
Minimal and Maximum date of selected transactions. Date should be in yyyy-mm-dd format. |
agencyCompanyIds_any - [ID!]
|
|
agencyCompanyUids_any - [ID!]
|
Filter transactions related to one of these agency (using Uid) |
developerIds_any - [ID!]
|
Filter transactions related to one of these developers |
trxSubtypes_any - [String!]
|
Filter transaction related to one of listed subtypes |
Example
{
"bpaPrivateData": BPAPrivateDataFilter,
"aceIds_any": [4],
"transactionDateTime_bt": DateTimeRange,
"agencyCompanyIds_any": [4],
"agencyCompanyUids_any": [4],
"developerIds_any": ["4"],
"trxSubtypes_any": ["xyz789"]
}
TransactionHistoryRow
Description
Individual transaction row with details
Fields
| Field Name | Description |
|---|---|
rowNumber - Int
|
Row number in the transaction list |
runningChargeableBalance - Money
|
Running chargeable balance after this transaction |
recordId - ID
|
Transaction record identifier |
remainder - String
|
Remaining amount to be paid |
amountCreditedToUser - Money
|
Amount credited to the user |
transactionReviewDueDate - String
|
Date when transaction review is due |
transactionCreationDate - String
|
Date when transaction was created |
relatedUserPaymentMethod - Int
|
Related payment method identifier |
accountingSubtype - String
|
Accounting subtype of the transaction |
descriptionUI - String
|
UI-friendly description of the transaction |
relatedAssignment - Int
|
Related assignment identifier |
amountSentInOrigCurrency - Money
|
Amount sent in original currency |
paymentGuaranteed - Boolean
|
Whether payment is guaranteed |
fixedPriceEARMark - Int
|
Fixed price EAR mark identifier |
relatedTransactionId - ID
|
Related transaction identifier |
relatedInvoiceId - ID
|
Related invoice identifier |
fullyPaidDate - String
|
Date when transaction was fully paid |
type - String
|
Transaction type |
transactionAmount - Money
|
Transaction amount |
relatedAccountingEntity - Int
|
Related accounting entity identifier |
description - String
|
Transaction description |
purchaseOrderNumber - String
|
Purchase order number |
assignmentAgencyName - String
|
Agency name for the assignment |
assignmentCompanyName - String
|
Company name for the assignment |
assignmentDeveloperName - String
|
Developer name for the assignment |
assignmentTeamCompanyId - ID
|
Assignment team company identifier |
assignmentTeamCompanyReference - Int
|
Assignment team company reference number |
assignmentTeamId - ID
|
Assignment team identifier |
assignmentTeamReference - Int
|
Assignment team reference number |
assignmentTeamUserId - ID
|
Assignment team user identifier |
assignmentTeamUserReference - Int
|
Assignment team user reference number |
payment - Money
|
Payment amount |
paymentStatus - String
|
Payment status |
prefix - String
|
Transaction prefix |
Example
{
"rowNumber": 987,
"runningChargeableBalance": Money,
"recordId": "4",
"remainder": "abc123",
"amountCreditedToUser": Money,
"transactionReviewDueDate": "abc123",
"transactionCreationDate": "abc123",
"relatedUserPaymentMethod": 123,
"accountingSubtype": "abc123",
"descriptionUI": "xyz789",
"relatedAssignment": 123,
"amountSentInOrigCurrency": Money,
"paymentGuaranteed": false,
"fixedPriceEARMark": 987,
"relatedTransactionId": "4",
"relatedInvoiceId": "4",
"fullyPaidDate": "abc123",
"type": "abc123",
"transactionAmount": Money,
"relatedAccountingEntity": 123,
"description": "abc123",
"purchaseOrderNumber": "xyz789",
"assignmentAgencyName": "xyz789",
"assignmentCompanyName": "abc123",
"assignmentDeveloperName": "abc123",
"assignmentTeamCompanyId": 4,
"assignmentTeamCompanyReference": 987,
"assignmentTeamId": 4,
"assignmentTeamReference": 123,
"assignmentTeamUserId": 4,
"assignmentTeamUserReference": 123,
"payment": Money,
"paymentStatus": "abc123",
"prefix": "abc123"
}
WorkDay
WorkDiary
Description
Work diary containing time tracking cells for a work day
Fields
| Field Name | Description |
|---|---|
cells - [Cell!]
|
List of time tracking cells |
Example
{"cells": [Cell]}
Search
FreelancerProfileSearchAreaInput
FreelancerProfileSearchFilter
Fields
| Input Field | Description |
|---|---|
userType - FreelancerProfileSearchUserTypeEnum!
|
Type of user to search (freelancer or client) |
weightedOntologyIds - [FreelancerProfileSearchWeightedOntologyIdInput]
|
weighted ontology ids |
keyword - String
|
modifier which provides a boost to the search |
occupationIds - [String]
|
Occupation Ids that need to be selected |
location - FreelancerProfileSearchLocationInput
|
location of the freelancer |
Example
{
"userType": "Freelancer",
"weightedOntologyIds": [
FreelancerProfileSearchWeightedOntologyIdInput
],
"keyword": "abc123",
"occupationIds": ["abc123"],
"location": FreelancerProfileSearchLocationInput
}
FreelancerProfileSearchLocationInput
Fields
| Input Field | Description |
|---|---|
country - String
|
Country name or code |
state - String
|
State or region |
city - String
|
City name |
area - FreelancerProfileSearchAreaInput
|
Geographic area to narrow the search |
Example
{
"country": "abc123",
"state": "xyz789",
"city": "xyz789",
"area": FreelancerProfileSearchAreaInput
}
FreelancerProfileSearchUserTypeEnum
Values
| Enum Value | Description |
|---|---|
|
|
Search among freelancer users |
|
|
Search among client users |
Example
"Freelancer"
FreelancerProfileSearchWeightedOntologyIdInput
FreelancerProfilesSearchRecord
Description
Freelancer profiles search record
Fields
| Field Name | Description |
|---|---|
id - ID
|
Record Id |
title - String
|
title of the freelancer profile |
description - String
|
description of the freelancer's profile |
shortName - String
|
shortName of the freelancer |
ciphertext - String
|
freelancer's ciphertext |
portrait - String
|
portrait url of the freelancer |
lastActiveDateTime - String
|
DateTime when the freelancer was last active on the platform |
totalHourlyJobs - Int
|
total count of hourly jobs |
totalFixedPriceJobs - Int
|
total count of fixed price jobs |
skills - [Skill]
|
skills of the freelancer |
hourlyRate - Money
|
hourly rate of the freelancer |
topRatedStatus - String
|
Top rated status |
avgFeedbackScore - Float
|
average feedback score across all contracts |
hideEarnings - Boolean
|
boolean indicating if the earnings are hidden from the profile |
freelancer - CurrentUser
|
user details of the freelancer |
location - FreelancerSearchResultLocation
|
Freelancer's location |
contracts - [FreelancerSearchResultContractSummary]
|
Contracts executed by the freelancer |
Example
{
"id": "4",
"title": "abc123",
"description": "abc123",
"shortName": "abc123",
"ciphertext": "abc123",
"portrait": "xyz789",
"lastActiveDateTime": "abc123",
"totalHourlyJobs": 987,
"totalFixedPriceJobs": 123,
"skills": [Skill],
"hourlyRate": Money,
"topRatedStatus": "abc123",
"avgFeedbackScore": 123.45,
"hideEarnings": true,
"freelancer": CurrentUser,
"location": FreelancerSearchResultLocation,
"contracts": [FreelancerSearchResultContractSummary]
}
FreelancerProfilesSearchRecordInterface
FreelancerProfilesSearchRecordsConnection
Description
The connection type for SearchResult.
Fields
| Field Name | Description |
|---|---|
edges - [FreelancerProfilesSearchResultEdge!]
|
list of edges |
pageInfo - PageInfo
|
Information that aids in pagination. |
totalCount - Int
|
Total number of matching records |
Example
{
"edges": [FreelancerProfilesSearchResultEdge],
"pageInfo": PageInfo,
"totalCount": 123
}
FreelancerProfilesSearchResultEdge
Description
An edge in a connection.
Fields
| Field Name | Description |
|---|---|
node - FreelancerProfilesSearchRecordType
|
The item at the end of the edge. |
cursor - String!
|
A cursor for use in pagination. |
Example
{
"node": FreelancerProfilesSearchRecord,
"cursor": "abc123"
}
FreelancerSearchResultContractFeedbackSummary
FreelancerSearchResultContractSummary
Description
Summary of the each contract executed by the freelancer
Fields
| Field Name | Description |
|---|---|
description - String
|
description of the contract |
feedback - FreelancerSearchResultContractFeedbackSummary
|
feedback given at the end of the contrat by the client |
title - String
|
title of the contract |
hourlyRate - Money
|
hourly rate on the this contract |
totalHours - Int
|
total number of hours spent on this contract |
totalCharges - Money
|
total charges incurred on this contract |
startedDateTime - String
|
start date of the contract |
endDateTime - String
|
end date of the contract |
Example
{
"description": "abc123",
"feedback": FreelancerSearchResultContractFeedbackSummary,
"title": "abc123",
"hourlyRate": Money,
"totalHours": 123,
"totalCharges": Money,
"startedDateTime": "xyz789",
"endDateTime": "xyz789"
}
FreelancerSearchResultLocation
FreelancerType
Description
Freelancer type
Values
| Enum Value | Description |
|---|---|
|
|
Agency contractors |
|
|
Independent freelancers |
Example
"Agency"
MarketplaceJobPostingsSearchFilter
Fields
| Input Field | Description |
|---|---|
searchExpression_eq - String
|
Generic search filter supports partial Lucene syntax |
skillExpression_eq - String
|
Supports multiple skills separated by commas (,). When specifying multiple skills, a Boolean OR is applied between them. Ex: skillExpression_eq:"crm-software,proofreading" |
titleExpression_eq - String
|
Searches for any words within the job title field.Ex: titleExpression_eq:"Data" |
searchTerm_eq - SearchTerm
|
Provides additional search terms to check, ignored if searchExpression_eq used. Ex: searchTerm_eq:{ exactTerms_any:["penatibus"] excludeTerms_any:["elit","Donec","Pellentesque"] orTerms_any:["sociis"] andTerms_all:["penatibus"] } |
categoryIds_any - [ID!]
|
The id of category of the returned jobs. Parameter works with OR behavior |
subcategoryIds_any - [ID!]
|
The id of subcategory of the returned jobs. Parameter works with OR behavior |
occupationIds_any - [ID!]
|
The occupationUID of the jobs to return. UIDs should be taken from Ontology and values will be handled with OR |
ontologySkillIds_all - [ID!]
|
The ontology skill element uid of the jobs to return. UIDs should be taken from Ontology and values will be handled with AND |
jobType_eq - ContractType
|
Constrains the search to jobs of the provided job type |
workload_eq - EngagementType
|
Workload of the hourly jobs. Fixed price jobs will be returned no matter they do not have workload |
clientHiresRange_eq - IntRange
|
Constrains the search to jobs from clients with the number of past hires to feet the specified range or value |
budgetRange_eq - IntRange
|
Constrains the search to jobs from clients with the budget. Hourly jobs will be returned no matter they do not have budget |
hourlyRate_eq - IntRange
|
Constrains the search to jobs from clients with the budget. Hourly jobs will be returned no matter they do not have budget |
verifiedPaymentOnly_eq - Boolean
|
Whether to only return jobs of clients with verified payment method |
previousClients_eq - Boolean
|
Return jobs of the clients user worked with (applies to freelancer/agency user site jobs search/jobs feed only) |
experienceLevel_eq - ExperienceLevel
|
Return only jobs with the specified contractor tier |
locations_any - [String!]
|
Country or city of the client that posted a job |
timezone_eq - String
|
Returns jobs posted by client to the specified timezone. Note that other Global Location Jobs Filters are also applied |
ptcIds_any - [ID!]
|
List of Talent Clouds UIDs freelancer is allowed to see jobs in |
ptcOnly_eq - Boolean
|
|
enterpriseOnly_eq - Boolean
|
|
proposalRange_eq - IntRange
|
|
pagination_eq - Pagination
|
|
area_eq - AreaFilter
|
|
preserveFacet_eq - String
|
|
userLocationMatch_eq - Boolean
|
|
visitorCountry_eq - String
|
Example
{
"searchExpression_eq": "abc123",
"skillExpression_eq": "xyz789",
"titleExpression_eq": "xyz789",
"searchTerm_eq": SearchTerm,
"categoryIds_any": ["4"],
"subcategoryIds_any": ["4"],
"occupationIds_any": [4],
"ontologySkillIds_all": ["4"],
"jobType_eq": "HOURLY",
"workload_eq": "FULL_TIME",
"clientHiresRange_eq": IntRange,
"budgetRange_eq": IntRange,
"hourlyRate_eq": IntRange,
"verifiedPaymentOnly_eq": false,
"previousClients_eq": false,
"experienceLevel_eq": "ENTRY_LEVEL",
"locations_any": ["abc123"],
"timezone_eq": "xyz789",
"ptcIds_any": ["4"],
"ptcOnly_eq": true,
"enterpriseOnly_eq": true,
"proposalRange_eq": IntRange,
"pagination_eq": Pagination,
"area_eq": AreaFilter,
"preserveFacet_eq": "abc123",
"userLocationMatch_eq": true,
"visitorCountry_eq": "abc123"
}
Paging
PagingInfo
Search
Description
Search result
Fields
| Field Name | Description |
|---|---|
searchFreelancerPublicProfile - SemSearchV2Response!
|
Returns the Freelancer Profiles based on the given filter and publicly visible |
Arguments
|
|
Example
{"searchFreelancerPublicProfile": SemSearchV2Response}
SemSearchV2DoubleRange
SemSearchV2IntRange
SemSearchV2Profile
Description
SEM profile result
Fields
| Field Name | Description |
|---|---|
profile - TalentProfile
|
Talent profile details |
Example
{"profile": TalentProfile}
SemSearchV2Request
Description
SEM search request
Fields
| Input Field | Description |
|---|---|
paging - Paging
|
Pagination options |
userQuery - String
|
Free text query |
occupationUid - String
|
Occupation UID filter |
title - String
|
Title filter |
countries - [String!]
|
Country filters |
states - [String!]
|
State/region filters |
cities - [String!]
|
City filters |
hourlyRate - SemSearchV2DoubleRange
|
Hourly rate range |
jobSuccessScore - SemSearchV2DoubleRange
|
Job Success Score range |
totalJobs - SemSearchV2IntRange
|
Total jobs range |
topRated - Boolean
|
Filter by Top Rated status |
risingTalent - Boolean
|
Filter by Rising Talent status |
hasPortrait100 - Boolean
|
Require portrait image (100px) |
skillsNames - [String!]
|
Skill name filters |
skillsUids - [String!]
|
Skill UID filters |
vemSkills - [VemSkill!]
|
VEM skills to boost |
type - FreelancerType
|
Freelancer type filter |
addAgencyPreview - Boolean
|
Include agency preview data |
agencySearch - Boolean
|
Restrict to agency search |
publicVisibilityOnly - Boolean
|
Only include publicly visible profiles |
Example
{
"paging": Paging,
"userQuery": "abc123",
"occupationUid": "xyz789",
"title": "abc123",
"countries": ["xyz789"],
"states": ["xyz789"],
"cities": ["abc123"],
"hourlyRate": SemSearchV2DoubleRange,
"jobSuccessScore": SemSearchV2DoubleRange,
"totalJobs": SemSearchV2IntRange,
"topRated": true,
"risingTalent": true,
"hasPortrait100": false,
"skillsNames": ["abc123"],
"skillsUids": ["abc123"],
"vemSkills": [VemSkill],
"type": "Agency",
"addAgencyPreview": false,
"agencySearch": false,
"publicVisibilityOnly": true
}
SemSearchV2Response
Description
SEM search response
Fields
| Field Name | Description |
|---|---|
pagingInfo - PagingInfo!
|
Paging information for the result set |
profiles - [SemSearchV2Profile]!
|
Matching profiles |
Example
{
"pagingInfo": PagingInfo,
"profiles": [SemSearchV2Profile]
}
UserFreelancerProfilesSearchRecord
Description
Search record for user freelancer profiles
Fields
| Field Name | Description |
|---|---|
shortName - String
|
shortName of the freelancer |
ciphertext - String
|
freelancer's ciphertext |
user - GenericUser
|
freelancer id, ciphertext |
userProfile - FreelancerProfile
|
freelancer profile details |
Example
{
"shortName": "xyz789",
"ciphertext": "abc123",
"user": GenericUser,
"userProfile": FreelancerProfile
}
VemSkill
Talent Clouds
Day
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"MONDAY"
PrivateTalentCloud
Description
A private group of professional freelancers and agencies for Upwork Enterprise clients
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Unique identifier for the talent cloud |
name - String!
|
Name of the talent cloud |
creator - GenericUser!
|
User who created the talent cloud |
creatorOrganization - GenericOrganization!
|
Organization of the talent cloud creator |
joinInstructions - String!
|
Instructions displayed to freelancers when requesting to join |
welcomeMessageToAddedFreelancers - String!
|
Welcome message displayed to freelancers after joining |
joinRequestAutoApproved - Boolean!
|
Whether join requests are automatically approved without manual review |
messageAfterJoinRequest - String!
|
Message displayed to freelancers after submitting a join request |
joinRejectionMessage - String!
|
Message displayed to freelancers if their join request was rejected |
externalName - String
|
Name displayed in external contexts outside the client company |
active - Boolean!
|
Whether the talent cloud is currently active |
joinRequestNotifyUsers - [GenericUser]!
|
Users to notify when new join requests are created |
logoImageLarge - File
|
Large logo image file |
logoImageSmall - File
|
Small logo image file |
description - String!
|
Description of the talent cloud |
onboardingTaskEnabled - Boolean!
|
Whether onboarding tasks are enabled for this talent cloud |
onboardingTaskEnableUpdatedDateTime - String
|
Timestamp when onboarding tasks were first enabled |
selectable - Boolean!
|
Whether this talent cloud can be selected for new offers |
talentCloudTasks - [TalentCloudTask]
|
List of talent cloud task overviews |
Example
{
"id": 4,
"name": "xyz789",
"creator": GenericUser,
"creatorOrganization": GenericOrganization,
"joinInstructions": "abc123",
"welcomeMessageToAddedFreelancers": "abc123",
"joinRequestAutoApproved": false,
"messageAfterJoinRequest": "xyz789",
"joinRejectionMessage": "abc123",
"externalName": "abc123",
"active": true,
"joinRequestNotifyUsers": [GenericUser],
"logoImageLarge": File,
"logoImageSmall": File,
"description": "abc123",
"onboardingTaskEnabled": false,
"onboardingTaskEnableUpdatedDateTime": "abc123",
"selectable": true,
"talentCloudTasks": [TalentCloudTask]
}
PrivateTalentCloudConnection
Description
Connection type for paginated private talent cloud results
Fields
| Field Name | Description |
|---|---|
totalCount - Int
|
Total number of talent clouds matching the query |
edges - [PrivateTalentCloudEdge]
|
List of talent cloud edges with cursors |
pageInfo - PageInfo
|
Pagination information for navigating results |
Example
{
"totalCount": 123,
"edges": [PrivateTalentCloudEdge],
"pageInfo": PageInfo
}
PrivateTalentCloudEdge
Description
Edge type containing a private talent cloud node and its cursor
Fields
| Field Name | Description |
|---|---|
cursor - String
|
Cursor for this edge used in pagination |
node - PrivateTalentCloud
|
The private talent cloud at this edge |
Example
{
"cursor": "abc123",
"node": PrivateTalentCloud
}
TalentAdjustedCategoryScore
Description
Adjusted feedback score for a specific job category
Fields
| Field Name | Description |
|---|---|
averageCategoryScore - Float
|
Average score for this category |
Example
{"averageCategoryScore": 987.65}
TalentCloudSection
Description
Talent cloud section details
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Section identifier |
talentCloud - PrivateTalentCloud
|
The talent cloud this section belongs to |
name - String
|
Section name |
description - String
|
Section description |
type - TalentCloudTaskSectionType
|
Type of section (ONBOARDING, OFFBOARDING, etc.) |
attachmentIds - [ID]
|
List of attachment IDs for this section |
active - Boolean
|
Whether this section is active |
orderIndex - Int
|
Display order index |
Example
{
"id": 4,
"talentCloud": PrivateTalentCloud,
"name": "abc123",
"description": "xyz789",
"type": "ONBOARDING",
"attachmentIds": [4],
"active": true,
"orderIndex": 123
}
TalentCloudTask
Description
Talent cloud task overview with sections
Fields
| Field Name | Description |
|---|---|
talentCloud - PrivateTalentCloud
|
The talent cloud this task belongs to |
taskSections - [TalentCloudTaskSection]
|
List of task sections |
Example
{
"talentCloud": PrivateTalentCloud,
"taskSections": [TalentCloudTaskSection]
}
TalentCloudTaskOverview
Description
Overview of a talent cloud task
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Task identifier |
taskSectionIds - [ID]
|
List of section IDs this task belongs to |
name - String
|
Task name |
completionRequired - Boolean
|
Whether completion of this task is required |
active - Boolean
|
Whether this task is active |
permissions - [TalentCloudTaskOverviewPermission]
|
List of permissions for different roles |
primaryTaskOwner - TalentCloudTaskRole
|
Primary owner role for this task |
Example
{
"id": "4",
"taskSectionIds": [4],
"name": "xyz789",
"completionRequired": false,
"active": false,
"permissions": [TalentCloudTaskOverviewPermission],
"primaryTaskOwner": "FREELANCER"
}
TalentCloudTaskOverviewPermission
Description
Permission mapping for a specific role on a task
Fields
| Field Name | Description |
|---|---|
role - TalentCloudTaskRole
|
The role this permission applies to |
permission - TalentCloudTaskPermission
|
The permission level (NO, VIEW, WRITE) |
Example
{"role": "FREELANCER", "permission": "NO"}
TalentCloudTaskPermission
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"NO"
TalentCloudTaskRole
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"FREELANCER"
TalentCloudTaskSection
Description
Task section containing section details and tasks
Fields
| Field Name | Description |
|---|---|
taskSectionDetails - TalentCloudSection
|
Details of the task section |
tasks - [TalentCloudTaskOverview]
|
List of tasks in this section |
Example
{
"taskSectionDetails": TalentCloudSection,
"tasks": [TalentCloudTaskOverview]
}
TalentCloudTaskSectionType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"ONBOARDING"
TalentCloudTasksInputFilter
Fields
| Input Field | Description |
|---|---|
talentCloudIds_any - [ID!]!
|
Example
{"talentCloudIds_any": [4]}
TalentCommunityCertificate
Description
Community certificate details including provider and verification info
Fields
| Field Name | Description |
|---|---|
name - String
|
Certificate name |
description - String
|
Certificate description |
logoUrl - String
|
URL to certificate logo |
verificationMethod - String
|
Method used to verify the certificate |
provider - String
|
Certificate provider organization |
providerLink - String
|
Link to provider website |
duration - Int
|
Certificate duration in days |
classifications - [TalentDiversityCertificateClassification]
|
Diversity classifications for this certificate |
status - TalentCommunityCertificateStatus
|
Current status of the certificate |
Example
{
"name": "abc123",
"description": "xyz789",
"logoUrl": "xyz789",
"verificationMethod": "abc123",
"provider": "abc123",
"providerLink": "abc123",
"duration": 123,
"classifications": [
TalentDiversityCertificateClassification
],
"status": "PENDING"
}
TalentCommunityCertificateStatus
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"PENDING"
TalentCommunityCertificateVisibility
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"PUBLIC"
TalentContract
Description
Contract details including terms, status, and dates
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Contract identifier |
startDate - String
|
Contract start date |
endDate - String
|
Contract end date |
status - TalentContractStatus
|
Current contract status |
clientTeamId - ID
|
Client team identifier |
title - String
|
Contract title |
terms - TalentContractTerms
|
Contract terms (rate, amount, type) |
createDate - String
|
When contract was created |
clientOrgId - ID
|
Client organization identifier |
Example
{
"id": 4,
"startDate": "xyz789",
"endDate": "xyz789",
"status": "ACTIVE",
"clientTeamId": "4",
"title": "abc123",
"terms": TalentContractTerms,
"createDate": "xyz789",
"clientOrgId": "4"
}
TalentContractAccessType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"PUBLIC"
TalentContractAggregate
TalentContractFeedback
Description
Feedback given and received for a contract
Fields
| Field Name | Description |
|---|---|
feedbackToFreelancer - TalentWorkFeedback
|
Feedback from client to freelancer |
feedbackToClient - TalentWorkFeedback
|
Feedback from freelancer to client |
Example
{
"feedbackToFreelancer": TalentWorkFeedback,
"feedbackToClient": TalentWorkFeedback
}
TalentContractStatus
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"ACTIVE"
TalentContractTerms
Description
Contract terms including rate and payment structure
Fields
| Field Name | Description |
|---|---|
hourlyRate - String
|
Hourly rate |
jobType - TalentJobType
|
Job type (hourly or fixed) |
stipendAmount - String
|
Stipend amount if applicable |
fixedAmount - String
|
Fixed amount if applicable |
Example
{
"hourlyRate": "xyz789",
"jobType": "FIXED",
"stipendAmount": "xyz789",
"fixedAmount": "abc123"
}
TalentDiversityCertificateClassification
TalentEducationRecord
Description
Education record (deprecated, use TalentProfileEducationRecord)
Fields
| Field Name | Description |
|---|---|
id - String
|
Education record identifier |
personId - String
|
Person identifier |
institutionName - String
|
Name of educational institution |
standardizedInstitutionId - String
|
Standardized institution identifier |
areaOfStudy - String
|
Field of study |
standardizedAreaOfStudyId - String
|
Standardized area of study identifier |
degree - String
|
Degree obtained |
standardizedDegreeId - String
|
Standardized degree identifier |
startDateTime - String
|
When education started |
endDateTime - String
|
When education ended |
comment - String
|
Additional comments |
Example
{
"id": "abc123",
"personId": "xyz789",
"institutionName": "abc123",
"standardizedInstitutionId": "xyz789",
"areaOfStudy": "xyz789",
"standardizedAreaOfStudyId": "abc123",
"degree": "abc123",
"standardizedDegreeId": "xyz789",
"startDateTime": "xyz789",
"endDateTime": "abc123",
"comment": "abc123"
}
TalentFeedbackScore
TalentJobCategory
TalentJobCategoryGroup
Description
Job category group with selected categories
Fields
| Field Name | Description |
|---|---|
id - String
|
Category group identifier |
name - String
|
Category group name |
selectedCategories - [TalentJobCategory]
|
List of selected categories in this group |
Example
{
"id": "abc123",
"name": "xyz789",
"selectedCategories": [TalentJobCategory]
}
TalentJobType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"FIXED"
TalentOpening
Description
Job opening details including title, description, and requirements
Fields
| Field Name | Description |
|---|---|
id - ID
|
Opening identifier |
title - String
|
Job title |
visibility - TalentContractAccessType
|
Job visibility setting |
Example
{
"id": "4",
"title": "abc123",
"visibility": "PUBLIC"
}
TalentPersonAvailability
Description
Freelancer availability information including capacity and schedule
Fields
| Field Name | Description |
|---|---|
personId - String
|
Person identifier |
capacity - FreelancerProfileAvailabilityCapacity
|
Availability capacity (full-time, part-time, etc.) |
createdDateTime - String
|
When availability record was created |
availabilityDateTime - String
|
When freelancer becomes available |
updatedDateTime - String
|
Last update timestamp |
purchasedInvitationBadge - TalentPurchasedInvitationBadge
|
Purchased invitation badge status |
minHours - Int
|
Minimum hours available per week |
maxHours - Int
|
Maximum hours available per week |
availableDays - [Day]!
|
Days of the week available for work |
Example
{
"personId": "abc123",
"capacity": "fullTime",
"createdDateTime": "abc123",
"availabilityDateTime": "abc123",
"updatedDateTime": "xyz789",
"purchasedInvitationBadge": TalentPurchasedInvitationBadge,
"minHours": 123,
"maxHours": 123,
"availableDays": ["MONDAY"]
}
TalentProfile
Description
Freelancer profile containing all profile information and settings
Fields
| Field Name | Description |
|---|---|
personId - ID!
|
Unique identifier for the person |
identity - TalentProfileIdentity
|
Profile identity information |
personalData - TalentProfilePersonalData
|
Personal data including name, title, description |
preferences - TalentProfileUserPreferences
|
User preferences for profile visibility and privacy |
settings - TalentProfileSettings
|
Profile settings and status |
personAvailability - TalentPersonAvailability
|
Availability information for the freelancer |
projectList - TalentProjectList
|
List of portfolio projects |
communityCertificates - [TalentProfileCommunityCertificate]
|
Community and diversity certificates |
profileCompleteness - TalentProfileCompletenessSummary
|
Profile completeness summary with PCI score |
otherExperiences - [TalentProfileOtherExperience]
|
Other professional experiences |
educationRecords - [TalentEducationRecord]
|
Education history records |
employmentRecords - [TalentProfileEmploymentRecord]
|
Employment history records |
skills - [TalentProfilePersonSkill]
|
Skills listed on the profile |
jobCategories - [TalentJobCategoryGroup]
|
Job categories and subcategories |
profileAggregates - TalentProfileAggregate
|
Aggregated profile statistics and metrics |
specializedProfiles - [TalentSpecializedProfile!]
|
Specialized profiles for different services |
specializedProfilesSkills - [TalentSpecializedProfileSkill!]
|
Skills for specialized profiles |
specializedProfilesProjects - [TalentSpecializedProfilesProject!]
|
Projects for specialized profiles |
Example
{
"personId": 4,
"identity": TalentProfileIdentity,
"personalData": TalentProfilePersonalData,
"preferences": TalentProfileUserPreferences,
"settings": TalentProfileSettings,
"personAvailability": TalentPersonAvailability,
"projectList": TalentProjectList,
"communityCertificates": [
TalentProfileCommunityCertificate
],
"profileCompleteness": TalentProfileCompletenessSummary,
"otherExperiences": [TalentProfileOtherExperience],
"educationRecords": [TalentEducationRecord],
"employmentRecords": [TalentProfileEmploymentRecord],
"skills": [TalentProfilePersonSkill],
"jobCategories": [TalentJobCategoryGroup],
"profileAggregates": TalentProfileAggregate,
"specializedProfiles": [TalentSpecializedProfile],
"specializedProfilesSkills": [
TalentSpecializedProfileSkill
],
"specializedProfilesProjects": [
TalentSpecializedProfilesProject
]
}
TalentProfileAggregate
Description
Aggregated profile statistics and metrics for a freelancer
Fields
| Field Name | Description |
|---|---|
lastWorkedOn - String
|
Last date freelancer worked |
totalHourlyJobs - Int
|
Total number of hourly jobs completed |
totalFixedJobs - Int
|
Total number of fixed-price jobs completed |
topRatedStatus - String
|
Top Rated status |
totalFeedback - Float
|
Total feedback score |
totalEarnings - Float
|
Total earnings across all jobs |
adjustedCategoryScores - [TalentAdjustedCategoryScore]
|
Adjusted scores by category |
totalJobs - Int
|
Total number of jobs completed |
Example
{
"lastWorkedOn": "abc123",
"totalHourlyJobs": 123,
"totalFixedJobs": 123,
"topRatedStatus": "abc123",
"totalFeedback": 987.65,
"totalEarnings": 987.65,
"adjustedCategoryScores": [TalentAdjustedCategoryScore],
"totalJobs": 987
}
TalentProfileCommunityCertificate
Description
Community or diversity certificate associated with a freelancer profile
Fields
| Field Name | Description |
|---|---|
personId - String
|
Person identifier |
certificateAttachmentId - String
|
Attachment ID for certificate document |
certificationNumber - String
|
Certificate number or identifier |
expirationDate - String
|
Certificate expiration date |
businessName - String
|
Business name on the certificate |
visibility - TalentCommunityCertificateVisibility
|
Visibility setting for the certificate |
certificate - TalentCommunityCertificate
|
Certificate details |
Example
{
"personId": "abc123",
"certificateAttachmentId": "xyz789",
"certificationNumber": "xyz789",
"expirationDate": "xyz789",
"businessName": "abc123",
"visibility": "PUBLIC",
"certificate": TalentCommunityCertificate
}
TalentProfileCompletenessSummary
Description
Profile completeness summary with PCI score and section counts
Fields
| Field Name | Description |
|---|---|
personId - String
|
Person identifier |
pciActual - Int
|
Actual profile completeness index score |
pciDisplay - Int
|
Display-friendly PCI score |
pciAction - String
|
Suggested action to improve completeness |
pciActionCredit - Int
|
Points awarded for completing the action |
pciDateTime - String
|
When PCI was last calculated |
actionForEmptySection - String
|
Action to take for empty profile sections |
skillsCount - Int
|
Number of skills on profile |
employmentRecordCount - Int
|
Number of employment records |
portraitExists - Boolean
|
Whether profile has a portrait photo |
overviewExists - Boolean
|
Whether profile has an overview/description |
passedTestsCount - Int
|
Number of passed tests |
educationRecordCount - Int
|
Number of education records |
certificatesCount - Int
|
Number of certificates |
otherExperiencesCount - Int
|
Number of other experiences |
portfolioCount - Int
|
Number of portfolio items |
esnCount - Int
|
Employment Security Number count |
updatedDateTime - String
|
Last update timestamp |
Example
{
"personId": "abc123",
"pciActual": 123,
"pciDisplay": 123,
"pciAction": "abc123",
"pciActionCredit": 123,
"pciDateTime": "abc123",
"actionForEmptySection": "abc123",
"skillsCount": 987,
"employmentRecordCount": 987,
"portraitExists": false,
"overviewExists": true,
"passedTestsCount": 987,
"educationRecordCount": 123,
"certificatesCount": 123,
"otherExperiencesCount": 123,
"portfolioCount": 987,
"esnCount": 987,
"updatedDateTime": "abc123"
}
TalentProfileEmploymentRecord
Description
Employment history record (deprecated, use TalentProfileEmploymentHistoryRecord)
Fields
| Field Name | Description |
|---|---|
id - String
|
Employment record identifier |
personId - String
|
Person identifier |
companyName - String
|
Company name |
jobTitle - String
|
Job title |
standardizedCompanyId - String
|
Standardized company identifier |
standardizedJobTitleId - String
|
Standardized job title identifier |
role - String
|
Role description |
startDateTime - String
|
Employment start timestamp |
endDateTime - String
|
Employment end timestamp |
description - String
|
Job description |
city - String
|
City of employment |
country - String
|
Country of employment |
Example
{
"id": "abc123",
"personId": "xyz789",
"companyName": "abc123",
"jobTitle": "abc123",
"standardizedCompanyId": "abc123",
"standardizedJobTitleId": "abc123",
"role": "xyz789",
"startDateTime": "xyz789",
"endDateTime": "abc123",
"description": "xyz789",
"city": "xyz789",
"country": "xyz789"
}
TalentProfileIdentity
TalentProfileOtherExperience
Description
Other professional experience not categorized elsewhere
Example
{
"id": 4,
"personId": "4",
"subject": "abc123",
"description": "abc123",
"active": true
}
TalentProfilePersonalData
Description
Personal data including name, title, description, and billing rate
Fields
| Field Name | Description |
|---|---|
firstName - String!
|
Freelancer's first name |
lastName - String!
|
Freelancer's last name |
portrait - Portrait
|
Profile photo or avatar |
title - String
|
Profile Title |
description - String
|
Profile Description |
chargeRate - Money!
|
Freelancer's typical billing rate |
profileUrl - String
|
link to the freelancer's profile |
profileState - PersonalDataProfileState
|
under Review, auto rejected, rejected, accepted etc. |
location - PersonalDataLocation
|
Personal Data location |
Example
{
"firstName": "abc123",
"lastName": "abc123",
"portrait": Portrait,
"title": "abc123",
"description": "abc123",
"chargeRate": Money,
"profileUrl": "abc123",
"profileState": "IN_PROGRESS",
"location": PersonalDataLocation
}
TalentProfilePersonSkill
Description
Skill listed on a freelancer profile with ontology mapping
Fields
| Field Name | Description |
|---|---|
id - ID
|
Skill identifier |
skill - String
|
Skill name |
prettyName - String
|
Display-friendly skill name |
status - String
|
Skill status |
description - String
|
Skill description |
externalLink - String
|
External reference link |
wikipediaPageId - String
|
Wikipedia page identifier |
freebaseMachineId - String
|
Freebase machine identifier |
migrateTo - String
|
Migration target skill identifier |
ctime - String
|
Creation timestamp |
mtime - String
|
Modification timestamp |
rank - String
|
Display rank |
ontologySkill - Skill
|
Ontology skill mapping |
parentOntologySkill - Skill
|
Parent ontology skill if applicable |
Example
{
"id": "4",
"skill": "abc123",
"prettyName": "abc123",
"status": "xyz789",
"description": "xyz789",
"externalLink": "xyz789",
"wikipediaPageId": "xyz789",
"freebaseMachineId": "xyz789",
"migrateTo": "xyz789",
"ctime": "xyz789",
"mtime": "abc123",
"rank": "xyz789",
"ontologySkill": Skill,
"parentOntologySkill": Skill
}
TalentProfileProject
Description
Portfolio project showcasing freelancer work
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Project identifier |
title - String
|
Project title |
description - String
|
Project description |
projectContractLink - TalentProjectContractLink
|
Link to related contract if applicable |
thumbnail - String
|
|
thumbnailOriginal - String
|
|
projectUrl - String
|
|
completionDateTime - String
|
|
public - Boolean
|
|
rank - Int
|
|
attachments - [TalentProfileProjectAttachment]
|
|
skills - [String]
|
|
creationDateTime - String
|
|
categoryId - ID
|
|
videoUrl - String
|
|
occupationId - String
|
|
projectType - FreelancerProfileProjectType
|
|
role - String
|
|
projectGoal - String
|
|
solution - String
|
|
primaryImageId - String
|
|
tags - [TalentProfileProjectTag]
|
|
modificationDateTime - String
|
|
developerId - String
|
|
thumbnailId - String
|
|
thumbnailOriginalId - String
|
|
category - String
|
|
subCategory - String
|
Example
{
"id": "4",
"title": "xyz789",
"description": "xyz789",
"projectContractLink": TalentProjectContractLink,
"thumbnail": "xyz789",
"thumbnailOriginal": "abc123",
"projectUrl": "abc123",
"completionDateTime": "xyz789",
"public": true,
"rank": 123,
"attachments": [TalentProfileProjectAttachment],
"skills": ["abc123"],
"creationDateTime": "xyz789",
"categoryId": 4,
"videoUrl": "xyz789",
"occupationId": "abc123",
"projectType": "CLASSIC_VIEW",
"role": "abc123",
"projectGoal": "abc123",
"solution": "xyz789",
"primaryImageId": "xyz789",
"tags": [TalentProfileProjectTag],
"modificationDateTime": "abc123",
"developerId": "xyz789",
"thumbnailId": "xyz789",
"thumbnailOriginalId": "xyz789",
"category": "xyz789",
"subCategory": "xyz789"
}
TalentProfileProjectAttachment
Description
File or media attachment for a portfolio project
Fields
| Field Name | Description |
|---|---|
id - ID
|
Attachment identifier |
type - String
|
Attachment type (image, video, document) |
title - String
|
Attachment title |
attachmentName - String
|
Original filename |
attachmentSize - Int
|
File size in bytes |
originalAttachment - String
|
URL to original attachment |
imageSmall - String
|
URL to small image version |
imageMiddle - String
|
URL to medium image version |
imageLarge - String
|
URL to large image version |
rank - Int
|
Display order rank |
creationDateTime - String
|
When attachment was created |
description - String
|
Attachment description |
videoUrl - String
|
Video URL if applicable |
imageFixedWidth - String
|
URL to fixed-width image version |
group - String
|
Attachment group |
Example
{
"id": "4",
"type": "xyz789",
"title": "xyz789",
"attachmentName": "xyz789",
"attachmentSize": 987,
"originalAttachment": "xyz789",
"imageSmall": "xyz789",
"imageMiddle": "abc123",
"imageLarge": "abc123",
"rank": 123,
"creationDateTime": "xyz789",
"description": "xyz789",
"videoUrl": "abc123",
"imageFixedWidth": "abc123",
"group": "xyz789"
}
TalentProfileProjectTag
TalentProfileSettings
Description
Profile settings and account status information
Fields
| Field Name | Description |
|---|---|
provider - Boolean
|
Whether user is a service provider use idbc or legacySignalsDS |
suspended - Boolean
|
Whether account is suspended use idbc or legacySignalsDS |
disabled - Boolean
|
Whether account is disabled |
status - String
|
Current profile status |
updatedDateTime - String
|
Last update timestamp |
Example
{
"provider": true,
"suspended": false,
"disabled": false,
"status": "abc123",
"updatedDateTime": "xyz789"
}
TalentProfileSpecializedProject
Description
Portfolio project for a specialized profile
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Project identifier |
title - String
|
Project title |
description - String
|
Project description |
projectContractLink - TalentProjectContractLink
|
Link to related contract if applicable |
thumbnail - String
|
|
thumbnailOriginal - String
|
|
projectUrl - String
|
|
completionDateTime - String
|
|
public - Boolean
|
|
rank - Int
|
|
attachments - [TalentProfileProjectAttachment]
|
|
creationDateTime - String
|
|
categoryId - ID
|
|
videoUrl - String
|
|
occupationId - String
|
|
projectType - FreelancerProfileProjectType
|
|
role - String
|
|
projectGoal - String
|
|
solution - String
|
|
primaryImageId - String
|
|
modificationDateTime - String
|
|
thumbnailId - String
|
|
thumbnailOriginalId - String
|
|
category - String
|
|
subCategory - String
|
Example
{
"id": 4,
"title": "abc123",
"description": "abc123",
"projectContractLink": TalentProjectContractLink,
"thumbnail": "abc123",
"thumbnailOriginal": "xyz789",
"projectUrl": "abc123",
"completionDateTime": "xyz789",
"public": true,
"rank": 123,
"attachments": [TalentProfileProjectAttachment],
"creationDateTime": "abc123",
"categoryId": "4",
"videoUrl": "abc123",
"occupationId": "xyz789",
"projectType": "CLASSIC_VIEW",
"role": "abc123",
"projectGoal": "abc123",
"solution": "xyz789",
"primaryImageId": "abc123",
"modificationDateTime": "xyz789",
"thumbnailId": "abc123",
"thumbnailOriginalId": "abc123",
"category": "xyz789",
"subCategory": "abc123"
}
TalentProfileStatus
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"DRAFT"
TalentProfileUserPreferences
Description
User preferences for profile visibility and privacy settings
Fields
| Field Name | Description |
|---|---|
visibilityLevel - FreelancerProfileVisibility
|
Profile visibility level (public, auth, private) |
hideAgencyEarnings - Boolean
|
Whether to hide agency earnings from profile |
hideEarnings - Boolean
|
Whether to hide all earnings from profile |
exposeFullName - Boolean
|
Whether to expose full name on profile |
clientFeedbackOptional - Boolean
|
Whether client feedback is optional |
contractToHire - Boolean
|
flag of whether the freelancer is open to contract to hire |
Example
{
"visibilityLevel": "PUBLIC",
"hideAgencyEarnings": false,
"hideEarnings": false,
"exposeFullName": false,
"clientFeedbackOptional": false,
"contractToHire": true
}
TalentProjectContractLink
Description
Link between a portfolio project and an Upwork contract
Example
{
"id": 4,
"creationDateTime": "abc123",
"state": "xyz789",
"notificationDateTime": "xyz789",
"clientId": "4"
}
TalentProjectList
Description
List of portfolio projects for a freelancer
Fields
| Field Name | Description |
|---|---|
projects - [TalentProfileProject]
|
Array of profile projects |
totalProjects - Int
|
Total number of projects |
updatedDateTime - String
|
Last update timestamp |
Example
{
"projects": [TalentProfileProject],
"totalProjects": 987,
"updatedDateTime": "xyz789"
}
TalentPurchasedInvitationBadge
Description
Purchased invitation badge details for premium visibility
Example
{
"active": false,
"maxPrice": 123,
"nextRenewalAt": "xyz789"
}
TalentSkillNodeEdge
Description
Skill edge with ontology mapping
Fields
| Field Name | Description |
|---|---|
skill - Skill
|
Skill details |
Example
{"skill": Skill}
TalentSpecializedProfile
Description
Specialized profile for a specific service or occupation
Fields
| Field Name | Description |
|---|---|
personId - String
|
Person identifier |
profileId - String
|
Profile identifier |
occupationId - String
|
Occupation identifier |
status - TalentProfileStatus
|
Profile status (draft or published) |
rank - Int
|
Display rank |
occupations - [String]
|
List of occupations |
primary - Boolean
|
Whether this is the primary profile |
title - String
|
Profile title |
description - String
|
Profile description |
hourlyRate - Money
|
Hourly rate for this profile |
weblink - String
|
Web link to profile |
Example
{
"personId": "xyz789",
"profileId": "xyz789",
"occupationId": "xyz789",
"status": "DRAFT",
"rank": 987,
"occupations": ["xyz789"],
"primary": true,
"title": "xyz789",
"description": "abc123",
"hourlyRate": Money,
"weblink": "xyz789"
}
TalentSpecializedProfileSkill
Description
Skills for a specialized profile
Fields
| Field Name | Description |
|---|---|
skills - [TalentSpecializedProfileSkillNode]
|
List of skills for this specialized profile |
Example
{"skills": [TalentSpecializedProfileSkillNode]}
TalentSpecializedProfileSkillNode
Description
Skill node with ontology mapping for specialized profiles
Fields
| Field Name | Description |
|---|---|
ontologySkill - TalentSkillNodeEdge
|
Ontology skill reference |
parentOntologySkill - TalentSkillNodeEdge
|
Parent ontology skill if applicable |
Example
{
"ontologySkill": TalentSkillNodeEdge,
"parentOntologySkill": TalentSkillNodeEdge
}
TalentSpecializedProfilesProject
Description
Project associated with a specialized profile
Fields
| Field Name | Description |
|---|---|
personId - ID
|
Person identifier |
profileId - ID
|
Profile identifier |
project - TalentProfileSpecializedProject
|
Project details |
Example
{
"personId": "4",
"profileId": "4",
"project": TalentProfileSpecializedProject
}
TalentWorkAccessType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"PUBLIC"
TalentWorkFeedback
Description
Feedback details including comment, score, and visibility
Fields
| Field Name | Description |
|---|---|
comment - String
|
Feedback comment text |
response - String
|
Response to feedback |
score - Float
|
Overall feedback score |
scores - [TalentFeedbackScore]
|
Detailed scores by category |
feedbackSuppressed - Boolean
|
Whether feedback is suppressed |
isPublic - Boolean
|
Whether feedback is public |
commentPublic - Boolean
|
Whether comment is public |
point - String
|
Feedback point value |
Example
{
"comment": "abc123",
"response": "abc123",
"score": 987.65,
"scores": [TalentFeedbackScore],
"feedbackSuppressed": false,
"isPublic": true,
"commentPublic": false,
"point": "xyz789"
}
TalentWorkHistory
Description
Work history entry including contract, feedback, and job details
Fields
| Field Name | Description |
|---|---|
contract - TalentContract
|
Contract details |
contractAggregate - TalentContractAggregate
|
Aggregated contract statistics |
feedback - TalentContractFeedback
|
Feedback for this contract |
opening - TalentOpening
|
Job opening details |
Example
{
"contract": TalentContract,
"contractAggregate": TalentContractAggregate,
"feedback": TalentContractFeedback,
"opening": TalentOpening
}
TalentWorkHistoryConnection
Description
Connection type for paginated work history results
Fields
| Field Name | Description |
|---|---|
workHistoryList - [TalentWorkHistory]
|
List of work history items |
totalCount - Int
|
Total number of work history items |
Example
{
"workHistoryList": [TalentWorkHistory],
"totalCount": 987
}
TalentWorkHistoryFilterInput
Description
input parameters for the talentWorkHistory
Fields
| Input Field | Description |
|---|---|
personId - ID!
|
Unique identifier for the person |
contractIds - [ID]
|
person contract ids |
excludeNoFeedback - Boolean
|
|
visibility - TalentWorkAccessType
|
|
status - [TalentContractStatus]
|
|
sort - TalentWorkHistorySort
|
|
pagination - TalentWorkHistoryPagination
|
Example
{
"personId": 4,
"contractIds": ["4"],
"excludeNoFeedback": false,
"visibility": "PUBLIC",
"status": ["ACTIVE"],
"sort": TalentWorkHistorySort,
"pagination": TalentWorkHistoryPagination
}
TalentWorkHistoryPagination
TalentWorkHistorySort
Fields
| Input Field | Description |
|---|---|
type - TalentWorkHistorySortType!
|
|
order - SortOrder!
|
Example
{"type": "NEWEST", "order": "ASC"}
TalentWorkHistorySortType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"NEWEST"
Users and teams
AccessRestictionReason
Description
Reason why access is restricted
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"ROLES_MISMATCH"
AccountAuditRecord
Description
Account audit record
Fields
| Field Name | Description |
|---|---|
processInstanceId - ID!
|
Process instace Id |
status - String
|
Status |
metadata - [StringMapElement!]!
|
Metadata |
Example
{
"processInstanceId": 4,
"status": "abc123",
"metadata": [StringMapElement]
}
AccountProcessInstance
ActivitiesConnection
Description
Paginated collection of activities
Fields
| Field Name | Description |
|---|---|
totalCount - Int
|
Defines total amount of activities |
edges - [ActivityEdge!]
|
Defines list of activities |
page - Page
|
Defines page information |
Example
{
"totalCount": 987,
"edges": [ActivityEdge],
"page": Page
}
Activity
Description
Represents a task/activity available for time tracking
Fields
| Field Name | Description |
|---|---|
totalContracts - Int!
|
Defines the total number of associated contracts Example: "0" |
url - String
|
Defines associated URL |
codeOrder - String
|
Defines code order Example: "team_task_01" |
status - String!
|
Defines activity status Example: "active" |
level - String
|
Defines activity level Example: "team" |
contracts - [ActivityContract]
|
Defines list of related contracts Example: "[12345, 67890]" |
userId - ID
|
Defines the user, which the activity is assigned to |
code - String!
|
Defines activity code |
createdTime - String
|
Defines the exact time when the activity was created Example: "2023-01-16 09:12:57" |
companyId - String
|
Defines the company ID, which the activity belongs to Example: "mycompanyid" |
recordId - ID!
|
Defines unique record ID |
teamId - ID
|
Defines the team ID, which the activity belongs to Example: "myteamid" |
description - String
|
Defines activity description Example: "my test activity" |
Example
{
"totalContracts": 987,
"url": "xyz789",
"codeOrder": "abc123",
"status": "xyz789",
"level": "xyz789",
"contracts": [ActivityContract],
"userId": "4",
"code": "abc123",
"createdTime": "xyz789",
"companyId": "abc123",
"recordId": 4,
"teamId": 4,
"description": "abc123"
}
ActivityContract
Description
Link between an activity and a contract
Fields
| Field Name | Description |
|---|---|
contractId - ID!
|
Defines contract ID Example: "12345" |
Example
{"contractId": 4}
ActivityEdge
Description
Edge wrapper containing an activity node for pagination
Fields
| Field Name | Description |
|---|---|
node - Activity
|
Defines activity node |
Example
{"node": Activity}
ActivityFilterInput
Example
{
"contractId": "4",
"search": "xyz789",
"status": "xyz789",
"detailsLimit": 123
}
AddTeamActivityRequest
Description
Defines activity object that is going to be created
Fields
| Input Field | Description |
|---|---|
code - String!
|
An activity tracking code (this defines the activity tracking code) |
description - String!
|
The description of the code being added |
contractIds - [ID!]
|
List of associated contracts |
budget - Float
|
The budget for the activity |
batchAssignment - BatchAssignmentOptions
|
The level of the activity |
Example
{
"code": "abc123",
"description": "xyz789",
"contractIds": ["4"],
"budget": 123.45,
"batchAssignment": "selectedContracts"
}
AgencyDetails
AvailabilitySource
Description
Sources of availability updates for a freelancer
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"st_assgn_e"
BatchAssignmentOptions
Description
Assignment scope options for activities
Values
| Enum Value | Description |
|---|---|
|
|
Selected contracts only |
|
|
All contracts within the immediate organization |
|
|
All contracts within the top-level organization |
|
|
All contracts across organizations the user manages |
Example
"selectedContracts"
BillingType
Description
Billing relationship type
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"BILL"
ClientVerificationStatus
Description
Client identity verification status
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
1 |
|
|
2 |
|
|
3 |
|
|
4 |
Example
"VERIFIED"
CompanyInfo
Description
Public and private company info bundle
Fields
| Field Name | Description |
|---|---|
public - PublicCompanyInfo
|
Public-facing company information |
private - PrivateCompanyInfo
|
Private/internal company information |
Example
{
"public": PublicCompanyInfo,
"private": PrivateCompanyInfo
}
CompanySelector
Description
Company selector provides information on companies that user can select
Fields
| Field Name | Description |
|---|---|
items - [CompanySelectorItem!]!
|
List of items available in company selector for the current user |
Example
{"items": [CompanySelectorItem]}
CompanySelectorItem
Description
Item available in company selector. Please, note that this structure uses terms that might be similar to terms used in other cases. However, fields of this structure are only used to build company selector and are not meant to be used otherwise.
Fields
| Field Name | Description |
|---|---|
title - String!
|
The title of this item. May or may not be the same as the organization"s name. |
photoUrl - String
|
The URL of the thumbnail image for this item. May or may not be the same as the organization"s photo URL. |
organizationId - String!
|
The UID of the organization this item refers to. Only used to construct links on UI |
organizationRid - String
|
The RID of the organization. Used to construct links on the UI. |
organizationType - CompanySelectorOrganizationType
|
The type of the organization. |
organizationLegacyType - CompanySelectorOrganizationLegacyType
|
The legacy type of the organization |
organizationEnterpriseType - CompanySelectorOrganizationEnterpriseType
|
The enterprise type of the organization |
legacyEnterpriseOrganization - Boolean
|
Is the organization a legacy enterprise organization. |
typeTitle - String
|
Contains organization type like Agency or Client |
Example
{
"title": "xyz789",
"photoUrl": "xyz789",
"organizationId": "xyz789",
"organizationRid": "abc123",
"organizationType": "Business",
"organizationLegacyType": "Client",
"organizationEnterpriseType": "Standard",
"legacyEnterpriseOrganization": true,
"typeTitle": "xyz789"
}
CompanySelectorOrganizationEnterpriseType
Description
The enterprise type of the organization
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"Standard"
CompanySelectorOrganizationLegacyType
Description
The legacy type of the organization
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"Client"
CompanySelectorOrganizationType
Description
The type of the organization
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"Business"
CreateEmploymentRecordInput
Description
Create employment record input
Fields
| Input Field | Description |
|---|---|
userId - ID
|
User identifier |
companyName - String!
|
Company name |
jobTitle - String!
|
Job title |
standardizedCompanyId - String
|
Standardized company identifier |
standardizedJobTitleId - String
|
Standardized job title identifier |
role - String!
|
Role in the company |
startDate - String!
|
start date - e.g: "1999-01-01" |
endDate - String
|
end date - e.g: "2002-01-01" |
description - String
|
Role description |
city - String!
|
City name |
country - String!
|
Country name |
Example
{
"userId": 4,
"companyName": "abc123",
"jobTitle": "abc123",
"standardizedCompanyId": "xyz789",
"standardizedJobTitleId": "abc123",
"role": "xyz789",
"startDate": "xyz789",
"endDate": "abc123",
"description": "xyz789",
"city": "abc123",
"country": "xyz789"
}
CreateOrganizationInput
Fields
| Input Field | Description |
|---|---|
parentOrganizationId - ID!
|
|
organizationName - String!
|
|
aceRid - String
|
|
country - String
|
|
type - OrganizationRequestType
|
Example
{
"parentOrganizationId": 4,
"organizationName": "xyz789",
"aceRid": "abc123",
"country": "xyz789",
"type": "AGENCY"
}
CurrentOrganization
Description
Information about current Organization
Fields
| Field Name | Description |
|---|---|
id - ID!
|
ID of the current organization |
rid - ID
|
Record ID of the organization |
legacyId - ID
|
|
name - String
|
Name of the current organization |
type - OrganizationType
|
Type of the Organization. Possible values are BUSINESS / SOLE_PROPRIETOR |
legacyType - OrganizationLegacyType
|
LEgacy type of the Organization. Posibble values are CLIENT / VENDOR |
flag - OrganizationFlag
|
Flag associated with the Organization |
parentOrganization - CurrentOrganization
|
Information about the parent Organization, if any |
active - Boolean
|
Indicates whether this organization is active. Applicable to a team organization. |
hidden - Boolean
|
Indicates whether this organization/team is hidden. Applicable to a team organization. |
childOrganizations - [CurrentOrganization]
|
list of teams within the root organization. Available only for the root organization ( where parentOrganization is NULL ) if userId is not provided by default will be used current user |
Arguments
|
|
childOrganization - CurrentOrganization
|
specific team within the root organization. Available only for the root organization ( where parentOrganization is NULL ) if userId is not provided by default will be used current user |
company - PrivateCompanyInfo
|
Private information about current company |
photoUrl - String
|
|
creationDate - String
|
|
staffs - StaffsConnection!
|
List of organization's staff, Offset is the UID of staff to start search from. Leave it blank or null when querying the first page. Use the UID of last returned staff for next page request. limit is the page size. If empty then default page limit (100 entries) would be applied. |
Arguments
|
|
userPermissions - UserPermissions
|
Get user permissions under organization |
Arguments
|
|
agencyOffers - ContractOfferConnection
|
List of offers for root agency organization |
Arguments
|
|
clientOffers - ContractOfferConnection
|
List of offers for the client organization The maximum page size is 50 |
Arguments |
|
clientTimeReport - [TimeReport!]
|
List of client time reports for the given date time range, both inclusive use clientContractTimeReport instead |
Arguments
|
|
clientContractTimeReport - TimeReportConnection!
|
|
Arguments
|
|
agencyTimeReport - [TimeReport!]
|
List of agency time reports for the given date time range, both inclusive use agencyContractTimeReport instead |
Arguments
|
|
agencyContractTimeReport - TimeReportConnection
|
|
Arguments
|
|
privateTalentClouds - [PrivateTalentCloud!]
|
|
jobPosting - JobPostingConnection
|
|
Arguments
|
|
Example
{
"id": 4,
"rid": 4,
"legacyId": "4",
"name": "abc123",
"type": "BUSINESS",
"legacyType": "CLIENT",
"flag": OrganizationFlag,
"parentOrganization": CurrentOrganization,
"active": false,
"hidden": true,
"childOrganizations": [CurrentOrganization],
"childOrganization": CurrentOrganization,
"company": PrivateCompanyInfo,
"photoUrl": "xyz789",
"creationDate": "abc123",
"staffs": StaffsConnection,
"userPermissions": UserPermissions,
"agencyOffers": ContractOfferConnection,
"clientOffers": ContractOfferConnection,
"clientTimeReport": [TimeReport],
"clientContractTimeReport": TimeReportConnection,
"agencyTimeReport": [TimeReport],
"agencyContractTimeReport": TimeReportConnection,
"privateTalentClouds": [PrivateTalentCloud],
"jobPosting": JobPostingConnection
}
CurrentUser
Description
Information about a user as an entity
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Unique user identifier Example: 1181921839933591552 |
nid - ID!
|
Nickname ID of a user. Please, only use if really needed. Unique ID should be used when possible. Example: foofreelancer |
rid - ID!
|
Record ID of a user. Please, only use if really needed. Unique ID should be used when possible. Example: 2366358 |
email - String
|
Email of user. |
name - String
|
First name + abbreviated last name, e.g. John Smith -> John S. |
userPermissions - UserPermissions
|
Get user permissions |
Arguments
|
|
photoUrl - String
|
photo url of the user. |
offer - ContractOfferConnection
|
List of Offers available to the current user/freelancer Sort options: Team, StartDate, EndDate, ContractName, FreelancerName, ClientCompanyName, ClientName, State |
Arguments
|
|
timeReport - [TimeReport!]
|
List of time reports for the current user(freelancer) and given date range, both inclusive use contractTimeReport instead |
Arguments
|
|
contractTimeReport - TimeReportConnection!
|
|
Arguments
|
|
freelancerProfile - FreelancerProfile
|
Freelancer profile for the current user |
ciphertext - String
|
Unique ciphertext identifier |
i18NSettings - I18nSettings!
|
User's i18n settings The input argument companyReferenceId is used in different checks for agencies, companies and independent contractors; For freelancers, the value shouldn't be provided. |
Arguments
|
|
talentProfile - TalentProfile
|
Current user's primary freelancer profile data |
Example
{
"id": "4",
"nid": 4,
"rid": "4",
"email": "abc123",
"name": "xyz789",
"userPermissions": UserPermissions,
"photoUrl": "xyz789",
"offer": ContractOfferConnection,
"timeReport": [TimeReport],
"contractTimeReport": TimeReportConnection,
"freelancerProfile": FreelancerProfile,
"ciphertext": "abc123",
"i18NSettings": I18nSettings,
"talentProfile": TalentProfile
}
FailedInvitation
FreelancerLanguageInput
Description
Create freelancer language input
Fields
| Input Field | Description |
|---|---|
userId - ID
|
User identifier |
iso639Code - String
|
ISO 639 language code |
language - LanguageDataInput!
|
Language details |
Example
{
"userId": 4,
"iso639Code": "xyz789",
"language": LanguageDataInput
}
FreelancerLocation
FreelancerProfile
Description
Freelancer Profile details.
Fields
| Field Name | Description |
|---|---|
user - CurrentUser!
|
the user (freelancer) who owns this profile(must be used only for current user use case) |
userDetails - GenericUser!
|
the user (freelancer) who owns this profile(can be used for any user use case) |
personalData - FreelancerProfilePersonalData!
|
personal data of the profile.(firstName, lastName, etc) |
userPreferences - FreelancerProfileUserPreferences!
|
user preferences of the profile.(Eg: profileAccess, hideEarnings, etc) |
otherExperiences - FreelancerProfileOtherExperiencesConnection!
|
list of otherExperiences. Eg: otherExperiences with subject eq 'Web Development' |
Arguments
|
|
languages - FreelancerProfileLanguagesConnection!
|
list of languages that freelancer can speak |
educationRecords - [FreelancerProfileEducationRecord!]!
|
list of educationRecords. eg: educationRecords where areaOfStudy eq Computer Engineering |
Arguments
|
|
certificates - [FreelancerProfileCertificate]
|
list of certificates earned by freelancer. |
employmentRecords - [FreelancerProfileEmploymentRecord!]!
|
list of employmentRecords. Eg: employmentRecords where country eq US |
availability - FreelancerProfileAvailability
|
freelancer's availability |
committedResponseTime - FreelancerProfileCommittedResponseTime
|
response times committed by Freelancer. Currently they can be immediate, soon or never. |
project - FreelancerProfileProject
|
project of the profile by it's ID |
Arguments
|
|
skills - FreelancerSkillsConnection!
|
list of freelancer skills. |
aggregates - FreelancerProfileAggregates!
|
freelancer profile aggregates |
jobCategories - FreelancerProfileJobCategoriesConnection
|
job categories selected by the freelancer on their profile. |
profileCompletenessSummary - FreelancerProfileCompletenessSummary
|
profile completeness summary |
linkedExternalAccountsList - FreelancerProfileLinkedExternalAccountsConnection!
|
list of external social network accounts |
verifications - FreelancerProfileVerifications
|
verification data ( phone verified, webcam verified) of the profile. |
fullName - String!
|
Freelancer first name + last name |
firstName - String!
|
Freelancer first name |
lastName - String!
|
Freelancer last name |
countryDetails - Country
|
Country details |
email - String
|
Email address |
portrait - Portrait
|
Profile portrait |
phoneNumber - PhoneNumber
|
phone number visible only for the current user |
privateTalentCloud - PrivateTalentCloudConnection!
|
talent clouds that the freelancer is part of |
Example
{
"user": CurrentUser,
"userDetails": GenericUser,
"personalData": FreelancerProfilePersonalData,
"userPreferences": FreelancerProfileUserPreferences,
"otherExperiences": FreelancerProfileOtherExperiencesConnection,
"languages": FreelancerProfileLanguagesConnection,
"educationRecords": [FreelancerProfileEducationRecord],
"certificates": [FreelancerProfileCertificate],
"employmentRecords": [
FreelancerProfileEmploymentRecord
],
"availability": FreelancerProfileAvailability,
"committedResponseTime": FreelancerProfileCommittedResponseTime,
"project": FreelancerProfileProject,
"skills": FreelancerSkillsConnection,
"aggregates": FreelancerProfileAggregates,
"jobCategories": FreelancerProfileJobCategoriesConnection,
"profileCompletenessSummary": FreelancerProfileCompletenessSummary,
"linkedExternalAccountsList": FreelancerProfileLinkedExternalAccountsConnection,
"verifications": FreelancerProfileVerifications,
"fullName": "abc123",
"firstName": "xyz789",
"lastName": "xyz789",
"countryDetails": Country,
"email": "abc123",
"portrait": Portrait,
"phoneNumber": PhoneNumber,
"privateTalentCloud": PrivateTalentCloudConnection
}
FreelancerProfileAggregates
Description
ProfilePart: ProfileAggregates TODO: More details on Aggregate attributes
Fields
| Field Name | Description |
|---|---|
user - GenericUser!
|
|
lastWorkedDateTime - String
|
It's the latest timestamp between the worked hours logged and the last payment date from the most recent contract. |
lastApplicationDate - String
|
Date when the user applied last time for a job |
totalHourlyJobs - Int
|
Total hourly jobs. |
totalHourlyJobsRecent - Int
|
Total hourly jobs done for last 180 days |
totalFixedJobs - Int
|
Total fixed price jobs. |
totalFixedJobsRecent - Int
|
Total fixed price jobs performed in the last 180 days |
responsiveness - String
|
Freelancer's responsiveness to client's invites |
totalRevenue - Money
|
Total Revenue. The actual amount, freelancer has received. |
activeInterviews - Int
|
Total no of interviews in progress. |
currentContracts - Int
|
Total no of active contracts. |
jobSuccessScore - Float
|
Job Success Score calculated Biweekly |
topRatedStatus - String
|
Top rated status |
topRatedPlusStatus - String
|
Top rated plus status |
vetted - Boolean
|
Flag that indicates if freelancer is expert-vetted |
totalHoursActual - Float
|
Total hours calculated by total charges divided by hourly rate |
totalHours - Float
|
Total Billed Hours. A summation of billed hours with total charges >= $1. |
totalHoursRecent - Float
|
Total Hours worked for last 180 days |
totalFeedback - Float
|
Total Feedback score received |
totalFeedbackRecent - Float
|
Total Feedback score received for last 180 days |
billedContracts - Int
|
Number of contracts with total charges >= $1. |
billedContractsRecent - Int
|
Number of contracts with total charges >= $1 for last 180 days |
adjustedFeedbackScore - Float
|
freelancer Adjusted Score. A 5-star rating score the platform gives to each freelancer based on the feedback scores received in each completed contract. |
adjustedFeedbackScoreRecent - Float
|
freelancer adjusted average feedback score for the last 180 days |
profileStats - FreelancerProfileStats
|
|
lastActivityDateTime - String
|
Last Activity Timestamp captured by the platform from these activities: last job application submitted, last exam taken, last date worked, last date being hired, last payment date |
totalEarnings - Money
|
Life time Total Freelancer Earnings. The same value as Total Charge. |
topRatedStatusDatetime - String
|
The most recent timestamp when a freelancer being granted with a Top Rated status. |
recentEarnings - Money
|
|
averageRecentEarnings - Money
|
|
recentCharge - Money
|
|
averageRecentCharge - Money
|
|
qualityScore - Float
|
|
totalHoursRounded - Int
|
Total hours from Assignment table's "Hours" column |
Example
{
"user": GenericUser,
"lastWorkedDateTime": "abc123",
"lastApplicationDate": "xyz789",
"totalHourlyJobs": 987,
"totalHourlyJobsRecent": 123,
"totalFixedJobs": 123,
"totalFixedJobsRecent": 987,
"responsiveness": "xyz789",
"totalRevenue": Money,
"activeInterviews": 123,
"currentContracts": 123,
"jobSuccessScore": 987.65,
"topRatedStatus": "xyz789",
"topRatedPlusStatus": "xyz789",
"vetted": true,
"totalHoursActual": 123.45,
"totalHours": 987.65,
"totalHoursRecent": 987.65,
"totalFeedback": 123.45,
"totalFeedbackRecent": 987.65,
"billedContracts": 123,
"billedContractsRecent": 987,
"adjustedFeedbackScore": 987.65,
"adjustedFeedbackScoreRecent": 123.45,
"profileStats": FreelancerProfileStats,
"lastActivityDateTime": "xyz789",
"totalEarnings": Money,
"topRatedStatusDatetime": "xyz789",
"recentEarnings": Money,
"averageRecentEarnings": Money,
"recentCharge": Money,
"averageRecentCharge": Money,
"qualityScore": 987.65,
"totalHoursRounded": 123
}
FreelancerProfileAvailability
Description
ProfilePart: Freelancer's Availability
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Availability record identifier |
user - GenericUser!
|
User this availability belongs to |
capacity - FreelancerProfileAvailabilityCapacity
|
availability capacity: eg: More than 30 hours/week, less than 30 hours/ As needed -Open to Offers. |
availabilityDateTime - String
|
if freelancer's not available, their next availability date. |
name - String!
|
|
createdDateTime - String!
|
Example
{
"id": "4",
"user": GenericUser,
"capacity": "fullTime",
"availabilityDateTime": "abc123",
"name": "abc123",
"createdDateTime": "xyz789"
}
FreelancerProfileAvailabilityCapacity
Values
| Enum Value | Description |
|---|---|
|
|
Full-time availability |
|
|
Part-time availability |
|
|
Less than a specified amount |
|
|
Not sure about availability |
|
|
Specific range of hours |
|
|
No availability specified |
Example
"fullTime"
FreelancerProfileAvailabilityInput
Description
Create freelancer availability input
Fields
| Input Field | Description |
|---|---|
userId - ID!
|
This field must be deprecated(@unused). id will be extracted from current user context |
availability - FreelancerProfileCapacityInput!
|
Updated availability payload |
Example
{
"userId": "4",
"availability": FreelancerProfileCapacityInput
}
FreelancerProfileCapacityInput
Fields
| Input Field | Description |
|---|---|
capacity - FreelancerProfileAvailabilityCapacity
|
Availability capacity selection |
availabilityDateTime - String
|
Next availability date |
creationDateTime - String!
|
Creation timestamp |
sourceInput - AvailabilitySource
|
Source of the availability update |
Example
{
"capacity": "fullTime",
"availabilityDateTime": "xyz789",
"creationDateTime": "xyz789",
"sourceInput": "st_assgn_e"
}
FreelancerProfileCertificate
Description
End ProfilePart: Freelancer's Education Records
ProfilePart: Freelancer's Certificates
Example
{
"id": "4",
"earnedDate": "abc123",
"submissionCode": "xyz789",
"notes": "abc123",
"score": "xyz789",
"active": false,
"verified": false,
"url": "xyz789",
"createdDateTime": "xyz789",
"lastUpdatedDateTime": "abc123",
"expirationDate": "abc123",
"externalId": "xyz789"
}
FreelancerProfileCommittedResponseTime
Description
End ProfilePart: Freelancer's Availability
ProfilePart: Freelancer's CommittedResponseTime
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
committedResponseTime - FreelancerProfileResponseTime
|
response times committed by Freelancer. Currently they can be immediate, soon or never. |
name - String
|
display name: Immediate (30 min) or Soon (12 hours) or Never |
createdDateTime - String!
|
|
updatedDateTime - String
|
Example
{
"id": "4",
"committedResponseTime": "NEVER",
"name": "xyz789",
"createdDateTime": "abc123",
"updatedDateTime": "xyz789"
}
FreelancerProfileCompletenessSummary
Description
ProfilePart: PCI ( Profile Completeness Summary )
Fields
| Field Name | Description |
|---|---|
user - GenericUser!
|
|
actual - Int!
|
actual percentage completed |
display - Int!
|
display value of percentage complete |
action - String
|
action Message that needs to be displayed |
actionCredit - Int
|
percentage that gets added to the total percent complete , if action is taken |
actionForEmptySection - String
|
|
skillsCount - Int!
|
|
employmentRecordCount - Int!
|
no of employment experiences |
portraitRecordCount - Int!
|
no of portraits in the profile |
overviewRecordCount - Int!
|
no of overviews in the profile |
videoRecordCount - Int!
|
no of videos in the profile |
educationRecordCount - Int!
|
no of education records entered in the profile |
certificatesCount - Int!
|
no of certificates added against this profile. |
otherExperiencesCount - Int!
|
count of other experiences |
portfolioCount - Int!
|
count of portfolio project items. |
linkedExternalAccountsCount - Int!
|
no of external accounts that have been linked to this profile. |
createdDateTime - String!
|
Example
{
"user": GenericUser,
"actual": 123,
"display": 987,
"action": "xyz789",
"actionCredit": 987,
"actionForEmptySection": "xyz789",
"skillsCount": 123,
"employmentRecordCount": 987,
"portraitRecordCount": 123,
"overviewRecordCount": 987,
"videoRecordCount": 987,
"educationRecordCount": 123,
"certificatesCount": 987,
"otherExperiencesCount": 987,
"portfolioCount": 987,
"linkedExternalAccountsCount": 123,
"createdDateTime": "abc123"
}
FreelancerProfileContract
Description
End ProfilePart: ProfileAggregates
isFromElance - TODO: Probably Legacy: clarification required
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Contract identifier |
description - String
|
|
title - String!
|
|
clientOrganization - GenericOrganization!
|
the client organization involved in this contract. |
type - FreelancerProfileContractType!
|
fixed or hourly contract. |
accessType - FreelancerProfileContractAccessType!
|
public or private |
private - Boolean!
|
Whether the contract is private |
job - JobPosting!
|
the job opening/posting that is associated with the contract. |
startDateTime - String!
|
when did the contract start |
endDateTime - String
|
when will the contract end |
totalCharges - Money
|
total money that was invoiced in this contract. |
totalHours - Float
|
no of total hours spent on this contract. |
hourlyRate - Money
|
hourly rate used by the freelancer for this contract. |
initialAmount - Money
|
|
feedbackToTheClient - FreelancerProfileContractFeedback
|
feedback provided by the freelancer when the contract ended. |
feedbackToTheFreelancer - FreelancerProfileContractFeedback
|
feedback provided by the client to the freelancer when the contract ended. |
isFromElance - Boolean
|
this flag determines where this contract is from ; either Elance or ODesk ? |
Example
{
"id": "4",
"description": "xyz789",
"title": "xyz789",
"clientOrganization": GenericOrganization,
"type": "Fixed",
"accessType": "PublicAccess",
"private": false,
"job": JobPosting,
"startDateTime": "xyz789",
"endDateTime": "xyz789",
"totalCharges": Money,
"totalHours": 987.65,
"hourlyRate": Money,
"initialAmount": Money,
"feedbackToTheClient": FreelancerProfileContractFeedback,
"feedbackToTheFreelancer": FreelancerProfileContractFeedback,
"isFromElance": false
}
FreelancerProfileContractAccessType
Values
| Enum Value | Description |
|---|---|
|
|
Visible publicly |
|
|
Visible to invited roles only |
|
|
Visible to authenticated users |
Example
"PublicAccess"
FreelancerProfileContractFeedback
Description
Contract feedback
Fields
| Field Name | Description |
|---|---|
score - Float!
|
Overall feedback score |
comment - String
|
Optional comment from the rater |
publicComment - Boolean!
|
Whether the comment is public |
response - String
|
Response from the recipient |
scoreDetails - [FreelancerProfileContractFeedbackScore!]
|
Detailed category scores |
Example
{
"score": 987.65,
"comment": "abc123",
"publicComment": true,
"response": "xyz789",
"scoreDetails": [FreelancerProfileContractFeedbackScore]
}
FreelancerProfileContractFeedbackScore
FreelancerProfileContractType
Values
| Enum Value | Description |
|---|---|
|
|
Fixed-price contract |
|
|
Hourly contract |
Example
"Fixed"
FreelancerProfileEducationRecord
Description
End ProfilePart: Freelancer's Languages
ProfilePart: Freelancer's Education Records
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Education record identifier |
user - GenericUser
|
User linked to this education record |
institutionName - String!
|
|
standardizedInstitutionId - ID
|
|
areaOfStudy - String
|
|
standardizedAreaOfStudyId - ID
|
|
degree - String
|
|
standardizedDegreeId - ID
|
|
startDate - String
|
start date - formatted according to ISO-8601 |
endDate - String
|
end date - formatted according to ISO-8601 |
description - String
|
Example
{
"id": "4",
"user": GenericUser,
"institutionName": "abc123",
"standardizedInstitutionId": "4",
"areaOfStudy": "xyz789",
"standardizedAreaOfStudyId": "4",
"degree": "abc123",
"standardizedDegreeId": "4",
"startDate": "abc123",
"endDate": "xyz789",
"description": "abc123"
}
FreelancerProfileEducationRecordsFilter
FreelancerProfileEmploymentRecord
Description
ProfilePart: Freelancer's Employment Record
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Employment record identifier |
user - GenericUser!
|
User who owns this record |
companyName - String!
|
Company name |
jobTitle - String!
|
Job title |
standardizedCompanyId - String
|
Standardized company identifier |
standardizedJobTitleId - String
|
Standardized job title identifier |
role - String
|
Role or position held |
startDate - String!
|
start date formatted according to ISO-8601 |
endDate - String
|
end date - e.g: "2002-01-01" |
description - String
|
Role description |
city - String!
|
City where employed |
country - String!
|
Country where employed |
Example
{
"id": 4,
"user": GenericUser,
"companyName": "xyz789",
"jobTitle": "xyz789",
"standardizedCompanyId": "abc123",
"standardizedJobTitleId": "abc123",
"role": "abc123",
"startDate": "abc123",
"endDate": "abc123",
"description": "abc123",
"city": "abc123",
"country": "abc123"
}
FreelancerProfileExperienceLevel
Values
| Enum Value | Description |
|---|---|
|
|
No level specified |
|
|
Entry-level experience |
|
|
Intermediate experience |
|
|
Expert experience |
Example
"NONE"
FreelancerProfileJobCategoriesConnection
Description
End ProfilePart: Freelancer's Contracts
ProfilePart: Job Categories
Fields
| Field Name | Description |
|---|---|
edges - [FreelancerProfileJobCategoryEdge!]
|
Edges in the job categories connection |
Example
{"edges": [FreelancerProfileJobCategoryEdge]}
FreelancerProfileJobCategory
Description
Selected job categories
Fields
| Field Name | Description |
|---|---|
category - JobCategory
|
Top-level job category |
selectedSubCategories - [JobCategory!]!
|
Selected subcategories for this category |
Example
{
"category": JobCategory,
"selectedSubCategories": [JobCategory]
}
FreelancerProfileJobCategoryEdge
Description
Job category connection edge
Fields
| Field Name | Description |
|---|---|
node - FreelancerProfileJobCategory!
|
Job category node |
Example
{"node": FreelancerProfileJobCategory}
FreelancerProfileLanguage
Description
Freelancer language with proficiency and verification
Example
{
"id": "4",
"language": Language,
"verified": false,
"verifiedByCertificate": false,
"verifiedByFeedback": true
}
FreelancerProfileLanguageEdge
Description
Language connection edge
Fields
| Field Name | Description |
|---|---|
node - FreelancerProfileLanguage!
|
Language item node |
Example
{"node": FreelancerProfileLanguage}
FreelancerProfileLanguageProficiencyTitle
Values
| Enum Value | Description |
|---|---|
|
|
Basic proficiency |
|
|
Conversational proficiency |
|
|
Fluent proficiency |
|
|
Native or bilingual proficiency |
Example
"BASIC"
FreelancerProfileLanguagesConnection
Description
End ProfilePart: Other Experiences of the the freelancer
ProfilePart: Freelancer's Languages
Fields
| Field Name | Description |
|---|---|
edges - [FreelancerProfileLanguageEdge!]
|
Edges in the languages connection |
Example
{"edges": [FreelancerProfileLanguageEdge]}
FreelancerProfileLinkedExternalAccounts
Description
Linked external account details
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
name - String!
|
name of the social network, eg: facebook, github, twitter etc |
expiryDateTime - String
|
expires on |
revokedDateTime - String
|
Revoked on |
authorizedDateTime - String!
|
Authorization done on |
userProfile - String!
|
link to the user profile on that social network |
Example
{
"id": "4",
"name": "abc123",
"expiryDateTime": "abc123",
"revokedDateTime": "xyz789",
"authorizedDateTime": "xyz789",
"userProfile": "xyz789"
}
FreelancerProfileLinkedExternalAccountsConnection
Description
End ProfilePart: PCI
ProfilePart: Linked External Accounts
Fields
| Field Name | Description |
|---|---|
edges - [FreelancerProfileLinkedExternalAccountsEdge!]
|
Edges in the linked external accounts connection |
Example
{"edges": [FreelancerProfileLinkedExternalAccountsEdge]}
FreelancerProfileLinkedExternalAccountsEdge
Description
Linked external accounts connection edge
Fields
| Field Name | Description |
|---|---|
node - FreelancerProfileLinkedExternalAccounts!
|
Linked external account node |
Example
{"node": FreelancerProfileLinkedExternalAccounts}
FreelancerProfileOtherExperience
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
user - GenericUser!
|
|
subject - String!
|
subject of experience |
description - String!
|
description of experience |
active - Boolean
|
if this experience is still active |
createdDateTime - String!
|
date time formatted according to ISO-8601 |
updatedDateTime - String!
|
date time formatted according to ISO-8601 |
Example
{
"id": 4,
"user": GenericUser,
"subject": "xyz789",
"description": "xyz789",
"active": false,
"createdDateTime": "xyz789",
"updatedDateTime": "xyz789"
}
FreelancerProfileOtherExperienceEdge
Fields
| Field Name | Description |
|---|---|
node - FreelancerProfileOtherExperience!
|
Other experience node |
cursor - String!
|
Cursor for pagination |
Example
{
"node": FreelancerProfileOtherExperience,
"cursor": "abc123"
}
FreelancerProfileOtherExperiencesConnection
Description
End ProfilePart: Freelancer Profile UserPreferences
ProfilePart: Other Experiences of the the freelancer
Fields
| Field Name | Description |
|---|---|
totalCount - Int
|
Total number of other experiences |
edges - [FreelancerProfileOtherExperienceEdge!]
|
Edges in the connection |
pageInfo - PageInfo
|
Pagination information |
Example
{
"totalCount": 123,
"edges": [FreelancerProfileOtherExperienceEdge],
"pageInfo": PageInfo
}
FreelancerProfileOtherExperiencesFilter
Description
OtherExperiences related filters
Fields
| Input Field | Description |
|---|---|
subject_eq - String
|
Filter by subject |
Example
{"subject_eq": "abc123"}
FreelancerProfilePersonalData
Description
ProfilePart: Personal data of the freelancer
Fields
| Field Name | Description |
|---|---|
firstName - String!
|
First name |
lastName - String!
|
Last name |
portrait - Portrait
|
|
title - String
|
Profile Title |
description - String
|
Profile Description |
address - FreelancerLocation
|
freelancer address |
chargeRate - Money!
|
Freelancer's typical billing rate |
workPhone - String
|
|
profileUrl - String
|
link to the freelancer's profile |
profileState - PersonalDataProfileState
|
under Review, auto rejected, rejected, accepted etc. |
Example
{
"firstName": "xyz789",
"lastName": "xyz789",
"portrait": Portrait,
"title": "xyz789",
"description": "abc123",
"address": FreelancerLocation,
"chargeRate": Money,
"workPhone": "xyz789",
"profileUrl": "xyz789",
"profileState": "IN_PROGRESS"
}
FreelancerProfileProject
Description
Portfolio projects of the Freelancer
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Project identifier |
title - String
|
portfolio project title |
description - String
|
description of the portfolio project |
contractLink - FreelancerProfileProjectContractLink
|
connection to the upwork contract if the project is done on upwork |
thumbnailId - String
|
pointer to the thumbnail |
thumbnailOriginalId - String
|
pointer to the thumbnail in original |
thumbnail - String
|
link to the thumbnail |
thumbnailOriginal - String
|
link to the original thumbnail |
projectUrl - String
|
url if exists for the portfolio project |
completionDateTime - String
|
the date when this project was completed |
public - Boolean
|
if this project is visible for upwork users or publically |
rank - Int
|
order of this portfolio project in all of the portfolio projects. |
attachments - [FreelancerProfileProjectAttachment!]
|
filtered list of project attachments. eg: type eq JPG |
skills - FreelancerSkillsConnection
|
list of skills associated with this freelancer's project. |
category - JobCategory
|
the top Level category associated to this portfolio project |
subCategory - JobCategory
|
level 2 category associated with this portfolio project. |
occupationId - String
|
associated occupation from the ontology, for this portfolio project. |
projectType - FreelancerProfileProjectType
|
case study, gallery or general. |
role - String
|
role played by the freelancer on this project. |
projectGoal - String
|
|
solution - String
|
project solution in case study for example. |
primaryImageId - String
|
Primary image file identifier |
createdDateTime - String!
|
Example
{
"id": "4",
"title": "xyz789",
"description": "xyz789",
"contractLink": FreelancerProfileProjectContractLink,
"thumbnailId": "abc123",
"thumbnailOriginalId": "xyz789",
"thumbnail": "xyz789",
"thumbnailOriginal": "abc123",
"projectUrl": "abc123",
"completionDateTime": "abc123",
"public": false,
"rank": 987,
"attachments": [FreelancerProfileProjectAttachment],
"skills": FreelancerSkillsConnection,
"category": JobCategory,
"subCategory": JobCategory,
"occupationId": "abc123",
"projectType": "CLASSIC_VIEW",
"role": "xyz789",
"projectGoal": "abc123",
"solution": "abc123",
"primaryImageId": "abc123",
"createdDateTime": "abc123"
}
FreelancerProfileProjectAttachment
Description
Project attachment
Fields
| Field Name | Description |
|---|---|
id - ID
|
Attachment identifier |
link - String
|
Public URL to the attachment |
fileName - String
|
Original file name |
fileSize - Int
|
File size in bytes |
rank - Int
|
Display order of the attachment |
videoUrl - String
|
Video URL if attachment is a video |
type - String
|
Attachment type (e.g., IMAGE, VIDEO) |
title - String
|
Attachment title |
description - String
|
Attachment description |
imageSmall - String
|
Small image URL |
imageMiddle - String
|
Medium image URL |
imageLarge - String
|
Large image URL |
Example
{
"id": 4,
"link": "abc123",
"fileName": "xyz789",
"fileSize": 123,
"rank": 987,
"videoUrl": "abc123",
"type": "abc123",
"title": "xyz789",
"description": "abc123",
"imageSmall": "xyz789",
"imageMiddle": "xyz789",
"imageLarge": "abc123"
}
FreelancerProfileProjectContractLink
Description
Project Contract link
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Unique identifier of the project-contract link |
contract - FreelancerProfileContract
|
|
state - String
|
State of the link |
project - FreelancerProfileProject
|
Related project |
client - GenericUser
|
Client user |
freelancer - GenericUser
|
Freelancer user |
notificationDateTime - String
|
Notification timestamp |
createdDateTime - String!
|
Example
{
"id": "4",
"contract": FreelancerProfileContract,
"state": "abc123",
"project": FreelancerProfileProject,
"client": GenericUser,
"freelancer": GenericUser,
"notificationDateTime": "abc123",
"createdDateTime": "abc123"
}
FreelancerProfileProjectType
Values
| Enum Value | Description |
|---|---|
|
|
Classic project view |
|
|
Case study format |
|
|
Image gallery format |
|
|
Multimedia portfolio view |
Example
"CLASSIC_VIEW"
FreelancerProfileResponseTime
Values
| Enum Value | Description |
|---|---|
|
|
Never responds |
|
|
Responds soon (e.g., within hours) |
|
|
Responds immediately (e.g., within minutes) |
Example
"NEVER"
FreelancerProfileStats
Description
Aggregated freelancer performance stats
Fields
| Field Name | Description |
|---|---|
totalCharge360 - Money
|
The sum of total charges from the last 360 days |
totalCharge360NoAgency - Money
|
The sum of total charges from the last 360 days, excluding agency contracts |
adjustedScore360 - Float
|
This is the feedback score calculated using the contracts completed in the last 360 days |
longTermClients - Int
|
|
suspensions - Int
|
The total suspension count |
suspensions360 - Int
|
The total suspension count recorded in last 360 days |
suspensions90limited - Int
|
Recent account holds |
topLevelJobCategoryApplied90Days - String
|
The main job category (Level-1 job category) a freelancer has applied to in the last 90 days. |
proposalsCount90Days - Int
|
The count of job applications a freelancer has submitted in last 90 days |
medianProposalsForTheTopLevelCategory365 - Int
|
The median for the number of job applications in the main category prior to the first hire for the last 365 days |
fitProposalsViewRatio90Days - Float
|
Ratio of number of fit job applications viewed over number of job applications submitted in last 90 days |
hiddenProposalsViewedRatio90Days - Float
|
Ratio of number of hidden job applications viewed over number of job applications submitted in last 90 days |
totalProposalsViewedRatio90Days - Float
|
Ratio of number of job applications viewed over number of job applications submitted in last 90 days |
proposalInterviewedRation90Days - Float
|
Ratio of number of job applications that were interviewed by client over number of job applications submitted in last 90 days. |
proposalsHiredRatio90Days - Float
|
Ratio of number of hired over number of job applications submitted in last 90 days |
hideReasonsForProposals - [String]
|
3 most commonly cited reasons for clients hiding the application |
totalInvites90Days - Int
|
The number of invitations received in last 90 days |
totalInviteResponses90Days - Int
|
The number of responses of invitations received in last 90 days |
inviteResponsesPerDay90Days - Int
|
The count on how many invitations a contractor had responded within a day in last 90 days. |
totalCharge365NoPending - Money
|
12-month earnings, based on earnings in the last 365 days including today |
totalCharge90 - Money
|
3-month earnings |
weeksEligibleWithin16wks - Float
|
Top Rated eligible weeks for the last 16 weeks. |
Example
{
"totalCharge360": Money,
"totalCharge360NoAgency": Money,
"adjustedScore360": 123.45,
"longTermClients": 987,
"suspensions": 123,
"suspensions360": 987,
"suspensions90limited": 987,
"topLevelJobCategoryApplied90Days": "abc123",
"proposalsCount90Days": 987,
"medianProposalsForTheTopLevelCategory365": 987,
"fitProposalsViewRatio90Days": 123.45,
"hiddenProposalsViewedRatio90Days": 987.65,
"totalProposalsViewedRatio90Days": 987.65,
"proposalInterviewedRation90Days": 123.45,
"proposalsHiredRatio90Days": 987.65,
"hideReasonsForProposals": ["xyz789"],
"totalInvites90Days": 987,
"totalInviteResponses90Days": 123,
"inviteResponsesPerDay90Days": 987,
"totalCharge365NoPending": Money,
"totalCharge90": Money,
"weeksEligibleWithin16wks": 123.45
}
FreelancerProfileUserPreferences
Description
End ProfilePart: Skills data of the freelancer
ProfilePart: Freelancer Profile UserPreferences
Fields
| Field Name | Description |
|---|---|
visibilityLevel - FreelancerProfileVisibility!
|
public, private or Upwork only |
hideAgencyEarnings - Boolean
|
should the agency earnings be displayed on the freelancer's profile |
hideEarnings - Boolean
|
should the freelancer earnings on their profile be hidden |
exposeFullName - Boolean!
|
are both first and last name displayed ? |
clientFeedbackOptional - Boolean
|
do we force the client to provide feedback ? |
projectTypePreference - FreelancerProjectTypePreference
|
project type preference |
hideJss - Boolean!
|
Is the Job Success Score hidden on the freelancer's profile? |
Example
{
"visibilityLevel": "PUBLIC",
"hideAgencyEarnings": false,
"hideEarnings": true,
"exposeFullName": false,
"clientFeedbackOptional": false,
"projectTypePreference": "BOTH_LONGTERM_AND_ONETIME",
"hideJss": true
}
FreelancerProfileVerifications
Description
ProfilePart: Verifications
Example
{
"idVerified": true,
"phoneVerified": false,
"webcamVerified": true,
"idBadgeStatus": "abc123"
}
FreelancerProfileVisibility
Values
| Enum Value | Description |
|---|---|
|
|
Visible to everyone |
|
|
Visible to Upwork users only |
|
|
Visible only to the user |
|
|
Visible to authenticated users |
Example
"PUBLIC"
FreelancerProjectTypePreference
Values
| Enum Value | Description |
|---|---|
|
|
Both long-term and one-time projects |
|
|
Longer than 3 months |
|
|
Shorter than 3 months |
Example
"BOTH_LONGTERM_AND_ONETIME"
FreeLancerSkillEdge
Description
Skill connection edge
Fields
| Field Name | Description |
|---|---|
node - Skill!
|
Skill node |
Example
{"node": Skill}
FreelancerSkillsConnection
Description
End ProfilePart: Personal data of the freelancer
ProfilePart: Skills data of the freelancer
Fields
| Field Name | Description |
|---|---|
edges - [FreeLancerSkillEdge!]
|
Edges in the skills connection |
Example
{"edges": [FreeLancerSkillEdge]}
FreelancerVisibility
Description
Freelancer visibility settings
Example
{
"locked": true,
"risky": false,
"currentVisibility": "xyz789",
"originalVisibility": "xyz789"
}
GenericOrganization
Description
Information about regular organization
Fields
| Field Name | Description |
|---|---|
id - ID!
|
ID of the current organization |
rid - ID
|
Record ID of the organization |
legacyId - ID
|
|
name - String
|
Name of the current organization |
type - OrganizationType
|
Type of the Organization. Possible values are BUSINESS / SOLE_PROPRIETOR |
legacyType - OrganizationLegacyType
|
LEgacy type of the Organization. Posibble values are CLIENT / VENDOR |
flag - OrganizationFlag
|
Flag associated with the Organization |
parentOrganization - GenericOrganization
|
Information about the parent Organization, if any |
active - Boolean
|
Indicates whether this organization is active. Applicable to a team organization. |
hidden - Boolean
|
Indicates whether this organization/team is hidden. Applicable to a team organization. |
company - PrivateCompanyInfo
|
Private information about current company |
photoUrl - String
|
Photo URL/Logo for the organization , if any and if user has access to it , other wise null |
creationDate - String
|
|
agencyOffers - ContractOfferConnection
|
List of offers for root agency organization |
Arguments
|
|
clientOffers - ContractOfferConnection
|
List of offers for the client organization The maximum page size is 50 |
Arguments |
|
jobPosting - JobPostingConnection
|
|
Arguments
|
|
Example
{
"id": 4,
"rid": "4",
"legacyId": 4,
"name": "xyz789",
"type": "BUSINESS",
"legacyType": "CLIENT",
"flag": OrganizationFlag,
"parentOrganization": GenericOrganization,
"active": true,
"hidden": true,
"company": PrivateCompanyInfo,
"photoUrl": "abc123",
"creationDate": "abc123",
"agencyOffers": ContractOfferConnection,
"clientOffers": ContractOfferConnection,
"jobPosting": JobPostingConnection
}
GenericUser
Description
Information about regular user
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Unique user identifier Example: 1181921839933591552 |
nid - ID!
|
Nickname ID of a user. Please, only use if really needed. Unique ID should be used when possible. Example: foofreelancer |
rid - ID!
|
Record ID of a user. Please, only use if really needed. Unique ID should be used when possible. Example: 2366358 |
name - String
|
First name + abbreviated last name, e.g. John Smith -> John S. |
firstName - String
|
First name of the user. |
lastName - String
|
Last name of the user. |
photoUrl - String
|
photo url of the user. |
publicUrl - String
|
The public user url |
email - String
|
email of user |
location - UserLocation
|
|
freelancerProfile - FreelancerProfile
|
Freelancer profile for the specified user |
ciphertext - String
|
Unique ciphertext identifier |
talentProfile - TalentProfile
|
Get talent profile for the user |
Example
{
"id": "4",
"nid": 4,
"rid": "4",
"name": "abc123",
"firstName": "xyz789",
"lastName": "xyz789",
"photoUrl": "xyz789",
"publicUrl": "abc123",
"email": "xyz789",
"location": UserLocation,
"freelancerProfile": FreelancerProfile,
"ciphertext": "abc123",
"talentProfile": TalentProfile
}
I18nLocation
Description
Contains location information used in i18n settings
Fields
| Field Name | Description |
|---|---|
country - Country
|
Country information for the user's location |
Example
{"country": Country}
I18nSettings
Description
User's i18n entity
Fields
| Field Name | Description |
|---|---|
countrySupported - Boolean
|
Whether the user's country is supported for i18n features |
location - I18nLocation
|
Location information for i18n settings |
status - I18nSettingsStatus
|
Current i18n eligibility status |
locationViewType - LocationViewType
|
How location should be displayed to the user |
userPreferredLocationType - UserPreferredLocationType
|
User's preferred location type preference |
settingsFlags - I18nSettingsFlags
|
Collection of i18n feature flags |
Example
{
"countrySupported": true,
"location": I18nLocation,
"status": "ELIGIBLE",
"locationViewType": "COUNTRY",
"userPreferredLocationType": "WORLD",
"settingsFlags": I18nSettingsFlags
}
I18nSettingsFlags
Description
A set of i18n flags/checks
Fields
| Field Name | Description |
|---|---|
showDomesticLocationFilterOnFLSearch - Boolean
|
Whether to show domestic location filter on freelancer search |
showJobSearch - Boolean
|
Whether to show job search functionality |
showPhoneVerification - Boolean
|
Whether to show phone verification option |
showSmfToUpdateAddress - Boolean
|
Whether to show site message to update address |
showPersonalAddressAutocomplete - Boolean
|
Whether to show personal address autocomplete |
showMessageContainer - Boolean
|
Whether to show message container |
showLocationPreferenceOnJobPost - Boolean
|
Whether to show location preference on job post |
defaultDomesticEnabled - Boolean
|
Whether domestic filtering is enabled by default |
jobSearchDefaultedToON - Boolean
|
Whether job search is defaulted to ON |
showLocationVerificationOnFWH - Boolean
|
Whether to show location verification on find work home |
domesticEnabledForFreelancersOnFLSearch - Boolean
|
Whether domestic is enabled for freelancers on freelancer search |
Example
{
"showDomesticLocationFilterOnFLSearch": true,
"showJobSearch": true,
"showPhoneVerification": true,
"showSmfToUpdateAddress": true,
"showPersonalAddressAutocomplete": true,
"showMessageContainer": true,
"showLocationPreferenceOnJobPost": false,
"defaultDomesticEnabled": false,
"jobSearchDefaultedToON": true,
"showLocationVerificationOnFWH": true,
"domesticEnabledForFreelancersOnFLSearch": true
}
I18nSettingsStatus
Description
I18n status values
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"ELIGIBLE"
InvitationToTeamInput
Fields
| Input Field | Description |
|---|---|
flow - InviteToTeamFlow!
|
inviteFlow |
inviteeEmail - String
|
email of the invitee |
invitedToTopLevelOrganizationId - ID
|
top level org ID to which invitee is invited Deprecated: Argument is not used anymore and going to be dropped |
invitedToOrganizationsIds - [ID!]
|
list of team IDs to which invitee is invited (optional, invitedToTopLevelOrganizationId could be enough) |
inviterUserId - ID
|
inviter user ID (personUid) |
landingUrl - String!
|
landing URL (to which user will be redirected after accepting invitation) |
emailParams - InviteToTeamEmailParams
|
parameters that will be attached to email template |
metadata - [StringMapElementInput!]
|
map of metadata |
frankoRolesToBeAssigned - [String]
|
list of roles to be granted to invitee |
hierarchical - Boolean
|
flag to assign roles to org and all its descendant teams |
includeFirstOrgIdAsParticipant - Boolean
|
flag to include first org uid from invitedToOrganizationsIds as participant in IDBC check |
Example
{
"flow": "HELP_ME_HIRE",
"inviteeEmail": "xyz789",
"invitedToTopLevelOrganizationId": 4,
"invitedToOrganizationsIds": [4],
"inviterUserId": "4",
"landingUrl": "abc123",
"emailParams": InviteToTeamEmailParams,
"metadata": [StringMapElementInput],
"frankoRolesToBeAssigned": ["xyz789"],
"hierarchical": false,
"includeFirstOrgIdAsParticipant": true
}
InviteToTeamEmailParams
Fields
| Input Field | Description |
|---|---|
message - String!
|
message to be sent to invitee |
Example
{"message": "xyz789"}
InviteToTeamFailedResponse
Description
Failed response for invite to team
Fields
| Field Name | Description |
|---|---|
code - String
|
Failure code |
message - String
|
Human-readable failure message |
invitation - FailedInvitation
|
Failed invitation payload |
Example
{
"code": "abc123",
"message": "xyz789",
"invitation": FailedInvitation
}
InviteToTeamFlow
Values
| Enum Value | Description |
|---|---|
|
|
Help Me Hire entry point |
|
|
Detect-and-redirect flow |
|
|
Help Me Hire job post form |
|
|
Proposal manager flow |
|
|
Freelancer profile entry |
|
|
Standalone page entry |
|
|
Dash interview room entry |
|
|
Dash contract room entry |
|
|
Global navigation entry |
|
|
Jobs home mobile entry |
|
|
Jobs home desktop entry |
|
|
Client invites to team |
|
|
Agency invites to team |
|
|
Help Me Hire dashboard |
|
|
Dash invite to room |
|
|
AC to EAC invite |
|
|
BYO EOR agency flow |
|
|
Help Me Hire 2 job post form |
|
|
Help Me Hire test resend |
|
|
Help Me Hire 2 jobs home share |
|
|
Help Me Hire 2 all jobs share |
|
|
Help Me Hire 2 global navigation |
|
|
Help Me Hire 2 jobs home mobile |
|
|
Help Me Hire 2 jobs home desktop |
Example
"HELP_ME_HIRE"
InviteToTeamResponse
Description
Invite to team response details
Fields
| Field Name | Description |
|---|---|
succeeded - [InviteToTeamSucceededResponse]!
|
Successfully processed invitations |
failed - [InviteToTeamFailedResponse]!
|
Failed invitations with reasons |
Example
{
"succeeded": [InviteToTeamSucceededResponse],
"failed": [InviteToTeamFailedResponse]
}
InviteToTeamSucceededResponse
LanguageDataInput
Description
Language input
Fields
| Input Field | Description |
|---|---|
id - ID
|
Language record identifier |
personRid - ID
|
Person RID linking this language |
verified - Boolean
|
Whether the language is verified |
verifiedByCertificate - Boolean
|
Whether verified via certificate |
verifiedByFeedback - Boolean
|
Whether verified via feedback |
language - LanguageInput!
|
Language core details |
proficiencyLevel - LanguageProficiencyLevelInput!
|
Proficiency level details |
Example
{
"id": 4,
"personRid": "4",
"verified": true,
"verifiedByCertificate": false,
"verifiedByFeedback": false,
"language": LanguageInput,
"proficiencyLevel": LanguageProficiencyLevelInput
}
LanguageInput
LanguageProficiencyLevelInput
Description
Proficiency level input
Fields
| Input Field | Description |
|---|---|
code - String!
|
Proficiency level code |
rank - Int
|
Ordering rank |
active - Boolean
|
Whether the level is active |
description - String
|
Human-readable description |
type - String
|
Category/type of the level |
proficiencyTitle - FreelancerProfileLanguageProficiencyTitle
|
Title of the proficiency level |
Example
{
"code": "abc123",
"rank": 123,
"active": false,
"description": "xyz789",
"type": "abc123",
"proficiencyTitle": "BASIC"
}
LocationViewType
Description
User's i18n location view type values
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"COUNTRY"
MessageAttachments
Description
Attachments associated with a message in a room
Fields
| Field Name | Description |
|---|---|
objectReferenceId - ID
|
Reference ID of the attached object |
objectType - String
|
Type of the attached object |
metadata - [StringMapElement!]
|
Additional metadata for the attachment |
createdDateTime - String
|
When the attachment was created |
author - RoomUser
|
User who created the attachment |
Example
{
"objectReferenceId": 4,
"objectType": "abc123",
"metadata": [StringMapElement],
"createdDateTime": "abc123",
"author": RoomUser
}
Organization
Description
Base organization interface
Fields
| Field Name | Description |
|---|---|
id - ID!
|
ID of the current organization |
rid - ID
|
Record ID of the organization |
legacyId - ID
|
|
name - String
|
Name of the current organization |
type - OrganizationType
|
Type of the Organization. Possible values are BUSINESS / SOLE_PROPRIETOR |
legacyType - OrganizationLegacyType
|
LEgacy type of the Organization. Posibble values are CLIENT / VENDOR |
flag - OrganizationFlag
|
Flag associated with the Organization |
active - Boolean
|
Indicates whether this organization is active. Applicable to a team organization. |
hidden - Boolean
|
Indicates whether this organization/team is hidden. Applicable to a team organization. |
company - PrivateCompanyInfo
|
Private information about current company |
photoUrl - String
|
|
creationDate - String
|
Possible Types
| Organization Types |
|---|
Example
{
"id": "4",
"rid": "4",
"legacyId": "4",
"name": "xyz789",
"type": "BUSINESS",
"legacyType": "CLIENT",
"flag": OrganizationFlag,
"active": false,
"hidden": false,
"company": PrivateCompanyInfo,
"photoUrl": "xyz789",
"creationDate": "abc123"
}
OrganizationFlag
Description
Organization category flags
Example
{"client": false, "vendor": true, "agency": false, "individual": true}
OrganizationLegacyType
Description
Legacy organization type
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"CLIENT"
OrganizationLocationInput
OrganizationRequestType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"AGENCY"
OrganizationType
Description
Organization legal type
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"BUSINESS"
OrgLegacyType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"Client"
OrgType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"Business"
OrgUserPermissionFilterV2
Description
Filter to load users` permissions under organization
Fields
| Input Field | Description |
|---|---|
userId - String
|
user id |
resourceType_eq - ResourceType!
|
Type of the resource: CONTRACT, OFFER, etc. |
limit - Int
|
The maximum number of results to return. The actual number of results returned may be less than the limit for intermediate pages. |
offset - String
|
First request must have this as null. Subsequent requests must use the offset returned by the previous request. |
performExternalChecks_eq - Boolean
|
perform external checks. Default = false |
teamOrgIds_any - [ID!]
|
the teamOrgIds in which the permissions for the resourceType and action are needed |
returnAllTeams - Boolean
|
return all teams if teamOrgIds is not specified, else only parent organization is returned. Default = false |
Example
{
"userId": "xyz789",
"resourceType_eq": "OPENING",
"limit": 987,
"offset": "xyz789",
"performExternalChecks_eq": false,
"teamOrgIds_any": ["4"],
"returnAllTeams": true
}
OtherExperienceInput
Description
Profile Mutation: create other experience input
Example
{
"userId": 4,
"subject": "abc123",
"description": "xyz789",
"active": true
}
Page
PageFilterInput
PaymentVerificationResult
Description
Payment verification result
Fields
| Field Name | Description |
|---|---|
status - PaymentVerificationStatus
|
Payment verification status |
paymentVerified - Boolean
|
A flag that indicates whether the payment method is verified or not |
Example
{"status": "DEPOSIT_UNSUPPORTED", "paymentVerified": true}
PaymentVerificationStatus
Description
Payment verification status codes
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"DEPOSIT_UNSUPPORTED"
PersonalDataLocation
Description
Personal data location
Example
{
"country": "abc123",
"state": "xyz789",
"city": "xyz789",
"zip": "abc123",
"timezone": "xyz789"
}
PersonalDataProfileState
Description
Personal data profile states
Values
| Enum Value | Description |
|---|---|
|
|
Profile creation in progress |
|
|
Profile accepted and visible |
|
|
Draft state not yet submitted |
|
|
Profile rejected |
|
|
Awaiting manual review |
|
|
No setup has been started |
|
|
Failed automated review queue |
|
|
Legacy onboarding flow |
|
|
Auto rejection after delay |
|
|
Processing state |
|
|
Automatically accepted |
|
|
Automatically rejected |
Example
"IN_PROGRESS"
PhoneNumber
PiiUser
Description
The personal identifiable information (PII) of the user. This model is used when personal information needs to be exposed to public and enterprise clients.
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Unique user identifier Example: 1181921839933591552 |
nid - ID!
|
Nickname ID of a user. Please, only use if really needed. Unique ID should be used when possible. Example: foofreelancer |
rid - ID!
|
Record ID of a user. Please, only use if really needed. Unique ID should be used when possible. Example: 2366358 |
name - String
|
First name + abbreviated last name, e.g. John Smith -> John S. |
firstName - String
|
First name of the user. |
lastName - String
|
Last name of the user. |
photoUrl - String
|
photo url of the user. |
publicUrl - String
|
The public user url |
email - String
|
email of user |
location - UserLocation
|
Example
{
"id": "4",
"nid": 4,
"rid": 4,
"name": "xyz789",
"firstName": "xyz789",
"lastName": "xyz789",
"photoUrl": "abc123",
"publicUrl": "xyz789",
"email": "abc123",
"location": UserLocation
}
PrivateCompanyInfo
Description
Private company info
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Company identifier |
name - String
|
Company name |
description - String
|
Company description |
legacyType - PrivateCompanyLegacyType
|
Legacy private company type |
logoURL - String
|
Logo URL |
contactUser - GenericUser
|
Contact person |
phone - String
|
Business phone number |
displayName - String
|
Display name |
teamsEnabled - Boolean
|
Whether teams feature is enabled |
canHire - Boolean
|
Whether the company can hire |
hidden - Boolean
|
Whether the company is hidden |
includeInStats - Boolean
|
No longer available for orgs |
companyName - String
|
Legal company name |
country - Country
|
Country of registration |
state - String
|
State or region |
city - String
|
City |
address - String
|
Street address |
zip - String
|
Postal or ZIP code |
timezone - String
|
Timezone identifier |
accountingEntity - String
|
Accounting entity identifier |
billingType - BillingType
|
Billing type |
summary - String
|
Summary/description |
paymentVerificationStatus - PaymentVerificationStatus
|
Payment verification status use paymentVerification instead |
paymentVerification - PaymentVerificationResult
|
Payment verification result |
agencyDetails - AgencyDetails
|
Agency details |
jobPosts - JobPostingConnection!
|
Job posts of the company |
Arguments
|
|
Example
{
"id": 4,
"name": "xyz789",
"description": "xyz789",
"legacyType": "CLIENT",
"logoURL": "xyz789",
"contactUser": GenericUser,
"phone": "abc123",
"displayName": "abc123",
"teamsEnabled": false,
"canHire": true,
"hidden": true,
"includeInStats": true,
"companyName": "abc123",
"country": Country,
"state": "xyz789",
"city": "xyz789",
"address": "xyz789",
"zip": "xyz789",
"timezone": "abc123",
"accountingEntity": "abc123",
"billingType": "BILL",
"summary": "xyz789",
"paymentVerificationStatus": "DEPOSIT_UNSUPPORTED",
"paymentVerification": PaymentVerificationResult,
"agencyDetails": AgencyDetails,
"jobPosts": JobPostingConnection
}
PrivateCompanyLegacyType
Description
Legacy private company type
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"CLIENT"
ProcessAddResponse
ProcessUpdateResponse
Description
Result of update operation
Fields
| Field Name | Description |
|---|---|
success - Boolean!
|
Defines success status |
Example
{"success": false}
PublicCompanyInfo
Description
Public-facing company info
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Company identifier |
name - String
|
Company name |
description - String
|
Company description |
legacyType - OrganizationLegacyType
|
Legacy organization type |
logoURL - String
|
Logo URL |
Example
{
"id": 4,
"name": "abc123",
"description": "abc123",
"legacyType": "CLIENT",
"logoURL": "xyz789"
}
ReasonType
Values
| Enum Value | Description |
|---|---|
|
|
Reject invite to apply to a job posting by freelancer |
|
|
Withdraw application for job posting by freelancer |
|
|
End contract by either client or freelancer, hourly contract |
|
|
End contract by either client or freelancer, fixed price contract |
|
|
When client ends contract which for which work hasn't started and provides low score, we ask for reason |
|
|
When client ends contract which for which work has been started and provides low score, we ask for reason |
|
|
When freelancer ends contract which for which work hasn't started and provides low score, we ask for reason |
|
|
When freelancer ends contract which for which work has been started and provides low score, we ask for reason |
|
|
Reject job application by a client |
|
|
Close job posting by a client |
|
|
Decline offer by freelancer |
|
|
Withdraw invitation to apply to a job posting by client |
|
|
|
|
|
|
|
|
Deactivation account by freelancer |
Example
"PROPOSAL_DECLINE"
ResourceType
Description
Resource kinds used for permission checks
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"OPENING"
Room
Description
Room details
Fields
| Field Name | Description |
|---|---|
id - ID!
|
ID of the room |
roomName - String
|
Name of the dash room |
organization - CurrentOrganization
|
The organization that the room belongs to |
creator - RoomUser
|
Room creator |
createdAtDateTime - String
|
Creation time of the room |
public - Boolean
|
If true, then anyone can see and join the room If false, only invited users can join it |
topic - String
|
Room topic (a.k.a. subtitle) |
owner - RoomUser
|
User that owns the room, can be different from creator |
numUnread - Int
|
Count of unread messages |
roomFavoriteDateTime - String
|
Time when the room was marked as favorite |
favorite - Boolean
|
Flag indicating whether the room was marked as favorite |
numUnreadMentions - Int
|
Count of unread mentions |
roomUsers - [RoomUser!]
|
List of users in this room |
numUsers - Int
|
Count of users in the room |
joinDateTime - String
|
Date time when user joined this room |
lastVisitedDateTime - String
|
Date time when user last visited this room The last time when a story was posted in the room or the room was modified |
lastReadDateTime - String
|
The last time the room was visited |
roomType - RoomType
|
Type of room, can be: GROUP, INTERVIEW, ONE_ON_ONE |
readOnlyDateTime - String
|
Time when the room was marked as read-only |
readOnly - Boolean
|
Flag indicating wheter the room is marked as read-only |
blockDateTime - String
|
Time when the room was blocked |
blockedBy - RoomUser
|
User who blocked the room |
hidden - Boolean
|
Flag indicating wheter the room is marked as hidden This makes the room invisible but can be unhidden unlike deleted rooms |
muted - Boolean!
|
Flag to indicate whether this room is muted for the curent user |
contractId - ID
|
Contract assoicated with the room, if any |
contract - Contract
|
|
contractDetails - ContractDetails
|
ContractDetails of the associated Room |
vendorProposal - VendorProposal
|
Vendor Proposal associated with the room |
roomNote - String
|
Note associated with the room |
roomNotePresent - Boolean!
|
Flag to indicate whether any note is associated with the room |
offerIds - [ID!]
|
Offer Ids associated with the room |
recruiters - [GenericUser!]
|
Contains information of all involved recruiters, if it's a recruiter room (a.k.a. PSM, a.k.a. Talent Sourcers) |
latestStory - RoomStory
|
Latest story in the room |
story - RoomStory
|
Get a particular story of this room |
Arguments
|
|
stories - RoomStoryConnection
|
List of stories posted in the room |
Arguments
|
|
latestStoryPreRendered - RoomStory
|
List of stories in the room |
Example
{
"id": 4,
"roomName": "xyz789",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "abc123",
"public": true,
"topic": "xyz789",
"owner": RoomUser,
"numUnread": 987,
"roomFavoriteDateTime": "xyz789",
"favorite": false,
"numUnreadMentions": 987,
"roomUsers": [RoomUser],
"numUsers": 123,
"joinDateTime": "abc123",
"lastVisitedDateTime": "abc123",
"lastReadDateTime": "xyz789",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "xyz789",
"readOnly": false,
"blockDateTime": "abc123",
"blockedBy": RoomUser,
"hidden": false,
"muted": false,
"contractId": "4",
"contract": Contract,
"contractDetails": ContractDetails,
"vendorProposal": VendorProposal,
"roomNote": "abc123",
"roomNotePresent": false,
"offerIds": [4],
"recruiters": [GenericUser],
"latestStory": RoomStory,
"story": RoomStory,
"stories": RoomStoryConnection,
"latestStoryPreRendered": RoomStory
}
RoomCategoryFilter
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"FAVORITES"
RoomConnection
Description
Connection type for paginated room results
Fields
| Field Name | Description |
|---|---|
totalCount - Int
|
Total number of rooms matching the query |
edges - [RoomEdge]
|
List of room edges with pagination cursors |
pageInfo - PageInfo
|
Pagination information for navigating results |
Example
{
"totalCount": 987,
"edges": [RoomEdge],
"pageInfo": PageInfo
}
RoomCreateInputV2
Description
Input required to create a new room
Fields
| Input Field | Description |
|---|---|
roomName - String
|
Name of the new room, applied for group rooms |
topic - String
|
Topic of the new room |
users - [RoomUserInput]
|
Users to be added in the room |
roomType - RoomTypeV2!
|
Type of the room |
Example
{
"roomName": "xyz789",
"topic": "abc123",
"users": [RoomUserInput],
"roomType": "ONE_ON_ONE"
}
RoomEdge
Description
Edge type containing a room node for pagination
Fields
| Field Name | Description |
|---|---|
node - Room
|
Room data |
Example
{"node": Room}
RoomFilter
Fields
| Input Field | Description |
|---|---|
roomType_eq - RoomTypeFilter
|
Specifies a filter by type for the list of rooms |
roomPrivacy_eq - RoomPrivacyFilter
|
Specifies a filter by the privacy of the room |
subscribed_eq - Boolean
|
If specified, only the rooms that the user is (or is not) subscribed to will be returned. Default: true |
activeSince_eq - String
|
Return only the rooms that have had new activity since the given time. |
includeFavorites_eq - Boolean
|
Include all favorite rooms, regardless of when the last activity in those rooms took place. Ignored if 'activeSince' is not set. |
includeUnreadIfActive_eq - Boolean
|
Include all rooms having unread stories, regardless of when the last activity in those rooms took place. Ignored if 'activeSince' is not set. |
unreadRoomsOnly_eq - Boolean
|
Filteres rooms that has unread stories if set to true. Note: This is mutually exclusive with 'activeSince' |
local_eq - String
|
The locale to use when stories are returned with the room |
includeHidden_eq - Boolean
|
If false filters rooms which are not hidden, otherwise return all the rooms. Default: true |
objectReferenceId_eq - ID
|
If specified, returns only rooms associated with that referenceId. If there are no rooms with that associated object reference and 'roomName' and 'roomType' are provided, creates a new room with those values and the associated object reference |
roomCategory_eq - RoomCategoryFilter
|
Filters rooms by given category |
Example
{
"roomType_eq": "ALL",
"roomPrivacy_eq": "ALL",
"subscribed_eq": false,
"activeSince_eq": "xyz789",
"includeFavorites_eq": false,
"includeUnreadIfActive_eq": false,
"unreadRoomsOnly_eq": false,
"local_eq": "abc123",
"includeHidden_eq": true,
"objectReferenceId_eq": 4,
"roomCategory_eq": "FAVORITES"
}
RoomPrivacyFilter
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"ALL"
RoomStory
Description
Message or event posted in a room
Fields
| Field Name | Description |
|---|---|
id - ID!
|
ID of the story |
room - Room!
|
Information about the associated room |
createdDateTime - String!
|
Date time when the story has been created |
updatedDateTime - String!
|
Date time when the story has been last updated |
user - GenericUser!
|
Room user who created this story |
message - String
|
Message associated with the story |
organization - GenericOrganization
|
Organization context which the story was posted under. |
roomStoryNote - RoomStoryNote
|
Returns any notes or flags attached to the story, e.g. if it's marked as favorite |
attachments - [MessageAttachments]
|
Message attachments |
Example
{
"id": 4,
"room": Room,
"createdDateTime": "abc123",
"updatedDateTime": "xyz789",
"user": GenericUser,
"message": "xyz789",
"organization": GenericOrganization,
"roomStoryNote": RoomStoryNote,
"attachments": [MessageAttachments]
}
RoomStoryAbuseType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"NONE"
RoomStoryConnection
Description
Connection type for paginated room story results
Fields
| Field Name | Description |
|---|---|
totalCount - Int
|
Total number of stories matching the query |
edges - [RoomStoryEdge]
|
List of story edges with pagination cursors |
pageInfo - PageInfo
|
Pagination information for navigating results |
Example
{
"totalCount": 987,
"edges": [RoomStoryEdge],
"pageInfo": PageInfo
}
RoomStoryCreateInputV2
RoomStoryEdge
RoomStoryFilter
Fields
| Input Field | Description |
|---|---|
roomId_eq - ID!
|
|
storyFilter - StoryFilter
|
Example
{
"roomId_eq": "4",
"storyFilter": StoryFilter
}
RoomStoryNote
Description
Notes/Flags attached to the story by the user
Fields
| Field Name | Description |
|---|---|
favorite - Boolean!
|
Whether the story is marked as favorite |
abuseType - RoomStoryAbuseType
|
Type of abuse reported for this story |
whitelisted - Boolean!
|
Whether the story is whitelisted despite abuse reports |
abuseDetails - String
|
Additional details about the abuse report |
Example
{
"favorite": true,
"abuseType": "NONE",
"whitelisted": true,
"abuseDetails": "abc123"
}
RoomStoryUpdateInputV2
RoomType
Values
| Enum Value | Description |
|---|---|
|
|
Designed for direct chat between two users (can't add others and can never leave the room) |
|
|
A group room is a regular room that is created on a particular user's request. The user can invite any number of users from their address book, and they can even invite users via email addresses to join the room. Users can be invited with either Admin or Participant roles. Admins can change the name of the room, the topic, invite new users, etc. The creator of the room is, by default, assigned the Owner role. |
|
|
Interview rooms are a special type of room linked to upwork applications. There's one such room created for every job application with the client and the freelancer as the initial members of the room. They can only add people to these rooms if they're part of the client or freelancer's companies. The client and freelancer themselves can't leave this room. Hiring managers from the client's company can join these rooms without being added by others in the room. |
Example
"ONE_ON_ONE"
RoomTypeFilter
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"ALL"
RoomTypeV2
Values
| Enum Value | Description |
|---|---|
|
|
Designed for direct chat between two users (can't add others and can never leave the room) |
|
|
A group room is a regular room that is created on a particular user's request. The user can invite any number of users from their address book, and they can even invite users via email addresses to join the room. Users can be invited with either Admin or Participant roles. Admins can change the name of the room, the topic, invite new users, etc. The creator of the room is, by default, assigned the Owner role. |
Example
"ONE_ON_ONE"
RoomUpdateInputV2
Description
Input required to update a room
Example
{
"roomId": "4",
"roomName": "xyz789",
"topic": "xyz789",
"reason": "xyz789",
"readOnly": false
}
RoomUser
Description
User participating in a room with their organization and role
Fields
| Field Name | Description |
|---|---|
user - GenericUser
|
User information |
organization - GenericOrganization
|
Organization the user belongs to |
role - String
|
User's role in the room (owner, admin, participant) |
Example
{
"user": GenericUser,
"organization": GenericOrganization,
"role": "xyz789"
}
RoomUserInput
Description
Details of the user to be added in the Room
Fields
| Input Field | Description |
|---|---|
userId - ID!
|
ID of the user |
organizationId - ID!
|
ID of the organization user belongs to |
role - String
|
Role of the user in the room. Valid values are owner, admin, and participant. Only Current owner can change the room to contain a new owner. Admins can change the room name and topic, and invite new users. |
inviteEmail - String
|
Invite someone who's not yet an Upwork member by email |
Example
{
"userId": "4",
"organizationId": 4,
"role": "abc123",
"inviteEmail": "abc123"
}
Snapshot
Description
Complete snapshot of work with screenshots, activity tracking, and metadata
Fields
| Field Name | Description |
|---|---|
id - ID
|
Unique identifier for the Snapshot |
time - Int
|
Time of the snapshot (epoch seconds) |
contractId - String
|
Identifier for the contract |
mouseEventsCount - Int
|
Number of mouse events |
keyboardEventsCount - Int
|
Number of keyboard events |
teamName - String
|
Team name associated with the Snapshot |
status - String
|
Status of the Snapshot |
activeWindowTitle - String
|
Title of the active window during the Snapshot |
memo - String
|
Memo associated with the Snapshot |
companyId - String
|
Company identifier associated with the Snapshot |
hasScreenshot - Boolean
|
Indicates whether the Snapshot has a screenshot |
screenshotUrl - String
|
URL of the screenshot |
screenshotImage - String
|
Path to the screenshot image |
screenshotImageLarge - String
|
Path to the large version of the screenshot image |
screenshotImageMedium - String
|
Path to the medium version of the screenshot image |
screenshotImageThumbnail - String
|
Path to the thumbnail version of the screenshot image |
hasWebcam - Boolean
|
Indicates whether the Snapshot has webcam data |
webcamUrl - String
|
URL of the webcam data |
webcamImage - String
|
Path to the webcam image |
webcamImageThumbnail - String
|
Path to the thumbnail version of the webcam image |
task - String
|
Task associated with the Snapshot |
minutes - SnapshotMinutes
|
List of events per minute for a Snapshot |
Example
{
"id": "4",
"time": 987,
"contractId": "abc123",
"mouseEventsCount": 123,
"keyboardEventsCount": 987,
"teamName": "xyz789",
"status": "xyz789",
"activeWindowTitle": "abc123",
"memo": "xyz789",
"companyId": "xyz789",
"hasScreenshot": false,
"screenshotUrl": "abc123",
"screenshotImage": "abc123",
"screenshotImageLarge": "abc123",
"screenshotImageMedium": "abc123",
"screenshotImageThumbnail": "abc123",
"hasWebcam": true,
"webcamUrl": "xyz789",
"webcamImage": "xyz789",
"webcamImageThumbnail": "abc123",
"task": "xyz789",
"minutes": SnapshotMinutes
}
SnapshotMinute
SnapshotMinutes
Description
Collection of per-minute activity data for a snapshot
Fields
| Field Name | Description |
|---|---|
minute - [SnapshotMinute]
|
List of minute-by-minute activity events |
Example
{"minute": [SnapshotMinute]}
SnapshotsByContractIdInput
Staff
Description
Staff membership details
Fields
| Field Name | Description |
|---|---|
id - ID
|
Staff record identifier |
user - GenericUser
|
Related user |
activationStatus - Int
|
Enum representing the activation status
|
creationDate - String
|
Creation date |
staffType - Int
|
Enum representing the type of staff within the organization.
|
Example
{
"id": 4,
"user": GenericUser,
"activationStatus": 987,
"creationDate": "xyz789",
"staffType": 987
}
StaffsConnection
Description
Connection of staff records
Fields
| Field Name | Description |
|---|---|
edges - [StaffsConnectionEdge]!
|
Staffs data |
totalCount - Int
|
Total count of records |
pageInfo - PageInfo
|
Page info |
Example
{
"edges": [StaffsConnectionEdge],
"totalCount": 987,
"pageInfo": PageInfo
}
StaffsConnectionEdge
Description
Edge in staff connection
Fields
| Field Name | Description |
|---|---|
node - Staff
|
Staff node |
Example
{"node": Staff}
StoryFilter
Fields
| Input Field | Description |
|---|---|
storyCreatedDateTime_bt - DateTimeRange
|
Returns the story crated between the given date time range |
pagination - Pagination
|
If both pagination.after and an older than value are specified, then the pagination.after takes precedence and the older than value is ignored |
Example
{
"storyCreatedDateTime_bt": DateTimeRange,
"pagination": Pagination
}
UpdateEmploymentRecordInput
Description
Update employment record input
Fields
| Input Field | Description |
|---|---|
id - ID!
|
Employment record identifier |
userId - ID
|
User identifier |
companyName - String
|
Company name |
jobTitle - String
|
Job title |
standardizedCompanyId - String
|
Standardized company identifier |
standardizedJobTitleId - String
|
Standardized job title identifier |
role - String!
|
Role in the company |
startDate - String
|
start date - e.g: "1999-01-01" |
endDate - String
|
end date - e.g: "2002-01-01" |
description - String
|
Role description |
city - String
|
City name |
country - String
|
Country name |
Example
{
"id": 4,
"userId": 4,
"companyName": "xyz789",
"jobTitle": "abc123",
"standardizedCompanyId": "xyz789",
"standardizedJobTitleId": "xyz789",
"role": "xyz789",
"startDate": "xyz789",
"endDate": "abc123",
"description": "xyz789",
"city": "xyz789",
"country": "xyz789"
}
UpdateOrganizationInput
Example
{
"id": 4,
"parentOrganizationId": "4",
"organizationName": "xyz789",
"hidden": false,
"address": OrganizationLocationInput,
"vatId": "abc123"
}
UpdateOtherExperienceInput
Description
Update other experience input
Example
{
"id": 4,
"userId": "4",
"subject": "abc123",
"description": "xyz789",
"active": false
}
UpdateRoomStoryResponse
Description
Response for room story update operations
Fields
| Field Name | Description |
|---|---|
status - String!
|
Status of the update operation |
Example
{"status": "abc123"}
UpdateTeamActivityRequest
Description
Defines activity object that is going to be updated
Fields
| Input Field | Description |
|---|---|
code - String!
|
An activity tracking code (this defines the activity tracking code) |
description - String
|
The description of the code being added |
url - String
|
The location where more info on the code can be found (the URL can be used to direct the user to more info about the code being entered) |
contractIds - [ID!]
|
List of associated contracts |
budget - Float
|
Budget for the activity |
batchAssignment - BatchAssignmentOptions
|
The assignment level of the activity |
status - String
|
Activity status (active or archived) |
Example
{
"code": "abc123",
"description": "abc123",
"url": "abc123",
"contractIds": [4],
"budget": 987.65,
"batchAssignment": "selectedContracts",
"status": "xyz789"
}
User
Description
Base user interface
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Unique user identifier Example: 1181921839933591552 |
nid - ID!
|
Nickname ID of a user. Please, only use if really needed. Unique ID should be used when possible. Example: foofreelancer |
rid - ID!
|
Record ID of a user. Please, only use if really needed. Unique ID should be used when possible. Example: 2366358 |
Possible Types
| User Types |
|---|
Example
{
"id": "4",
"nid": "4",
"rid": 4
}
UserIdsByEmailRecordEdge
Description
Edge in users-by-email response
Fields
| Field Name | Description |
|---|---|
cursor - String
|
Cursor for pagination |
node - UserIdsByEmailRecordNode
|
Record node |
Example
{
"cursor": "abc123",
"node": UserIdsByEmailRecordNode
}
UserIdsByEmailRecordNode
Description
Node with user identifiers by email
Fields
| Field Name | Description |
|---|---|
id - ID
|
User identifier |
email - String
|
User email |
visibilityLevel - FreelancerProfileVisibility
|
Visibility level of the profile |
title - String
|
Profile title |
user - GenericUser
|
Linked user |
Example
{
"id": "4",
"email": "xyz789",
"visibilityLevel": "PUBLIC",
"title": "xyz789",
"user": GenericUser
}
UserIdsByEmailResponse
Description
Result of user lookup by email
Fields
| Field Name | Description |
|---|---|
totalCount - Int
|
Total number of records |
edges - [UserIdsByEmailRecordEdge!]
|
Connection edges |
Example
{"totalCount": 123, "edges": [UserIdsByEmailRecordEdge]}
UserLocation
Description
Location of the user
Fields
| Field Name | Description |
|---|---|
countryName - String
|
Country name |
cityName - String
|
City name |
zip - String
|
Postal or ZIP code |
timezone - String!
|
Timezone identifier |
timezoneName - String
|
Human-readable timezone name |
street - String
|
Street address |
stateCode - String
|
State or province code |
offsetToUTC - Int
|
Offset from UTC in minutes |
Example
{
"countryName": "xyz789",
"cityName": "xyz789",
"zip": "abc123",
"timezone": "xyz789",
"timezoneName": "abc123",
"street": "xyz789",
"stateCode": "xyz789",
"offsetToUTC": 987
}
UserPermissionAccess
Description
Access evaluation outcome
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"ACCESS_DENIED"
UserPermissionEdge
Description
Edge in user permissions
Fields
| Field Name | Description |
|---|---|
node - UserPermissionNode
|
Permission node |
Example
{"node": UserPermissionNode}
UserPermissionFilterV2
Description
Filter to load specific user's permissions
Fields
| Input Field | Description |
|---|---|
resourceType_eq - ResourceType!
|
Type of the resource: CONTRACT, OFFER, etc. |
limit - Int
|
The maximum number of results to return. The actual number of results returned may be less than the limit for intermediate pages. |
offset - String
|
First request must have this as null. Subsequent requests must use the offset returned by the previous request. |
performExternalChecks_eq - Boolean
|
perform external checks. Default = false |
teamOrgIds_any - [ID!]
|
the teamOrgIds in which the permissions for the resourceType and action are needed |
returnAllTeams - Boolean
|
return all teams if teamOrgIds is not specified, else only parent organization is returned. Default = false |
returnFirstGrantedResult_eq - Boolean
|
return first granted result. Default = false |
Example
{
"resourceType_eq": "OPENING",
"limit": 987,
"offset": "abc123",
"performExternalChecks_eq": false,
"teamOrgIds_any": ["4"],
"returnAllTeams": false,
"returnFirstGrantedResult_eq": true
}
UserPermissionNode
Description
User permission node details
Fields
| Field Name | Description |
|---|---|
organization - CurrentOrganization
|
top level organization in which the current user is logged in |
team - GenericOrganization
|
team or child organization in which permissions are listed. NULL indicates the permissions are applicable to the root organization |
action - String!
|
Action being evaluated |
access - UserPermissionAccess!
|
Access decision |
reason - AccessRestictionReason
|
Reason for restriction (if any) |
Example
{
"organization": CurrentOrganization,
"team": GenericOrganization,
"action": "xyz789",
"access": "ACCESS_DENIED",
"reason": "ROLES_MISMATCH"
}
UserPermissions
Description
Container of user permissions
Fields
| Field Name | Description |
|---|---|
edges - [UserPermissionEdge]
|
Permission edges |
offset - String
|
Paging offset for next page |
Example
{
"edges": [UserPermissionEdge],
"offset": "xyz789"
}
UserPreferredLocationType
Description
User's i18n preferred location type values
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"WORLD"
WorkdayResult
Description
Result containing list of working days
Fields
| Field Name | Description |
|---|---|
workDays - [String]
|
list of working days or calendar days that are highlighted in the date picker |
Example
{"workDays": ["xyz789"]}
WorkdaysInput
Fields
| Input Field | Description |
|---|---|
contractIds - [ID!]!
|
|
timeRange - DateTimeRange!
|
|
offsetInSeconds - Int
|
Example
{
"contractIds": ["4"],
"timeRange": DateTimeRange,
"offsetInSeconds": 123
}
WorkDiaryCompany
Description
Work diary data for a company including snapshots and metadata
Fields
| Field Name | Description |
|---|---|
total - Int
|
Total number of snapshots |
snapshots - [WorkDiaryCompanySnapshot]
|
List of work diary snapshots |
Example
{"total": 987, "snapshots": [WorkDiaryCompanySnapshot]}
WorkDiaryCompanyContract
WorkDiaryCompanyInput
WorkDiaryCompanySnapshot
Description
Complete snapshot of work diary data including time, task, and screenshots
Fields
| Field Name | Description |
|---|---|
contract - WorkDiaryCompanyContract
|
Associated contract |
user - WorkDiaryCompanyUser
|
User who performed the work |
duration - String
|
Duration of work as string |
durationInt - Int
|
Duration as integer (seconds) |
task - WorkDiaryCompanySnapshotTask
|
Task being worked on |
time - WorkDiaryCompanyTime
|
Time tracking details |
screenshots - [WorkDiaryCompanySnapshotScreenshot]
|
Screenshot and webcam images |
Example
{
"contract": WorkDiaryCompanyContract,
"user": WorkDiaryCompanyUser,
"duration": "xyz789",
"durationInt": 123,
"task": WorkDiaryCompanySnapshotTask,
"time": WorkDiaryCompanyTime,
"screenshots": [WorkDiaryCompanySnapshotScreenshot]
}
WorkDiaryCompanySnapshotScreenshot
Description
Screenshot and webcam data for a work diary snapshot
Fields
| Field Name | Description |
|---|---|
activity - Int
|
Activity level percentage |
screenshotUrl - String
|
URL to screenshot |
screenshotImage - String
|
Path to screenshot image |
screenshotImageLarge - String
|
Path to large screenshot image |
screenshotImageMedium - String
|
Path to medium screenshot image |
screenshotImageThumbnail - String
|
Path to screenshot thumbnail |
hasScreenshot - Boolean
|
Whether snapshot has a screenshot |
hasWebcam - Boolean
|
Whether snapshot has webcam image |
webcamUrl - String
|
URL to webcam image |
webcamImage - String
|
Path to webcam image |
webcamImageThumbnail - String
|
Path to webcam thumbnail |
flags - WorkDiaryCompanySnapshotScreenshotFlag
|
Screenshot display flags |
Example
{
"activity": 987,
"screenshotUrl": "abc123",
"screenshotImage": "abc123",
"screenshotImageLarge": "xyz789",
"screenshotImageMedium": "abc123",
"screenshotImageThumbnail": "abc123",
"hasScreenshot": true,
"hasWebcam": false,
"webcamUrl": "xyz789",
"webcamImage": "abc123",
"webcamImageThumbnail": "xyz789",
"flags": WorkDiaryCompanySnapshotScreenshotFlag
}
WorkDiaryCompanySnapshotScreenshotFlag
WorkDiaryCompanySnapshotTask
Description
Task information associated with a work diary snapshot
Example
{
"id": "xyz789",
"code": "xyz789",
"description": "xyz789",
"memo": "abc123"
}
WorkDiaryCompanyTime
Description
Time tracking information for a work diary entry
Fields
| Field Name | Description |
|---|---|
trackedTime - String
|
Time tracked by the system |
manualTime - String
|
Manually entered time |
overtime - String
|
Overtime hours |
firstWorked - String
|
Timestamp when first work occurred |
lastWorked - String
|
Timestamp when last work occurred |
firstWorkedInt - Int
|
First worked time as integer (epoch) |
lastWorkedInt - Int
|
Last worked time as integer (epoch) |
lastScreenshot - String
|
Timestamp of last screenshot |
Example
{
"trackedTime": "abc123",
"manualTime": "xyz789",
"overtime": "abc123",
"firstWorked": "abc123",
"lastWorked": "abc123",
"firstWorkedInt": 987,
"lastWorkedInt": 123,
"lastScreenshot": "xyz789"
}
WorkDiaryCompanyUser
WorkDiaryContract
Description
Work diary data for a specific contract and date
Fields
| Field Name | Description |
|---|---|
workDiaryMetadata - WorkDiaryMetadata
|
Metadata about the work diary |
workDiaryTimeCells - [WorkDiaryTimeCell!]
|
List of timecells with tracking data |
Example
{
"workDiaryMetadata": WorkDiaryMetadata,
"workDiaryTimeCells": [WorkDiaryTimeCell]
}
WorkDiaryContractInput
Fields
| Input Field | Description |
|---|---|
contractId - ID!
|
|
date - String!
|
Supported format for the input is yyyymmdd |
offsetInSeconds - Int
|
|
useLegacy - Boolean
|
Use the "useLegacyEndpoint" flag to determine the data source for this query. When set to true, the query will be fulfilled using a legacy endpoint additionally the "user" field becomes available. If "useLegacyEndpoint" is false, the "user" field is not accessible in the query. |
Example
{
"contractId": 4,
"date": "abc123",
"offsetInSeconds": 987,
"useLegacy": true
}
WorkDiaryMetadata
Description
Metadata for work diary including timezone and user information
Example
{
"timezoneOffset": "xyz789",
"archivingDateTime": "abc123"
}
WorkDiaryTask
WorkDiaryTimeCell
Description
10-minute billable time period with activity tracking and screenshots
Fields
| Field Name | Description |
|---|---|
cellDateTime - DateTime
|
the timestamp that denotes the beginning of timecell |
snapshotDateTime - DateTime
|
the timestamp at which the snapshot has been taken during the timecell |
overtime - Boolean
|
Should this timelog entry be considered overtime, this is available only if "useLegacyEndpoint" is not set to true |
manual - Boolean
|
True if the contractor has entered manual time for this timecell |
activityLevel - Int
|
Activity level that is a measure (derived out of) keyboard events and mouse events during this timecell |
memo - String
|
Memo of the work done during this timecell |
task - WorkDiaryTask
|
The task eg: Jira Task associated with this timecell |
mouseEventsCount - Int
|
The number of mouse events during this timecell |
keyboardEventsCount - Int
|
The number of keyboard events during this timecell |
activeWindowTitle - String
|
What is the title of the window, which was active during the screen capture |
hideScreenshots - Boolean
|
should this screenshot be hidden |
hasScreenshot - Boolean
|
is there a screenshot associated with this timecell |
screenshotImageUrl - String
|
The image url of the screenshot associated with this timecell |
screenshotImageUrlMedium - String
|
The image url (medium size) of the screenshot associated with this timecell |
screenshotImageThumbnail - String
|
The thumbnail of the screenshot associated with this timecell |
webcamEnabled - Boolean
|
Was there a webcam associated with this timecell |
webcamImageUrl - String
|
The webcam image associated with this timecell |
webcamImageThumbnail - String
|
The thumbnail url of the webcam image associated with this timecell |
snapshotExpired - Boolean
|
Has the snapshot associated expired |
Example
{
"cellDateTime": DateTime,
"snapshotDateTime": DateTime,
"overtime": false,
"manual": true,
"activityLevel": 987,
"memo": "xyz789",
"task": WorkDiaryTask,
"mouseEventsCount": 123,
"keyboardEventsCount": 123,
"activeWindowTitle": "xyz789",
"hideScreenshots": false,
"hasScreenshot": true,
"screenshotImageUrl": "abc123",
"screenshotImageUrlMedium": "abc123",
"screenshotImageThumbnail": "xyz789",
"webcamEnabled": false,
"webcamImageUrl": "abc123",
"webcamImageThumbnail": "xyz789",
"snapshotExpired": true
}
Workflow
UpdateWorkflowTaskDetailsInput
Fields
| Input Field | Description |
|---|---|
status - WorkflowTaskStatus
|
|
labels - [WorkflowTaskPatchLabelInput!]
|
Example
{
"status": "NOT_OPEN",
"labels": [WorkflowTaskPatchLabelInput]
}
UpdateWorkflowTaskResult
Description
Result of updating a workflow task
Fields
| Field Name | Description |
|---|---|
workflowId - ID
|
Workflow identifier |
updatedTaskView - WorkflowTaskView
|
Updated task view details |
Example
{"workflowId": 4, "updatedTaskView": WorkflowTaskView}
WorkflowAssociationView
WorkflowOnboardingStatus
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"NOT_STARTED"
WorkflowTaskAssigneeView
WorkflowTaskComment
Description
Comment added to a workflow task
Fields
| Field Name | Description |
|---|---|
id - ID
|
Comment identifier |
message - String
|
Comment message text |
createdDateTime - String
|
Comment creation date and time |
createdBy - String
|
User who created the comment |
visibleToClient - Boolean
|
Whether the comment is visible to the client |
attachments - [WorkflowTaskCommentAttachments]
|
Attachments associated with this comment |
Example
{
"id": 4,
"message": "xyz789",
"createdDateTime": "abc123",
"createdBy": "abc123",
"visibleToClient": false,
"attachments": [WorkflowTaskCommentAttachments]
}
WorkflowTaskCommentAttachments
WorkflowTaskCustomAttribute
WorkflowTaskLabel
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"FLAGGED"
WorkflowTaskPatchLabelInput
Fields
| Input Field | Description |
|---|---|
label - WorkflowTaskLabel
|
|
enabled - Boolean
|
Example
{"label": "FLAGGED", "enabled": false}
WorkflowTaskStatus
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"NOT_OPEN"
WorkflowTaskView
Description
Detailed view of a single task within a workflow
Fields
| Field Name | Description |
|---|---|
id - ID
|
Task identifier |
type - String
|
Task type |
title - String
|
Task title |
description - String
|
Task description |
status - WorkflowTaskStatus!
|
Current status of the task |
assignee - WorkflowTaskAssigneeView
|
User or entity assigned to this task |
comments - [WorkflowTaskComment!]
|
Comments associated with this task |
createdDateTime - String
|
Task creation date and time |
finishedDateTime - String
|
Task completion date and time |
dueDate - String
|
Task due date |
modifiedDateTime - String
|
Task last modification date and time |
createdBy - String
|
User who created the task |
modifiedBy - String
|
User who last modified the task |
labels - [WorkflowTaskLabel!]
|
Labels applied to this task |
active - Boolean
|
Whether the task is active |
notRequired - Boolean
|
Whether the task is not required |
dependsOn - String
|
Task dependencies |
externalTaskId - String
|
External task identifier |
delayReasons - String
|
Reasons for task delay |
customAttributes - [WorkflowTaskCustomAttribute!]
|
Custom attributes for this task |
order - Int
|
Display order of the task |
canEdit - Boolean
|
Whether the current user can edit this task |
owner - Boolean
|
Provides a possibility for the user to filter on UI it's own tasks . |
Example
{
"id": 4,
"type": "xyz789",
"title": "abc123",
"description": "abc123",
"status": "NOT_OPEN",
"assignee": WorkflowTaskAssigneeView,
"comments": [WorkflowTaskComment],
"createdDateTime": "xyz789",
"finishedDateTime": "abc123",
"dueDate": "xyz789",
"modifiedDateTime": "abc123",
"createdBy": "abc123",
"modifiedBy": "xyz789",
"labels": ["FLAGGED"],
"active": true,
"notRequired": true,
"dependsOn": "abc123",
"externalTaskId": "abc123",
"delayReasons": "xyz789",
"customAttributes": [WorkflowTaskCustomAttribute],
"order": 987,
"canEdit": false,
"owner": true
}
WorkflowView
Description
Comprehensive view of a workflow instance with all its tasks and metadata
Fields
| Field Name | Description |
|---|---|
id - ID
|
Workflow identifier |
type - String
|
Workflow type |
onboardedStatus - WorkflowOnboardingStatus
|
Current onboarding status of the workflow |
totalTasks - Int
|
Total number of tasks in the workflow |
notStartedTasksCount - Int
|
Number of tasks not yet started |
inProgressTasksCount - Int
|
Number of tasks currently in progress |
completedTasksCount - Int
|
Number of completed tasks |
tasksOverdue - Int
|
Number of overdue tasks |
percentComplete - Int
|
Percentage of workflow completion |
startDateTime - String
|
Workflow start date and time |
completionDateTime - String
|
Workflow completion date and time |
associations - [WorkflowAssociationView!]
|
Associated entities for this workflow |
tasks - [WorkflowTaskView!]
|
List of tasks in the workflow |
createdDateTime - String
|
Workflow creation date and time |
modifiedDateTime - String
|
Workflow last modification date and time |
createdBy - String
|
User who created the workflow |
modifiedBy - String
|
User who last modified the workflow |
Example
{
"id": "4",
"type": "xyz789",
"onboardedStatus": "NOT_STARTED",
"totalTasks": 987,
"notStartedTasksCount": 123,
"inProgressTasksCount": 987,
"completedTasksCount": 123,
"tasksOverdue": 987,
"percentComplete": 123,
"startDateTime": "abc123",
"completionDateTime": "xyz789",
"associations": [WorkflowAssociationView],
"tasks": [WorkflowTaskView],
"createdDateTime": "xyz789",
"modifiedDateTime": "abc123",
"createdBy": "abc123",
"modifiedBy": "abc123"
}
Other
AccountingEntity
Description
Account entity
Fields
| Field Name | Description |
|---|---|
id - ID!
|
Unique identifier for the accounting entity |
Example
{"id": 4}
ClientJobInvitationCreateRequestInput
CustomPaymentInput
CustomPaymentResponse
Description
Custom Payment Response
Fields
| Field Name | Description |
|---|---|
invoiceId - ID!
|
Invoice ID |
Example
{"invoiceId": 4}
CustomPaymentType
Values
| Enum Value | Description |
|---|---|
|
|
Example
"BONUS"
ManualReviewStatus
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"APPROVED"
MoneyInput
Fields
| Input Field | Description |
|---|---|
amount - String!
|
float point as a string, for example "1.23" |
currency - String!
|
ISO currency code, see https://en.wikipedia.org/wiki/ISO_4217 (for example, USD) |
Example
{
"amount": "abc123",
"currency": "xyz789"
}
Other
AuditTime
Description
Type to represent both entity creation and modified time
Example
{
"createdDateTime": "abc123",
"modifiedDateTime": "abc123"
}
AvailableScope
Description
Scope availability levels for fields and types
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"INTERNAL"
Boolean
Description
Built-in Boolean
ContractType
Description
Type of contract payment model
Values
| Enum Value | Description |
|---|---|
|
|
Hourly-payed |
|
|
Fixed-price |
Example
"HOURLY"
DateTime
DateTimeRange
EngagementDuration
File
Description
Represents a generic file resource
Example
{
"name": "xyz789",
"uri": "xyz789",
"encoding": "xyz789",
"size": 123,
"createdDateTime": "abc123"
}
Float
Description
Built-in Float
Example
123.45
FloatRange
FreelancerProfilesSearchRecordType
Types
| Union Types |
|---|
Example
FreelancerProfilesSearchRecord
ID
Description
Built-in ID
Example
4
Int
Description
Built-in Int
Example
123
IntRange
JobCategory
Description
Job category ontology entity
Fields
| Field Name | Description |
|---|---|
id - ID!
|
|
ontologyId - String!
|
ontologyId is a semantic identifier that unqiuely identifies an ontology element Its value doesn't depend on the environment (same for dev, staging, prod) Example: upwork:AdministrationSoftware |
type - [OntologyEntityType]!
|
|
entityStatus - OntologyEntityStatus!
|
Defines the status of an occupation.
|
preferredLabel - String!
|
Defines the label of the entity that is displayed across Upwork. It must be a unique value. |
definition - String
|
|
createdDateTime - String
|
Defines (when available) the date (timestamp) of creation for the entity. |
modifiedDateTime - String
|
Defines (when available) the date (timestamp) of update for the entity. |
Example
{
"id": 4,
"ontologyId": "abc123",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "abc123",
"definition": "abc123",
"createdDateTime": "xyz789",
"modifiedDateTime": "abc123"
}
Language
Description
Language definition with ISO code and display name
Fields
| Field Name | Description |
|---|---|
iso639Code - String!
|
ISO 639 standards - https://en.wikipedia.org/wiki/ISO_639(example: en) |
active - Boolean!
|
Flag indicates if the language is active |
englishName - String!
|
English name of the language |
Example
{
"iso639Code": "xyz789",
"active": false,
"englishName": "abc123"
}
Money
Description
Monetary amount with raw, currency and display representations
Fields
| Field Name | Description |
|---|---|
rawValue - String!
|
float point as a string, for example "1.23" |
currency - String!
|
ISO currency code, see https://en.wikipedia.org/wiki/ISO_4217 (for example, USD) |
displayValue - String!
|
display representation, for example, "$1.23" |
Example
{
"rawValue": "xyz789",
"currency": "xyz789",
"displayValue": "xyz789"
}
OntologyEntityResult
Types
| Union Types |
|---|
Example
Skill
PageInfo
Pagination
Description
Pagination
Example
{"after": "abc123", "first": 123}
Portrait
Description
Portrait of the freelancer
Fields
| Field Name | Description |
|---|---|
portrait - String
|
Link to profile portrait |
portrait32 - String
|
Link to profile portrait (size 32) |
portrait50 - String
|
Link to profile portrait (size 50) |
portrait100 - String
|
Link to profile portrait (size 100) |
portrait150 - String
|
Link to profile portrait (size 150) |
portrait500 - String
|
Link to profile portrait (size 500) |
Example
{
"portrait": "xyz789",
"portrait32": "xyz789",
"portrait50": "xyz789",
"portrait100": "abc123",
"portrait150": "abc123",
"portrait500": "abc123"
}
SortAttribute
Description
Sorting attribute and order
Fields
| Input Field | Description |
|---|---|
field - String!
|
Field name to sort by |
sortOrder - SortOrder!
|
Sort direction |
Example
{"field": "xyz789", "sortOrder": "ASC"}
SortOrder
Description
Sort direction values
Values
| Enum Value | Description |
|---|---|
|
|
Ascending |
|
|
Descending |
Example
"ASC"
String
Description
Built-in String
Example
"abc123"
StringMapElement
StringMapElementInput
TnsRuleStructureInput
Description
Input for rule structure - polymorphic type representing either a leaf node or group node Type field determines which fields are used
Fields
| Input Field | Description |
|---|---|
type - String!
|
Type of node: 'rule' for leaf or 'group' for group node |
attributeType - Int
|
For leaf nodes: attribute type code (1-9) |
ruleOperator - Int
|
For leaf nodes: rule operator code (1=CONTAINS, 2=EQUALS, 3=STARTS_WITH, 4=ENDS_WITH, 5=MATCHES_REGEX, 6=NOT_CONTAINS, 7=NOT_EQUALS) |
value - String
|
For leaf nodes: value to compare against |
mergingOperator - Int
|
For group nodes: merging operator code (1=AND, 2=OR) |
children - [TnsRuleStructureInput!]
|
For group nodes: child rules |
Example
{
"type": "abc123",
"attributeType": 123,
"ruleOperator": 123,
"value": "abc123",
"mergingOperator": 123,
"children": [TnsRuleStructureInput]
}