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.
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.
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
clientProposal
Description
client proposal by ID
Response
Returns a ClientProposal
Arguments
Name | Description |
---|---|
id - ID!
|
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
Response
Returns a ClientProposalsConnection
Arguments
Name | Description |
---|---|
jobPostingId - ID!
|
|
filter - ClientProposalFilter
|
|
sortAttribute - ClientProposalSortAttribute
|
|
pagination - Pagination
|
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": 123,
"edges": [ClientProposalsEdge],
"pageInfo": PageInfo
}
}
}
proposalMetadata
Description
metadata for proposals
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
Response
Returns a VendorProposal
Arguments
Name | Description |
---|---|
id - ID!
|
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": "xyz789",
"projectPlan": ProposalProjectPlan,
"auditDetails": ProposalAuditDetails,
"status": VendorProposalStatus,
"annotations": ["Hidden"]
}
}
}
vendorProposals
Description
list of vendor proposals based on filters like job posting ids, vendor id, etc
Response
Returns a VendorProposalsConnection!
Arguments
Name | Description |
---|---|
filter - VendorProposalFilter!
|
|
sortAttribute - VendorProposalSortAttribute!
|
|
pagination - Pagination!
|
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
}
}
}
contract
Description
Fetch contract information by ID. Note: The provided 'id' corresponds to the id of the contract term in the ContractDetails schema.
Example
Query
query contract($id: ID!) {
contract(id: $id) {
id
title
contractType
job {
...MarketplaceJobPostingFragment
}
hasAgency
offer {
...OfferFragment
}
clientProposal {
...ClientProposalFragment
}
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": true,
"offer": Offer,
"clientProposal": ClientProposal,
"weeklyChargeAmount": Money,
"weeklyHoursLimit": 123.45,
"hourlyChargeRate": Money,
"createdDateTime": "xyz789",
"firstContractStartDateTime": "abc123",
"modifiedDateTime": "xyz789",
"startDateTime": "xyz789",
"endDateTime": "abc123",
"manualTimeAllowed": false,
"hideScreenshots": false,
"last": false,
"weeklyStipendHours": 987.65,
"estimatedDuration": ProposalEngagementDuration,
"status": "ACTIVE",
"suspended": true,
"freelancer": FreelancerProfile,
"paused": true,
"clientCompany": PublicCompanyInfo,
"milestones": [Milestone],
"contractId": "4",
"workDays": [WorkDay],
"workDiaryTimeCells": [WorkDiaryTimeCell],
"feedback": Feedback
}
}
}
contractByTerm
Description
get contract data by term id termId - contract term id, legacy contract assignment rid. required date - date in ISO format yyyy-MM-ddThh:mm+HHmm or yyyy-MM-dd, optional
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
}
}
}
Variables
{"termId": 4, "date": "xyz789"}
Response
{
"data": {
"contractByTerm": {
"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
}
}
}
contractDetails
Description
get contract data by contract id.
id - contract id, legacy virtual rollup id. required
date - returns only active terms on the given date. date in ISO format yyyy-MM-ddThh:mm+HHmm or yyyy-MM-dd, optional
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
}
}
}
Variables
{
"id": "4",
"date": "xyz789"
}
Response
{
"data": {
"contractDetails": {
"id": 4,
"title": "xyz789",
"status": "ACTIVE",
"closingReason": ClosingReason,
"deliveryModel": "TALENT_MARKETPLACE",
"kind": "WEEKLY_RETAINER",
"isPtc": true,
"createDate": "xyz789",
"modifyDate": "abc123",
"startDate": "abc123",
"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
}
}
}
contractList
Description
get contract details list by contract ids
ids - list of contract ids, legacy virtual rollup ids. max size is 10
Response
Returns a ContractList
Arguments
Name | Description |
---|---|
ids - [ID!]
|
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.
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": true
}
}
}
contractTerm
Description
get contract and single term data termId - contract term id, legacy contract assignment rid. required
Response
Returns a ContractDetails!
Arguments
Name | Description |
---|---|
termId - ID!
|
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
}
}
}
Variables
{"termId": 4}
Response
{
"data": {
"contractTerm": {
"id": "4",
"title": "abc123",
"status": "ACTIVE",
"closingReason": ClosingReason,
"deliveryModel": "TALENT_MARKETPLACE",
"kind": "WEEKLY_RETAINER",
"isPtc": true,
"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
}
}
}
customFields
Description
custom fields information
Response
Returns [CustomFields!]
Arguments
Name | Description |
---|---|
input - CustomFieldsInput!
|
|
offset - Int
|
|
limit - Int
|
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": 987}
Response
{
"data": {
"customFields": [
{
"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": false,
"termSectionId": "4",
"aclSnap": "abc123"
}
]
}
}
offer
Description
Returns offer for the given id
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": "xyz789",
"type": "MARKET_PLACE_HOURLY",
"job": MarketplaceJobPosting,
"vendorProposal": VendorProposal,
"closeJobPostingOnAccept": true,
"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. filter - contains data for searching
Response
Returns an OfferList
Arguments
Name | Description |
---|---|
filter - SearchOffersInput!
|
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. filter - contains data for searching
Response
Returns a ModernizedContractOfferList
Arguments
Name | Description |
---|---|
filter - SearchOffersByAttributesInput!
|
Example
Query
query offersByAttributes($filter: SearchOffersByAttributesInput!) {
offersByAttributes(filter: $filter) {
offers {
...ModernizedContractOfferFragment
}
}
}
Variables
{"filter": SearchOffersByAttributesInput}
Response
{
"data": {
"offersByAttributes": {
"offers": [ModernizedContractOffer]
}
}
}
offersByIds
Description
Get offers by ids. filter - contains data for searching
Response
Returns an OfferList
Arguments
Name | Description |
---|---|
filter - SearchOffersByIdInput!
|
Example
Query
query offersByIds($filter: SearchOffersByIdInput!) {
offersByIds(filter: $filter) {
offers {
...OfferFragment
}
}
}
Variables
{"filter": SearchOffersByIdInput}
Response
{"data": {"offersByIds": {"offers": [Offer]}}}
vendorContracts
Description
get list of contracts associated with a specific vendor
Response
Returns a ContractSearchResults
Arguments
Name | Description |
---|---|
filter - VendorContractSearchFilter!
|
|
options - ContractOptionsInput
|
|
paging - ContractPagingInput
|
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]
}
}
}
contractTimeReport
Response
Returns a TimeReportConnection!
Arguments
Name | Description |
---|---|
filter - TimeReportFilter
|
|
pagination - Pagination
|
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
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": "xyz789",
"weekWorkedOn": "xyz789",
"monthWorkedOn": "xyz789",
"yearWorkedOn": "abc123",
"freelancer": GenericUser,
"team": GenericOrganization,
"contractOffer": ContractOfferResult,
"contract": ContractDetails,
"termId": "4",
"task": "abc123",
"taskDescription": "abc123",
"memo": "abc123",
"totalHoursWorked": 987.65,
"totalCharges": 987.65,
"totalOnlineHoursWorked": 123.45,
"totalOnlineCharge": 123.45,
"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.
Response
Returns a TransactionHistory
Arguments
Name | Description |
---|---|
transactionHistoryFilter - TransactionHistoryFilter
|
Example
Query
query transactionHistory($transactionHistoryFilter: TransactionHistoryFilter) {
transactionHistory(transactionHistoryFilter: $transactionHistoryFilter) {
transactionDetail {
...TransactionHistoryDetailFragment
}
}
}
Variables
{"transactionHistoryFilter": TransactionHistoryFilter}
Response
{
"data": {
"transactionHistory": {
"transactionDetail": TransactionHistoryDetail
}
}
}
jobPosting
Description
Loading job posting from marketplaceOpenings[AS|DS]
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": true
}
Response
{
"data": {
"jobPosting": {
"id": "4",
"version": 987,
"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
Response
Returns [JobFeaturePrediction!]!
Arguments
Name | Description |
---|---|
ids - [ID!]!
|
Example
Query
query jobsFeaturePredictions($ids: [ID!]!) {
jobsFeaturePredictions(ids: $ids) {
id
openingMultiFreelancerPrediction
opening
}
}
Variables
{"ids": [4]}
Response
{
"data": {
"jobsFeaturePredictions": [
{
"id": 4,
"openingMultiFreelancerPrediction": false,
"opening": "xyz789"
}
]
}
}
marketplaceJobPosting
Response
Returns a MarketplaceJobPosting
Arguments
Name | Description |
---|---|
id - ID!
|
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
Response
Returns a MarketplaceJobPostingSearchConnection
Arguments
Name | Description |
---|---|
marketPlaceJobFilter - MarketplaceJobFilter
|
|
searchType - MarketplaceJobPostingSearchType
|
|
sortAttributes - [MarketplaceJobPostingSearchSortAttribute]
|
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
Response
Arguments
Name | Description |
---|---|
ids - [ID!]!
|
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": "xyz789",
"title": "xyz789",
"description": "abc123",
"publishedDateTime": "xyz789",
"annotations": MarketplacePostingAnnotations
}
]
}
}
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.
Response
Returns a MarketplaceJobPostingSearchConnection
Arguments
Name | Description |
---|---|
marketPlaceJobFilter - MarketplaceJobPostingsSearchFilter
|
|
searchType - MarketplaceJobPostingSearchType
|
|
sortAttributes - [MarketplaceJobPostingSearchSortAttribute]
|
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
}
}
}
accountAuditRecord
Description
Audit information of the account management action
Response
Returns an AccountAuditRecord
Arguments
Name | Description |
---|---|
processInstanceId - ID!
|
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]
}
}
}
company
Response
Returns a CompanyInfo
Arguments
Name | Description |
---|---|
id - ID!
|
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
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
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": "abc123",
"public": false,
"topic": "xyz789",
"owner": RoomUser,
"numUnread": 987,
"roomFavoriteDateTime": "abc123",
"favorite": false,
"numUnreadMentions": 123,
"roomUsers": [RoomUser],
"numUsers": 123,
"joinDateTime": "xyz789",
"lastVisitedDateTime": "xyz789",
"lastReadDateTime": "abc123",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "abc123",
"readOnly": false,
"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
}
}
}
freelancerProfileByProfileKey
Description
Retrieve freelancer profile by the freelancer profile key(ciphertext)
Response
Returns a FreelancerProfile!
Arguments
Name | Description |
---|---|
profileKey - String!
|
Example
Query
query freelancerProfileByProfileKey($profileKey: String!) {
freelancerProfileByProfileKey(profileKey: $profileKey) {
user {
...CurrentUserFragment
}
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,
"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": "xyz789",
"lastName": "xyz789",
"countryDetails": Country,
"email": "xyz789",
"portrait": Portrait,
"phoneNumber": PhoneNumber,
"privateTalentCloud": PrivateTalentCloudConnection
}
}
}
freelancerVisibility
Description
Get the visibility status of a given freelancer profile
Response
Returns a FreelancerVisibility
Arguments
Name | Description |
---|---|
id - ID
|
Example
Query
query freelancerVisibility($id: ID) {
freelancerVisibility(id: $id) {
locked
risky
currentVisibility
originalVisibility
}
}
Variables
{"id": "4"}
Response
{
"data": {
"freelancerVisibility": {
"locked": true,
"risky": true,
"currentVisibility": "abc123",
"originalVisibility": "abc123"
}
}
}
offerRoom
Description
Returns room associated with the given offerId
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": "xyz789",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "abc123",
"public": true,
"topic": "xyz789",
"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": "xyz789",
"readOnly": false,
"blockDateTime": "xyz789",
"blockedBy": RoomUser,
"hidden": true,
"muted": true,
"contractId": "4",
"contract": Contract,
"contractDetails": ContractDetails,
"vendorProposal": VendorProposal,
"roomNote": "abc123",
"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
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": "xyz789",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "abc123",
"public": false,
"topic": "xyz789",
"owner": RoomUser,
"numUnread": 987,
"roomFavoriteDateTime": "xyz789",
"favorite": true,
"numUnreadMentions": 123,
"roomUsers": [RoomUser],
"numUsers": 987,
"joinDateTime": "xyz789",
"lastVisitedDateTime": "abc123",
"lastReadDateTime": "xyz789",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "abc123",
"readOnly": false,
"blockDateTime": "abc123",
"blockedBy": RoomUser,
"hidden": false,
"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
}
}
}
organization
Description
Current organization
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": "xyz789",
"type": "BUSINESS",
"legacyType": "CLIENT",
"flag": OrganizationFlag,
"parentOrganization": CurrentOrganization,
"active": false,
"hidden": false,
"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
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": "xyz789",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "abc123",
"public": false,
"topic": "abc123",
"owner": RoomUser,
"numUnread": 123,
"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": "xyz789",
"blockedBy": RoomUser,
"hidden": true,
"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
}
}
}
publicRooms
Description
Get public rooms inside an organization
Response
Returns a RoomConnection!
Arguments
Name | Description |
---|---|
pagination - Pagination
|
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
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": "xyz789",
"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": "xyz789",
"lastVisitedDateTime": "abc123",
"lastReadDateTime": "abc123",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "abc123",
"readOnly": true,
"blockDateTime": "xyz789",
"blockedBy": RoomUser,
"hidden": true,
"muted": true,
"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
Response
Returns a RoomConnection!
Arguments
Name | Description |
---|---|
filter - RoomFilter
|
|
pagination - Pagination
|
|
sortOrder - SortOrder
|
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
Response
Returns a RoomStoryConnection
Arguments
Name | Description |
---|---|
filter - RoomStoryFilter
|
Example
Query
query roomStories($filter: RoomStoryFilter) {
roomStories(filter: $filter) {
totalCount
edges {
...RoomStoryEdgeFragment
}
pageInfo {
...PageInfoFragment
}
}
}
Variables
{"filter": RoomStoryFilter}
Response
{
"data": {
"roomStories": {
"totalCount": 123,
"edges": [RoomStoryEdge],
"pageInfo": PageInfo
}
}
}
roomStory
Description
Returns a particular story from a room
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": "abc123",
"user": GenericUser,
"message": "xyz789",
"organization": GenericOrganization,
"roomStoryNote": RoomStoryNote,
"attachments": [MessageAttachments]
}
}
}
snapshotsByContractId
Description
List all Snapshots for given contract ID and particular timestamp. timestamp are in (Unix Epoch seconds)
Response
Returns [Snapshot]
Arguments
Name | Description |
---|---|
input - SnapshotsByContractIdInput!
|
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": "xyz789",
"mouseEventsCount": 987,
"keyboardEventsCount": 987,
"teamName": "abc123",
"status": "abc123",
"activeWindowTitle": "abc123",
"memo": "xyz789",
"companyId": "xyz789",
"hasScreenshot": true,
"screenshotUrl": "xyz789",
"screenshotImage": "abc123",
"screenshotImageLarge": "abc123",
"screenshotImageMedium": "xyz789",
"screenshotImageThumbnail": "xyz789",
"hasWebcam": false,
"webcamUrl": "abc123",
"webcamImage": "abc123",
"webcamImageThumbnail": "xyz789",
"task": "abc123",
"minutes": SnapshotMinutes
}
]
}
}
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 } } }
Response
Returns a StaffsConnection!
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": "xyz789",
"affiliateContractor": true,
"hierarchy": true,
"orgLegacyType": "Client",
"orgType": "Business",
"hiddenOrg": true,
"activeOrg": false,
"eac": true,
"pagination": Pagination
}
Response
{
"data": {
"staffsByPersonId": {
"edges": [StaffsConnectionEdge],
"totalCount": 987,
"pageInfo": PageInfo
}
}
}
teamActivities
Description
List team activities A user needs to have hiring manager privileges within the team in order to create an activity at team level Return: a flat list (with no company/user description) of all activities under the specified team
Response
Returns an ActivitiesConnection!
Arguments
Name | Description |
---|---|
orgId - ID!
|
|
teamId - ID
|
|
page - PageFilterInput
|
|
filter - ActivityFilterInput
|
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": 123,
"edges": [ActivityEdge],
"page": Page
}
}
}
user
Description
Current user
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": "abc123",
"name": "abc123",
"userPermissions": UserPermissions,
"photoUrl": "abc123",
"offer": ContractOfferConnection,
"timeReport": [TimeReport],
"contractTimeReport": TimeReportConnection,
"freelancerProfile": FreelancerProfile,
"ciphertext": "xyz789",
"i18NSettings": I18nSettings,
"talentProfile": TalentProfile
}
}
}
userDetails
Description
Retrieves the user details based on their unique identifier. This query allows fetching detailed user information based on their ID. @param id: The unique identifier of the user. @returns PiiUser: The personal identifiable information (PII) of the user.
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": "abc123",
"photoUrl": "xyz789",
"publicUrl": "xyz789",
"email": "abc123",
"location": UserLocation
}
}
}
userIdsByEmail
Description
List of users by email
Response
Returns a UserIdsByEmailResponse
Arguments
Name | Description |
---|---|
email - String!
|
Example
Query
query userIdsByEmail($email: String!) {
userIdsByEmail(email: $email) {
totalCount
edges {
...UserIdsByEmailRecordEdgeFragment
}
}
}
Variables
{"email": "xyz789"}
Response
{
"data": {
"userIdsByEmail": {
"totalCount": 987,
"edges": [UserIdsByEmailRecordEdge]
}
}
}
workDays
Description
list of working days for a contractId and a given time range
Response
Returns a WorkdayResult
Arguments
Name | Description |
---|---|
workdaysInput - WorkdaysInput!
|
Example
Query
query workDays($workdaysInput: WorkdaysInput!) {
workDays(workdaysInput: $workdaysInput) {
workDays
}
}
Variables
{"workdaysInput": WorkdaysInput}
Response
{
"data": {
"workDays": {"workDays": ["xyz789"]}
}
}
workDiaryCellActivities
Description
user activities for a particular timecell. timecells are in (Unix Epoch seconds)
Response
Returns a WorkDiaryCellActivityByMinuteResult
Example
Query
query workDiaryCellActivities(
$contractId: ID!,
$timestamp: Int!
) {
workDiaryCellActivities(
contractId: $contractId,
timestamp: $timestamp
) {
activities {
...WorkDiaryCellActivityByMinuteFragment
}
}
}
Variables
{"contractId": 4, "timestamp": 123}
Response
{
"data": {
"workDiaryCellActivities": {
"activities": [WorkDiaryCellActivityByMinute]
}
}
}
workDiaryCompany
Description
WorkDiary information with screenshot urls for a particular company and a particular date
Response
Returns a WorkDiaryCompany
Arguments
Name | Description |
---|---|
workDiaryCompanyInput - WorkDiaryCompanyInput!
|
Example
Query
query workDiaryCompany($workDiaryCompanyInput: WorkDiaryCompanyInput!) {
workDiaryCompany(workDiaryCompanyInput: $workDiaryCompanyInput) {
total
snapshots {
...WorkDiaryCompanySnapshotFragment
}
}
}
Variables
{"workDiaryCompanyInput": WorkDiaryCompanyInput}
Response
{
"data": {
"workDiaryCompany": {
"total": 123,
"snapshots": [WorkDiaryCompanySnapshot]
}
}
}
workDiaryContract
Description
WorkDiary information with screenshot urls for a particular contract and a particular date
Response
Returns a WorkDiaryContract
Arguments
Name | Description |
---|---|
workDiaryContractInput - WorkDiaryContractInput!
|
Example
Query
query workDiaryContract($workDiaryContractInput: WorkDiaryContractInput!) {
workDiaryContract(workDiaryContractInput: $workDiaryContractInput) {
workDiaryMetadata {
...WorkDiaryMetadataFragment
}
workDiaryTimeCells {
...WorkDiaryTimeCellFragment
}
}
}
Variables
{"workDiaryContractInput": WorkDiaryContractInput}
Response
{
"data": {
"workDiaryContract": {
"workDiaryMetadata": WorkDiaryMetadata,
"workDiaryTimeCells": [WorkDiaryTimeCell]
}
}
}
ontologyAttributeGroupsForOccupation
Description
Returns the attribute groups associated to the occupation with the given uid. Per each attribute group it includes a maximum of 6 skills nodes corresponding to the narrower ones with highest priority. It also returns the node corresponding to the broader occupations. This is because attribute groups are inherited so clients may want to know if the given attribute group belongs to a broader occupation.
In resume, this endpoint returns a response formed by:
1) The occupation corresponding to the uid passed as parameter.
2) The broader occupations of the given occupation and their broader, and the broader of the broader and so on until no more. These occupations are in a map, with the uid of each as key.
3) The attribute groups required by the occupation and the broader occupations.Per attribute group, a maximum of 6 nodes, with the highest priority, among the narrower nodes of the attribute group. All these required skills are in a map, with the uid of each as a key.
Deprecated elements are not returned and neither the "paths" in which they are included. For example, a skill not deprecated is not returned if the attribute group it belongs is deprecated.
If metadataContext parameter is provided then relevant metadata is loaded and applied: attributes and attribute groups with visibility=false are filtered out from results, priorities are overwritten with the ones in metadata. @param occupationUid identifier of the occupation @param metadataContext context of the metadata to load. If not provided no metadata is loaded or applied. @param metadataCategoryUid UID of the category for metadata path. If not provided then primary category is used. @param metadataSubCategoryUid uid of the subcategory for metadata path. If not provided then primary subcategory is used. @return occupation with the uid passed as parameter, broader occupations and skills required by the occupation
Response
Returns an OccupationAttrGroupsResponse!
Arguments
Name | Description |
---|---|
filter - OccupationAttrGroupFilter
|
Example
Query
query ontologyAttributeGroupsForOccupation($filter: OccupationAttrGroupFilter) {
ontologyAttributeGroupsForOccupation(filter: $filter) {
occupation {
...OccupationFragment
}
broaderOccupations {
...BroaderOccupationMapFragment
}
attributeGroups {
...SkillFragment
}
attributes {
...AttributeSkillsMapFragment
}
}
}
Variables
{"filter": OccupationAttrGroupFilter}
Response
{
"data": {
"ontologyAttributeGroupsForOccupation": {
"occupation": Occupation,
"broaderOccupations": [BroaderOccupationMap],
"attributeGroups": [Skill],
"attributes": [AttributeSkillsMap]
}
}
}
ontologyBrowserSkills
Description
Return: list of browser skills paginated with limit and offset
Example
Query
query ontologyBrowserSkills(
$limit: Int!,
$offset: Int
) {
ontologyBrowserSkills(
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": 987, "offset": 123}
Response
{
"data": {
"ontologyBrowserSkills": [
{
"id": 4,
"ontologyId": "xyz789",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "abc123",
"createdDateTime": "xyz789",
"modifiedDateTime": "xyz789",
"definition": "abc123",
"altLabel": ["abc123"],
"narrower": ["xyz789"],
"narrowerIds": [4],
"broader": ["abc123"],
"broaderIds": [4],
"dependsOn": ["abc123"],
"dependsOnIds": [4],
"splitInto": ["xyz789"],
"splitIntoIds": ["4"],
"mergedInto": "abc123",
"mergedIntoId": 4,
"replacedBy": "xyz789",
"replacedById": 4,
"scopeNote": "xyz789",
"externalLink": ["xyz789"],
"exactMatch": ["xyz789"],
"exactMatchIds": [4],
"closeMatch": ["abc123"],
"closeMatchIds": ["4"],
"comment": "xyz789",
"attributeLevel": ["abc123"],
"allowMultipleClient": false,
"allowMultipleFreelancer": false,
"allowOther": true,
"clientQuestion": "xyz789",
"clientTip": "abc123",
"freelancerQuestion": "xyz789",
"freelancerTip": "abc123",
"advancedClient": false,
"client": true,
"freelancer": false,
"requiredClient": false,
"requiredFreelancer": true,
"otherClientLabel": "xyz789",
"otherFreelancerLabel": "xyz789",
"presentationMode": "abc123",
"priority": 123,
"isRequiredBy": ["xyz789"],
"isRequiredByIds": ["4"],
"legacySkillNid": "xyz789",
"prettyName": "xyz789",
"legacySkillId": 4
}
]
}
}
ontologyCategories
Description
fetch all enabled categories/subcategories/services
Response
Returns [OntologyCategory!]!
Example
Query
query ontologyCategories {
ontologyCategories {
id
preferredLabel
altLabel
slug
ontologyId
subcategories {
...OntologySubcategoryFragment
}
services {
...OntologyServiceFragment
}
}
}
Response
{
"data": {
"ontologyCategories": [
{
"id": "4",
"preferredLabel": "xyz789",
"altLabel": ["abc123"],
"slug": "xyz789",
"ontologyId": "abc123",
"subcategories": [OntologySubcategory],
"services": [OntologyService]
}
]
}
}
ontologyCategorySubcategory
Description
Return: list of category-subcategory pairs occupations for the occupation with the uid sent in the parameter
Response
Returns [CategorySubcategory!]!
Arguments
Name | Description |
---|---|
id - ID!
|
Example
Query
query ontologyCategorySubcategory($id: ID!) {
ontologyCategorySubcategory(id: $id) {
category {
...OccupationFragment
}
subcategory {
...OccupationFragment
}
}
}
Variables
{"id": "4"}
Response
{
"data": {
"ontologyCategorySubcategory": [
{
"category": Occupation,
"subcategory": Occupation
}
]
}
}
ontologyDeliverables
Description
Return: ontology elements of type Deliverables filtered by limit, offset and includeDeprecated
Response
Returns [Deliverable!]
Arguments
Name | Description |
---|---|
filter - OntologyDeliverablesFilter!
|
Example
Query
query ontologyDeliverables($filter: OntologyDeliverablesFilter!) {
ontologyDeliverables(filter: $filter) {
id
ontologyId
type
entityStatus
preferredLabel
definition
createdDateTime
modifiedDateTime
}
}
Variables
{"filter": OntologyDeliverablesFilter}
Response
{
"data": {
"ontologyDeliverables": [
{
"id": "4",
"ontologyId": "xyz789",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "abc123",
"definition": "abc123",
"createdDateTime": "xyz789",
"modifiedDateTime": "abc123"
}
]
}
}
ontologyElementCategories
Description
Get the list of categories (L1 occupations) that include the provided element in downstream hierarchy
Response
Returns [Occupation!]!
Arguments
Name | Description |
---|---|
elementId - ID!
|
Example
Query
query ontologyElementCategories($elementId: ID!) {
ontologyElementCategories(elementId: $elementId) {
id
ontologyId
type
entityStatus
preferredLabel
definition
createdDateTime
modifiedDateTime
skills {
...SkillFragment
}
}
}
Variables
{"elementId": "4"}
Response
{
"data": {
"ontologyElementCategories": [
{
"id": 4,
"ontologyId": "xyz789",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "abc123",
"definition": "abc123",
"createdDateTime": "abc123",
"modifiedDateTime": "xyz789",
"skills": [Skill]
}
]
}
}
ontologyElementsGraphSearchByIds
Description
Allows search of elements by ids in graph
Return: elements that have provided in id ontology Id, or legacy Uids
Response
Returns [OntologyGraphNode!]!
Example
Query
query ontologyElementsGraphSearchByIds(
$ids: [ID!]!,
$metadataContext: String,
$metadataFilter: [String!]
) {
ontologyElementsGraphSearchByIds(
ids: $ids,
metadataContext: $metadataContext,
metadataFilter: $metadataFilter
) {
id
uid
label
types
status
properties {
...PropertyStringMapFragment
}
relationships {
...StringListMapFragment
}
metadata {
...StringMapElementFragment
}
}
}
Variables
{
"ids": ["4"],
"metadataContext": "abc123",
"metadataFilter": ["abc123"]
}
Response
{
"data": {
"ontologyElementsGraphSearchByIds": [
{
"id": "4",
"uid": "4",
"label": "abc123",
"types": ["xyz789"],
"status": "ACTIVE",
"properties": [PropertyStringMap],
"relationships": [StringListMap],
"metadata": [StringMapElement]
}
]
}
}
ontologyElementsGraphSearchByPrefLabel
Description
Allows search of elements by prefLabel in graph
Return: elements that have provided string in prefLabel, at start, end or in the middle; case insensitive
Response
Returns [OntologyGraphNode!]!
Arguments
Name | Description |
---|---|
filter - OntologyElementsSearchByPrefLabelFilter
|
Example
Query
query ontologyElementsGraphSearchByPrefLabel($filter: OntologyElementsSearchByPrefLabelFilter) {
ontologyElementsGraphSearchByPrefLabel(filter: $filter) {
id
uid
label
types
status
properties {
...PropertyStringMapFragment
}
relationships {
...StringListMapFragment
}
metadata {
...StringMapElementFragment
}
}
}
Variables
{"filter": OntologyElementsSearchByPrefLabelFilter}
Response
{
"data": {
"ontologyElementsGraphSearchByPrefLabel": [
{
"id": 4,
"uid": "4",
"label": "xyz789",
"types": ["abc123"],
"status": "ACTIVE",
"properties": [PropertyStringMap],
"relationships": [StringListMap],
"metadata": [StringMapElement]
}
]
}
}
ontologyElementsSearchByPrefLabel
Description
Allows search of elements by prefLabel
Return: elements that have provided string in prefLabel, at start, end or in the middle; case insensitive
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": "abc123",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "abc123",
"definition": "abc123",
"createdDateTime": "xyz789",
"modifiedDateTime": "abc123"
}
]
}
}
ontologyEntities
Description
lookup entities by ids
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": ["xyz789"]}
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}
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
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
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}
]
}
}
ontologyOccupationCategorySubcategoryGraph
Description
Return a list of graph category-subcategory pairs occupations for the occupation with the uid sent in the parameter
Response
Returns [OntologyRelatedNodes]
Arguments
Name | Description |
---|---|
id - ID
|
Example
Query
query ontologyOccupationCategorySubcategoryGraph($id: ID) {
ontologyOccupationCategorySubcategoryGraph(id: $id) {
source {
...OntologyGraphNodeFragment
}
target {
...OntologyGraphNodeFragment
}
relationProperties {
...PropertyStringMapFragment
}
}
}
Variables
{"id": 4}
Response
{
"data": {
"ontologyOccupationCategorySubcategoryGraph": [
{
"source": OntologyGraphNode,
"target": OntologyGraphNode,
"relationProperties": [PropertyStringMap]
}
]
}
}
ontologyOccupations
Description
Returns ontology elements of type Occupation
Response
Returns [Occupation!]!
Arguments
Name | Description |
---|---|
filter - OntologyOccupationFilter!
|
Example
Query
query ontologyOccupations($filter: OntologyOccupationFilter!) {
ontologyOccupations(filter: $filter) {
id
ontologyId
type
entityStatus
preferredLabel
definition
createdDateTime
modifiedDateTime
skills {
...SkillFragment
}
}
}
Variables
{"filter": OntologyOccupationFilter}
Response
{
"data": {
"ontologyOccupations": [
{
"id": "4",
"ontologyId": "abc123",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "abc123",
"definition": "xyz789",
"createdDateTime": "abc123",
"modifiedDateTime": "xyz789",
"skills": [Skill]
}
]
}
}
ontologyOccupationsCategoriesServices
Description
Searches occupations categories services by list of category Uids
Return: 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]
}
}
}
ontologyOccupationsCategoriesServicesGraph
Description
Return a list of graph category services occupations for the occupation list with the uids sent in the parameter
Response
Returns [OntologyGraphNode!]
Arguments
Name | Description |
---|---|
categoryIds - [ID!]!
|
Example
Query
query ontologyOccupationsCategoriesServicesGraph($categoryIds: [ID!]!) {
ontologyOccupationsCategoriesServicesGraph(categoryIds: $categoryIds) {
id
uid
label
types
status
properties {
...PropertyStringMapFragment
}
relationships {
...StringListMapFragment
}
metadata {
...StringMapElementFragment
}
}
}
Variables
{"categoryIds": ["4"]}
Response
{
"data": {
"ontologyOccupationsCategoriesServicesGraph": [
{
"id": "4",
"uid": 4,
"label": "xyz789",
"types": ["abc123"],
"status": "ACTIVE",
"properties": [PropertyStringMap],
"relationships": [StringListMap],
"metadata": [StringMapElement]
}
]
}
}
ontologyOccupationsCategoriesSubcategoriesGraph
Description
Return a list of graph category subcategories occupations
Response
Returns [OntologyGraphNode!]!
Example
Query
query ontologyOccupationsCategoriesSubcategoriesGraph {
ontologyOccupationsCategoriesSubcategoriesGraph {
id
uid
label
types
status
properties {
...PropertyStringMapFragment
}
relationships {
...StringListMapFragment
}
metadata {
...StringMapElementFragment
}
}
}
Response
{
"data": {
"ontologyOccupationsCategoriesSubcategoriesGraph": [
{
"id": 4,
"uid": 4,
"label": "xyz789",
"types": ["xyz789"],
"status": "ACTIVE",
"properties": [PropertyStringMap],
"relationships": [StringListMap],
"metadata": [StringMapElement]
}
]
}
}
ontologyOccupationServices
Description
Return: list of services for a specific occupation
Response
Returns [Occupation!]!
Arguments
Name | Description |
---|---|
id - ID!
|
Example
Query
query ontologyOccupationServices($id: ID!) {
ontologyOccupationServices(id: $id) {
id
ontologyId
type
entityStatus
preferredLabel
definition
createdDateTime
modifiedDateTime
skills {
...SkillFragment
}
}
}
Variables
{"id": "4"}
Response
{
"data": {
"ontologyOccupationServices": [
{
"id": 4,
"ontologyId": "xyz789",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "xyz789",
"definition": "abc123",
"createdDateTime": "xyz789",
"modifiedDateTime": "xyz789",
"skills": [Skill]
}
]
}
}
ontologyOccupationSkillsCount
Description
Return: number of active attributes with type Skill available in the occupation
ontologyPublishedServices
Description
Return: services available for creating specialized profiles. Since all active services are published already
Response
Returns [Occupation!]!
Example
Query
query ontologyPublishedServices(
$limit: Int!,
$offset: Int
) {
ontologyPublishedServices(
limit: $limit,
offset: $offset
) {
id
ontologyId
type
entityStatus
preferredLabel
definition
createdDateTime
modifiedDateTime
skills {
...SkillFragment
}
}
}
Variables
{"limit": 987, "offset": 123}
Response
{
"data": {
"ontologyPublishedServices": [
{
"id": "4",
"ontologyId": "abc123",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "xyz789",
"definition": "xyz789",
"createdDateTime": "xyz789",
"modifiedDateTime": "abc123",
"skills": [Skill]
}
]
}
}
ontologySkillNamesByServiceUid
Description
Allows search of skill names by service uid
Return: skill uid and skill pref label
Response
Returns [SkillName!]!
Arguments
Name | Description |
---|---|
uid - ID
|
Example
Query
query ontologySkillNamesByServiceUid($uid: ID) {
ontologySkillNamesByServiceUid(uid: $uid) {
id
preferredLabel
}
}
Variables
{"uid": 4}
Response
{
"data": {
"ontologySkillNamesByServiceUid": [
{
"id": "4",
"preferredLabel": "abc123"
}
]
}
}
ontologySkills
Description
Return: list of skills paginated with limit and offset
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": 987, "offset": 987}
Response
{
"data": {
"ontologySkills": [
{
"id": "4",
"ontologyId": "abc123",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "xyz789",
"createdDateTime": "abc123",
"modifiedDateTime": "xyz789",
"definition": "xyz789",
"altLabel": ["xyz789"],
"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": "xyz789",
"externalLink": ["xyz789"],
"exactMatch": ["xyz789"],
"exactMatchIds": [4],
"closeMatch": ["abc123"],
"closeMatchIds": [4],
"comment": "abc123",
"attributeLevel": ["abc123"],
"allowMultipleClient": false,
"allowMultipleFreelancer": false,
"allowOther": false,
"clientQuestion": "xyz789",
"clientTip": "abc123",
"freelancerQuestion": "abc123",
"freelancerTip": "abc123",
"advancedClient": true,
"client": true,
"freelancer": true,
"requiredClient": false,
"requiredFreelancer": false,
"otherClientLabel": "xyz789",
"otherFreelancerLabel": "abc123",
"presentationMode": "abc123",
"priority": 123,
"isRequiredBy": ["xyz789"],
"isRequiredByIds": [4],
"legacySkillNid": "abc123",
"prettyName": "xyz789",
"legacySkillId": "4"
}
]
}
}
ontologySkillsByAttributeGroup
Description
Return: list of element/skills pair by attribute group
Response
Returns [ElementSkillMap!]!
Arguments
Name | Description |
---|---|
filter - AttrGroupFilter!
|
Example
Query
query ontologySkillsByAttributeGroup($filter: AttrGroupFilter!) {
ontologySkillsByAttributeGroup(filter: $filter) {
element
skill {
...SkillFragment
}
}
}
Variables
{"filter": AttrGroupFilter}
Response
{
"data": {
"ontologySkillsByAttributeGroup": [
{
"element": "abc123",
"skill": Skill
}
]
}
}
ontologySkillsRecords
Description
fetch all enabled skills
Response
Returns [OntologySkill!]!
Arguments
Name | Description |
---|---|
filter - OntologySkillsFilter
|
|
pagination - Pagination
|
Example
Query
query ontologySkillsRecords(
$filter: OntologySkillsFilter,
$pagination: Pagination
) {
ontologySkillsRecords(
filter: $filter,
pagination: $pagination
) {
id
preferredLabel
ontologyId
}
}
Variables
{
"filter": OntologySkillsFilter,
"pagination": Pagination
}
Response
{
"data": {
"ontologySkillsRecords": [
{
"id": "4",
"preferredLabel": "xyz789",
"ontologyId": "abc123"
}
]
}
}
ontologyVisitorCategories
Description
fetch all enabled visitor categories/subcategories/services
Response
Returns [OntologyCategory!]!
Example
Query
query ontologyVisitorCategories {
ontologyVisitorCategories {
id
preferredLabel
altLabel
slug
ontologyId
subcategories {
...OntologySubcategoryFragment
}
services {
...OntologyServiceFragment
}
}
}
Response
{
"data": {
"ontologyVisitorCategories": [
{
"id": "4",
"preferredLabel": "abc123",
"altLabel": ["abc123"],
"slug": "abc123",
"ontologyId": "abc123",
"subcategories": [OntologySubcategory],
"services": [OntologyService]
}
]
}
}
freelancerProfileSearchRecords
Response
Arguments
Name | Description |
---|---|
searchFilter - FreelancerProfileSearchFilter!
|
|
pagination - Pagination!
|
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": 123
}
}
}
search
Response
Returns a Search
Example
Query
query search {
search {
searchFreelancerPublicProfile {
...SemSearchV2ResponseFragment
}
}
}
Response
{
"data": {
"search": {
"searchFreelancerPublicProfile": SemSearchV2Response
}
}
}
countries
Description
List of countries. Currently no filtering is available
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": "abc123",
"twoLetterAbbreviation": "abc123",
"threeLetterAbbreviation": "xyz789",
"region": "EU",
"phoneCode": "abc123",
"relatedRegion": Region,
"relatedSubRegion": Region,
"active": false,
"registrationAllowed": true
}
]
}
}
languages
Response
Returns [Language!]!
Example
Query
query languages {
languages {
iso639Code
active
englishName
}
}
Response
{
"data": {
"languages": [
{
"iso639Code": "xyz789",
"active": true,
"englishName": "xyz789"
}
]
}
}
reasons
Description
Reasons for some actions. Examples - declining invitation, ending contract, withdrawing offer
Response
Returns [ReasonsMetadata!]!
Arguments
Name | Description |
---|---|
reasonType - ReasonType!
|
|
all - Boolean
|
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": "xyz789"
}
]
}
}
regions
Response
Returns [Region!]
Example
Query
query regions {
regions {
id
name
parentRegion {
...RegionFragment
}
}
}
Response
{
"data": {
"regions": [
{
"id": "4",
"name": "abc123",
"parentRegion": Region
}
]
}
}
requestMetadata
Description
Information about request - whether it is an internal requests, in sudo mode, etc
Response
Returns a RequestMetadata!
Example
Query
query requestMetadata {
requestMetadata {
sudo
internal
}
}
Response
{"data": {"requestMetadata": {"sudo": false, "internal": true}}}
timeZones
Description
List of all availabe time zones
Response
Returns [TimeZoneRecord!]!
Example
Query
query timeZones {
timeZones {
timeZoneName
timeZoneDescription
}
}
Response
{
"data": {
"timeZones": [
{
"timeZoneName": "abc123",
"timeZoneDescription": "xyz789"
}
]
}
}
visitor
Response
Returns a Visitor
Example
Query
query visitor {
visitor {
i18n {
...VisitorI18NFragment
}
segment {
...VisitorSegmentFragment
}
}
}
Response
{
"data": {
"visitor": {
"i18n": VisitorI18N,
"segment": VisitorSegment
}
}
}
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.
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": "xyz789",
"onboardedStatus": "NOT_STARTED",
"totalTasks": 987,
"notStartedTasksCount": 123,
"inProgressTasksCount": 123,
"completedTasksCount": 987,
"tasksOverdue": 123,
"percentComplete": 987,
"startDateTime": "xyz789",
"completionDateTime": "xyz789",
"associations": [WorkflowAssociationView],
"tasks": [WorkflowTaskView],
"createdDateTime": "abc123",
"modifiedDateTime": "xyz789",
"createdBy": "abc123",
"modifiedBy": "xyz789"
}
}
}
talentCloudTasks
Description
list of task overviews for specified talent clouds
Response
Returns [TalentCloudTask]
Arguments
Name | Description |
---|---|
filter - TalentCloudTasksInputFilter!
|
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
Response
Returns a TalentProfile
Arguments
Name | Description |
---|---|
profileKey - 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
Talent Work history query
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": 123
}
}
}
accountingEntity
Description
Get the Accounting Entity of the current user from their organization uid
Response
Returns an AccountingEntity!
Example
Query
query accountingEntity {
accountingEntity {
id
}
}
Response
{"data": {"accountingEntity": {"id": 4}}}
managedProjectServices
Description
Partner retrieve a single Managed Project Services This query is not generally available. It is for specific set of customers who use the Managed Project Service integration
Response
Returns a PartnerManagedProjectServicesResponse
Example
Query
query managedProjectServices(
$partnerSlug: String!,
$partnerEngagementId: String!
) {
managedProjectServices(
partnerSlug: $partnerSlug,
partnerEngagementId: $partnerEngagementId
) {
data {
...PartnerManagedProjectServicesEntryResponseFragment
}
}
}
Variables
{
"partnerSlug": "abc123",
"partnerEngagementId": "xyz789"
}
Response
{
"data": {
"managedProjectServices": {
"data": [PartnerManagedProjectServicesEntryResponse]
}
}
}
managedProjectServicesBatch
Description
Partner retrieves the created batch of Managed Project Services
Response
Returns a ManagedProjectServicesBatchResponse
Example
Query
query managedProjectServicesBatch(
$partnerSlug: String!,
$batchId: String!
) {
managedProjectServicesBatch(
partnerSlug: $partnerSlug,
batchId: $batchId
) {
batchData {
...PartnerManagedProjectServicesBatchDataResponseFragment
}
}
}
Variables
{
"partnerSlug": "xyz789",
"batchId": "xyz789"
}
Response
{
"data": {
"managedProjectServicesBatch": {
"batchData": [
PartnerManagedProjectServicesBatchDataResponse
]
}
}
}
Mutations
confirmFiles
Description
confirm files, returned is a flag indicating whether operation was successful or not
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": false}}
createDirectUploadLinkForJAClientProposal
Response
Returns a FileInfo!
Arguments
Name | Description |
---|---|
input - CreateDirectUploadLinkInput!
|
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
Response
Returns an UpdateClientProposalResult!
Arguments
Name | Description |
---|---|
clientProposalDeclineRequest - ClientProposalDeclineRequest
|
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.
Response
Returns an UpdateClientProposalResult!
Arguments
Name | Description |
---|---|
clientProposalHideRequest - ClientProposalHideRequest!
|
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
Response
Returns an UpdateClientProposalResult!
Arguments
Name | Description |
---|---|
clientProposalReadRequest - ClientProposalReadRequest
|
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
Response
Returns an UpdateClientProposalResult!
Arguments
Name | Description |
---|---|
clientProposalMessageRequest - ClientProposalMessageRequest
|
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
Response
Returns an UpdateClientProposalResult!
Arguments
Name | Description |
---|---|
clientProposalShortlistRequest - ClientProposalShortlistRequest
|
Example
Query
mutation shortlistClientProposal($clientProposalShortlistRequest: ClientProposalShortlistRequest) {
shortlistClientProposal(clientProposalShortlistRequest: $clientProposalShortlistRequest) {
proposal {
...ClientProposalFragment
}
status
}
}
Variables
{
"clientProposalShortlistRequest": ClientProposalShortlistRequest
}
Response
{
"data": {
"shortlistClientProposal": {
"proposal": ClientProposal,
"status": "SUCCESS"
}
}
}
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
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": "xyz789",
"state": "NotFunded",
"description": "xyz789",
"currentEscrowAmount": Money,
"depositAmount": Money,
"fundedAmount": Money,
"paid": Money,
"overpayment": Money,
"bonus": Money,
"previousMilestoneUnusedDeposit": Money,
"submissionCount": 123,
"sequenceId": 123,
"payComments": "abc123",
"lastSubmissionCreatedTime": "xyz789",
"createdDateTime": "xyz789",
"modifiedDateTime": "abc123",
"instructions": "abc123",
"submissionEvents": [SubmissionEvent]
}
}
}
approveMilestone
Description
Approves a milestone
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": "xyz789",
"state": "NotFunded",
"description": "abc123",
"currentEscrowAmount": Money,
"depositAmount": Money,
"fundedAmount": Money,
"paid": Money,
"overpayment": Money,
"bonus": Money,
"previousMilestoneUnusedDeposit": Money,
"submissionCount": 987,
"sequenceId": 123,
"payComments": "xyz789",
"lastSubmissionCreatedTime": "xyz789",
"createdDateTime": "abc123",
"modifiedDateTime": "abc123",
"instructions": "xyz789",
"submissionEvents": [SubmissionEvent]
}
}
}
createMilestoneV2
Description
Client creates a new milestone (V2)
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": 123,
"payComments": "xyz789",
"lastSubmissionCreatedTime": "abc123",
"createdDateTime": "xyz789",
"modifiedDateTime": "xyz789",
"instructions": "xyz789",
"submissionEvents": [SubmissionEvent]
}
}
}
createOffer
Description
Create offer mutation used for all available types of offer including Fixed price and Hourly
Response
Returns an OfferCreationResponse
Arguments
Name | Description |
---|---|
offerInput - CreationOfferInput!
|
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
Response
Returns a Boolean!
Arguments
Name | Description |
---|---|
input - DeleteMilestoneInput
|
Example
Query
mutation deleteMilestone($input: DeleteMilestoneInput) {
deleteMilestone(input: $input)
}
Variables
{"input": DeleteMilestoneInput}
Response
{"data": {"deleteMilestone": true}}
editMilestone
Description
Client edits an existing milestone
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": "xyz789",
"state": "NotFunded",
"description": "xyz789",
"currentEscrowAmount": Money,
"depositAmount": Money,
"fundedAmount": Money,
"paid": Money,
"overpayment": Money,
"bonus": Money,
"previousMilestoneUnusedDeposit": Money,
"submissionCount": 123,
"sequenceId": 987,
"payComments": "xyz789",
"lastSubmissionCreatedTime": "xyz789",
"createdDateTime": "abc123",
"modifiedDateTime": "xyz789",
"instructions": "abc123",
"submissionEvents": [SubmissionEvent]
}
}
}
endContractByClient
Description
End a contract by a client
Response
Returns a ContractActionResponse
Arguments
Name | Description |
---|---|
contractId - ID!
|
|
input - EndContractInput!
|
Example
Query
mutation endContractByClient(
$contractId: ID!,
$input: EndContractInput!
) {
endContractByClient(
contractId: $contractId,
input: $input
) {
success
}
}
Variables
{
"contractId": "4",
"input": EndContractInput
}
Response
{"data": {"endContractByClient": {"success": false}}}
endContractByFreelancer
Description
End a contract by a freelancer
Response
Returns a ContractActionResponse
Arguments
Name | Description |
---|---|
contractId - ID!
|
|
input - EndContractInput!
|
Example
Query
mutation endContractByFreelancer(
$contractId: ID!,
$input: EndContractInput!
) {
endContractByFreelancer(
contractId: $contractId,
input: $input
) {
success
}
}
Variables
{"contractId": 4, "input": EndContractInput}
Response
{"data": {"endContractByFreelancer": {"success": true}}}
pauseContract
Description
Pause a contract by a client
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
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
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
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}}}
withdrawOffer
Description
Withdraws an offer through new offersCommand service. This method check permissions from logged user
Response
Returns a Boolean!
Arguments
Name | Description |
---|---|
input - WithdrawOfferInput!
|
Example
Query
mutation withdrawOffer($input: WithdrawOfferInput!) {
withdrawOffer(input: $input)
}
Variables
{"input": WithdrawOfferInput}
Response
{"data": {"withdrawOffer": true}}
createJobPosting
Description
Creates a new Job post. Required OrganizationId will be derived at fetcher side
Response
Returns a JobPostingCreateResponse
Arguments
Name | Description |
---|---|
jobPostingRequest - JobPostingCreateRequest!
|
Example
Query
mutation createJobPosting($jobPostingRequest: JobPostingCreateRequest!) {
createJobPosting(jobPostingRequest: $jobPostingRequest) {
id
qualificationsSaved
skillsSaved
questionsSaved
segmentationDataSaved
attachmentsSaved
ptcInfoSaved
jobPostingAdditional
sandsJobPostSaved
customFieldsSaved
}
}
Variables
{"jobPostingRequest": JobPostingCreateRequest}
Response
{
"data": {
"createJobPosting": {
"id": 4,
"qualificationsSaved": false,
"skillsSaved": true,
"questionsSaved": false,
"segmentationDataSaved": false,
"attachmentsSaved": true,
"ptcInfoSaved": true,
"jobPostingAdditional": true,
"sandsJobPostSaved": true,
"customFieldsSaved": true
}
}
}
updateJobPosting
Description
Updates an existing Job post. Required OrganizationId will be derived at fetcher side
Response
Returns a JobPostingUpdateResponse
Arguments
Name | Description |
---|---|
id - ID!
|
|
jobPostingRequest - JobPostingUpdateRequest!
|
Example
Query
mutation updateJobPosting(
$id: ID!,
$jobPostingRequest: JobPostingUpdateRequest!
) {
updateJobPosting(
id: $id,
jobPostingRequest: $jobPostingRequest
) {
id
qualificationsSaved
skillsSaved
questionsSaved
segmentationDataSaved
attachmentsSaved
ptcInfoSaved
sandsJobPostSaved
}
}
Variables
{
"id": "4",
"jobPostingRequest": JobPostingUpdateRequest
}
Response
{
"data": {
"updateJobPosting": {
"id": "4",
"qualificationsSaved": false,
"skillsSaved": true,
"questionsSaved": false,
"segmentationDataSaved": true,
"attachmentsSaved": true,
"ptcInfoSaved": true,
"sandsJobPostSaved": false
}
}
}
addFreelancerEmploymentRecord
Description
Input userId is NOT being used anymore. Internally it is always the current user's id teken from the context.
Response
Returns a FreelancerProfileEmploymentRecord
Arguments
Name | Description |
---|---|
input - CreateEmploymentRecordInput!
|
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": "abc123",
"standardizedCompanyId": "xyz789",
"standardizedJobTitleId": "xyz789",
"role": "xyz789",
"startDate": "abc123",
"endDate": "xyz789",
"description": "abc123",
"city": "xyz789",
"country": "abc123"
}
}
}
addFreelancerLanguage
Description
Input userId is NOT being used anymore. Internally it is always the current user's id teken from the context.
Response
Returns a FreelancerProfileLanguage
Arguments
Name | Description |
---|---|
input - FreelancerLanguageInput!
|
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": false,
"verifiedByCertificate": false,
"verifiedByFeedback": true
}
}
}
addFreelancerOtherExperience
Description
Input userId is NOT being used anymore. Internally it is always the current user's id teken from the context.
Response
Returns a FreelancerProfileOtherExperience
Arguments
Name | Description |
---|---|
input - OtherExperienceInput!
|
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": "abc123",
"active": false,
"createdDateTime": "abc123",
"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
Response
Returns a ProcessAddResponse
Arguments
Name | Description |
---|---|
orgId - ID!
|
|
teamId - ID
|
|
request - AddTeamActivityRequest!
|
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": false
}
}
}
addUserToRoom
Description
Add users to the room
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
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": "abc123",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "abc123",
"public": false,
"topic": "xyz789",
"owner": RoomUser,
"numUnread": 987,
"roomFavoriteDateTime": "xyz789",
"favorite": true,
"numUnreadMentions": 123,
"roomUsers": [RoomUser],
"numUsers": 123,
"joinDateTime": "xyz789",
"lastVisitedDateTime": "abc123",
"lastReadDateTime": "abc123",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "xyz789",
"readOnly": false,
"blockDateTime": "abc123",
"blockedBy": RoomUser,
"hidden": false,
"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
}
}
}
archiveTeamActivity
Description
Archive activities A user needs to have hiring manager privileges within the team in order to create an activity at team level
Response
Returns a ProcessUpdateResponse
Arguments
Name | Description |
---|---|
orgId - ID!
|
|
teamId - ID
|
|
codes - [String!]!
|
Example
Query
mutation archiveTeamActivity(
$orgId: ID!,
$teamId: ID,
$codes: [String!]!
) {
archiveTeamActivity(
orgId: $orgId,
teamId: $teamId,
codes: $codes
) {
success
}
}
Variables
{
"orgId": 4,
"teamId": "4",
"codes": ["abc123"]
}
Response
{"data": {"archiveTeamActivity": {"success": false}}}
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
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": ["abc123"]
}
Response
{"data": {"assignTeamActivityToTheContract": {"success": false}}}
createOrganization
Description
Create a new child organization
Response
Returns an AccountProcessInstance!
Arguments
Name | Description |
---|---|
input - CreateOrganizationInput!
|
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
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
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": "abc123",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "abc123",
"public": false,
"topic": "xyz789",
"owner": RoomUser,
"numUnread": 123,
"roomFavoriteDateTime": "abc123",
"favorite": false,
"numUnreadMentions": 987,
"roomUsers": [RoomUser],
"numUsers": 987,
"joinDateTime": "abc123",
"lastVisitedDateTime": "xyz789",
"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": "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 } } } } ...
Response
Returns an InviteToTeamResponse!
Arguments
Name | Description |
---|---|
invitations - [InvitationToTeamInput!]!
|
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.
Example
Query
mutation removeFreelancerEmploymentRecord(
$id: ID!,
$userId: ID!
) {
removeFreelancerEmploymentRecord(
id: $id,
userId: $userId
)
}
Variables
{"id": 4, "userId": 4}
Response
{"data": {"removeFreelancerEmploymentRecord": true}}
removeFreelancerLanguage
Description
Input userId is NOT being used anymore. Internally it is always the current user's id teken from the context.
Example
Query
mutation removeFreelancerLanguage(
$userId: ID!,
$iso639Code: String!
) {
removeFreelancerLanguage(
userId: $userId,
iso639Code: $iso639Code
)
}
Variables
{
"userId": "4",
"iso639Code": "xyz789"
}
Response
{"data": {"removeFreelancerLanguage": true}}
removeFreelancerOtherExperience
Description
Remove FL experience for the current user
removeRoom
Description
Removes a room
removeRoomStory
Description
Removes a story from a room
removeUserFromRoom
Description
Removes an user from a room
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
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": "abc123",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "xyz789",
"public": true,
"topic": "abc123",
"owner": RoomUser,
"numUnread": 123,
"roomFavoriteDateTime": "xyz789",
"favorite": true,
"numUnreadMentions": 987,
"roomUsers": [RoomUser],
"numUsers": 123,
"joinDateTime": "xyz789",
"lastVisitedDateTime": "xyz789",
"lastReadDateTime": "xyz789",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "abc123",
"readOnly": true,
"blockDateTime": "abc123",
"blockedBy": RoomUser,
"hidden": false,
"muted": true,
"contractId": "4",
"contract": Contract,
"contractDetails": ContractDetails,
"vendorProposal": VendorProposal,
"roomNote": "abc123",
"roomNotePresent": true,
"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
Response
Returns a ProcessUpdateResponse
Arguments
Name | Description |
---|---|
orgId - ID!
|
|
teamId - ID
|
|
codes - [String!]!
|
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
Response
Returns a FreelancerProfileAvailability
Arguments
Name | Description |
---|---|
input - FreelancerProfileAvailabilityInput!
|
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": "abc123",
"name": "abc123",
"createdDateTime": "xyz789"
}
}
}
updateFreelancerEmploymentRecord
Description
Input userId is NOT being used anymore. Internally it is always the current user's id teken from the context.
Response
Returns a FreelancerProfileEmploymentRecord
Arguments
Name | Description |
---|---|
input - UpdateEmploymentRecordInput!
|
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": "abc123",
"jobTitle": "xyz789",
"standardizedCompanyId": "abc123",
"standardizedJobTitleId": "abc123",
"role": "abc123",
"startDate": "xyz789",
"endDate": "xyz789",
"description": "xyz789",
"city": "abc123",
"country": "abc123"
}
}
}
updateFreelancerOtherExperience
Description
Input userId is NOT being used anymore. Internally it is always the current user's id teken from the context.
Response
Returns a FreelancerProfileOtherExperience
Arguments
Name | Description |
---|---|
input - UpdateOtherExperienceInput!
|
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": "abc123",
"active": true,
"createdDateTime": "abc123",
"updatedDateTime": "abc123"
}
}
}
updateOrganization
Description
Update organization data
Response
Returns an AccountProcessInstance!
Arguments
Name | Description |
---|---|
input - UpdateOrganizationInput!
|
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
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": "xyz789"
}
}
}
updateRoomV2
Description
Updates an existing room
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": "xyz789",
"public": true,
"topic": "xyz789",
"owner": RoomUser,
"numUnread": 123,
"roomFavoriteDateTime": "abc123",
"favorite": false,
"numUnreadMentions": 123,
"roomUsers": [RoomUser],
"numUsers": 987,
"joinDateTime": "abc123",
"lastVisitedDateTime": "abc123",
"lastReadDateTime": "abc123",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "xyz789",
"readOnly": true,
"blockDateTime": "xyz789",
"blockedBy": RoomUser,
"hidden": true,
"muted": true,
"contractId": 4,
"contract": Contract,
"contractDetails": ContractDetails,
"vendorProposal": VendorProposal,
"roomNote": "abc123",
"roomNotePresent": false,
"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
Response
Returns a ProcessUpdateResponse
Arguments
Name | Description |
---|---|
orgId - ID!
|
|
teamId - ID
|
|
request - UpdateTeamActivityRequest!
|
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": true}}}
updateWorkflowTask
Description
Updates the status of the individual task associated with the workflowId and taskId
Response
Returns an UpdateWorkflowTaskResult!
Arguments
Name | Description |
---|---|
workflowId - ID
|
|
taskId - ID
|
|
updateWorkflowTaskDetailsInput - UpdateWorkflowTaskDetailsInput
|
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
}
}
}
createManagedProjectServices
Description
Partner create a single Managed Project Services (sync). This mutation is not generally available. It is for specific set of customers who use the Managed Project Service integration
Response
Returns a PartnerManagedProjectServicesResponse
Arguments
Name | Description |
---|---|
partnerSlug - String!
|
|
input - CreateManagedProjectServicesInput!
|
Example
Query
mutation createManagedProjectServices(
$partnerSlug: String!,
$input: CreateManagedProjectServicesInput!
) {
createManagedProjectServices(
partnerSlug: $partnerSlug,
input: $input
) {
data {
...PartnerManagedProjectServicesEntryResponseFragment
}
}
}
Variables
{
"partnerSlug": "xyz789",
"input": CreateManagedProjectServicesInput
}
Response
{
"data": {
"createManagedProjectServices": {
"data": [PartnerManagedProjectServicesEntryResponse]
}
}
}
createManagedProjectServicesBatch
Description
Partner creates multiple Managed Project Services in a row (batch). This query is not generally available. It is for specific set of customers who use the Managed Project Service integration
Response
Returns a String
Arguments
Name | Description |
---|---|
partnerSlug - String!
|
|
input - CreateManagedProjectServicesBatchInput!
|
Example
Query
mutation createManagedProjectServicesBatch(
$partnerSlug: String!,
$input: CreateManagedProjectServicesBatchInput!
) {
createManagedProjectServicesBatch(
partnerSlug: $partnerSlug,
input: $input
)
}
Variables
{
"partnerSlug": "abc123",
"input": CreateManagedProjectServicesBatchInput
}
Response
{
"data": {
"createManagedProjectServicesBatch": "abc123"
}
}
createManagedProjectServicesMagicLink
Description
Creates a Magic Link. Partners can request a Magic Link within their logged-in area, allowing seamless interaction for their customers. This link provides a secure and frictionless authentication experience.
This mutation is not generally available. It is restricted to a specific group of clients using the Managed Project Service integration.
Goal
- Intended for partners who need to streamline customer access.
- Helps eliminate manual authentication steps by providing a pre-authenticated link.
Response
Returns a String
Example
Query
mutation createManagedProjectServicesMagicLink(
$partnerEngagementId: ID!,
$partnerSlug: String!
) {
createManagedProjectServicesMagicLink(
partnerEngagementId: $partnerEngagementId,
partnerSlug: $partnerSlug
)
}
Variables
{
"partnerEngagementId": "4",
"partnerSlug": "abc123"
}
Response
{
"data": {
"createManagedProjectServicesMagicLink": "abc123"
}
}
sendCustomPayment
Description
Send custom payment
Response
Returns a CustomPaymentResponse
Arguments
Name | Description |
---|---|
input - CustomPaymentInput
|
Example
Query
mutation sendCustomPayment($input: CustomPaymentInput) {
sendCustomPayment(input: $input) {
invoiceId
}
}
Variables
{"input": CustomPaymentInput}
Response
{
"data": {
"sendCustomPayment": {"invoiceId": "4"}
}
}
Types
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": "xyz789",
"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": "xyz789",
"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": "abc123",
"textQuery_eq": "abc123",
"country_any": ["abc123"],
"region_any": ["abc123"],
"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
|
|
edges - [ClientProposalsEdge]
|
|
pageInfo - PageInfo
|
Example
{
"totalCount": 987,
"edges": [ClientProposalsEdge],
"pageInfo": PageInfo
}
ClientProposalsEdge
Fields
Field Name | Description |
---|---|
cursor - String!
|
|
node - ClientProposal
|
Example
{
"cursor": "abc123",
"node": ClientProposal
}
ClientProposalShortlistRequest
ClientProposalSortAttribute
Fields
Input Field | Description |
---|---|
field - ClientProposalSortAttributeType!
|
|
sortOrder - SortOrder!
|
Example
{"field": "CHARGERATE", "sortOrder": "ASC"}
ClientProposalSortAttributeType
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": "abc123",
"expirationDate": "xyz789",
"maxFileSize": 123,
"contentType": "abc123",
"sslEnabled": true,
"metaData": "xyz789"
}
FileInfo
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" |
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
Fields
Field Name | Description |
---|---|
engagementDurationValues - [ProposalEngagementDuration!]!
|
|
reasons - [ReasonsMetadata!]!
|
|
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": "abc123"
}
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
Fields
Field Name | Description |
---|---|
proposal - ClientProposal
|
|
status - ProposalUpdateResultStatus!
|
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!
|
|
annotations_eq - VendorProposalAnnotation
|
|
freelancerId_eq - ID
|
|
organizationId_eq - ID
|
|
jobPostingIds_any - [ID!]
|
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
|
|
edges - [VendorProposalsEdge]
|
|
pageInfo - PageInfo
|
Example
{
"totalCount": 987,
"edges": [VendorProposalsEdge],
"pageInfo": PageInfo
}
VendorProposalsEdge
Fields
Field Name | Description |
---|---|
cursor - String
|
|
node - VendorProposal
|
Example
{
"cursor": "abc123",
"node": VendorProposal
}
VendorProposalSortAttribute
Fields
Input Field | Description |
---|---|
field - VendorProposalSortAttributeType!
|
|
sortOrder - SortOrder!
|
Example
{"field": "CREATEDDATETIME", "sortOrder": "ASC"}
VendorProposalSortAttributeType
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"
Offers and Contracts
ActivateMilestoneInput
Actor
ActorType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"System"
AgreementKind
Values
Enum Value | Description |
---|---|
|
|
|
Example
"Offer"
ApproveMilestoneInput
Example
{
"id": "4",
"paidAmount": "abc123",
"bonusAmount": "xyz789",
"paymentComment": "xyz789",
"underpaymentReason": "abc123",
"noteToContractor": "abc123"
}
ClientFeedback
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
|
|
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
|
Example
{
"id": "4",
"title": "xyz789",
"contractType": "HOURLY",
"job": MarketplaceJobPosting,
"hasAgency": true,
"offer": Offer,
"clientProposal": ClientProposal,
"weeklyChargeAmount": Money,
"weeklyHoursLimit": 123.45,
"hourlyChargeRate": Money,
"createdDateTime": "xyz789",
"firstContractStartDateTime": "xyz789",
"modifiedDateTime": "abc123",
"startDateTime": "xyz789",
"endDateTime": "abc123",
"manualTimeAllowed": true,
"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": true}
ContractDetails
Fields
Field Name | Description |
---|---|
id - ID!
|
basic contract data |
title - String
|
|
status - ContractStatus
|
|
closingReason - ClosingReason
|
|
deliveryModel - DeliveryModel
|
|
kind - ContractKind
|
|
isPtc - Boolean
|
|
createDate - String
|
dates |
modifyDate - String
|
|
startDate - String
|
|
endDate - String
|
|
offer - Offer
|
offer and opening |
offerId - ID
|
|
job - JobPosting!
|
|
freelancer - ContractUser!
|
contract vendor/freelancer data |
vendorOrganization - GenericOrganization!
|
|
vendorTeam - GenericOrganization!
|
|
clientOrganization - GenericOrganization!
|
contract client and agency data |
clientTeam - GenericOrganization!
|
|
hiringManager - ContractUser
|
|
agencyManager - ContractUser
|
|
supervisor - ContractUser!
|
contract supervisor |
changingUserType - CreatorType
|
contract changes |
changedBy - ContractUser
|
|
endedBy - ContractUser
|
|
metadata - ContractMetadata
|
|
hourlyLimits - [HourlyLimit]
|
contract terms |
terms - ContractTerms
|
Example
{
"id": "4",
"title": "abc123",
"status": "ACTIVE",
"closingReason": ClosingReason,
"deliveryModel": "TALENT_MARKETPLACE",
"kind": "WEEKLY_RETAINER",
"isPtc": false,
"createDate": "abc123",
"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
}
ContractKind
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"WEEKLY_RETAINER"
ContractList
Fields
Field Name | Description |
---|---|
contracts - [ContractDetails]
|
Example
{"contracts": [ContractDetails]}
ContractMetadata
Fields
Field Name | Description |
---|---|
agencyContract - Boolean
|
Example
{"agencyContract": true}
ContractOfferConnection
Fields
Field Name | Description |
---|---|
totalCount - Int
|
|
edges - [ContractOfferEdge]
|
|
pageInfo - PageInfo
|
Example
{
"totalCount": 123,
"edges": [ContractOfferEdge],
"pageInfo": PageInfo
}
ContractOfferEdge
Fields
Field Name | Description |
---|---|
cursor - String!
|
|
node - ContractOfferResult
|
Example
{
"cursor": "xyz789",
"node": ContractOfferResult
}
ContractOfferLastEvent
ContractOfferLegacyState
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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!
|
|
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
|
Example
{
"id": 4,
"company": GenericOrganization,
"team": GenericOrganization,
"contactPerson": GenericUser,
"freelancer": GenericUser,
"agency": GenericOrganization,
"startDateTime": "abc123",
"endDateTime": "xyz789",
"type": "Hourly",
"state": "Pending",
"milestoneState": "NotFunded",
"escrowRefundStatus": "Open",
"title": "xyz789",
"lastUpdatedDateTime": "xyz789",
"lastPublishedDateTime": "xyz789",
"inPrivateTalentCloud": true,
"offerCreatedDateTime": "xyz789",
"offer": Offer,
"contract": Contract,
"contractDetails": ContractDetails,
"catalogProject": false
}
ContractOfferState
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"Pending"
ContractOfferTermsVersion
Values
Enum Value | Description |
---|---|
|
|
|
Example
"V1"
ContractOfferType
Values
Enum Value | Description |
---|---|
|
|
|
Example
"Hourly"
ContractOfferVendorType
Values
Enum Value | Description |
---|---|
|
|
|
Example
"FREELANCER"
ContractOptionsInput
ContractPaging
ContractPagingInput
Description
offset - Number of records to skip, optional, default 0 limit - Number of results, optional, default 10 includeTotalCount - Flag to include total count in response, optional, default false
Example
{"limit": 987, "offset": 987, "includeTotalCount": false}
ContractProposal
Description
Freelancers can propose a contract to a client
Example
{
"id": 4,
"state": "abc123",
"updatedDateTime": "xyz789",
"createdDateTime": "abc123",
"canClientOfferBeAccepted": false
}
ContractSearchResults
Fields
Field Name | Description |
---|---|
paging - ContractPaging
|
|
contracts - [ContractDetails]
|
Example
{
"paging": ContractPaging,
"contracts": [ContractDetails]
}
ContractState
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
Example
"ACTIVE"
ContractStatus
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"ACTIVE"
ContractTerms
Fields
Field Name | Description |
---|---|
fixedPriceTerms - [FixedPriceContractTerm]
|
|
hourlyTerms - [HourlyContractTerm]
|
|
stipendTerms - [StipendContractTerm]
|
Example
{
"fixedPriceTerms": [FixedPriceContractTerm],
"hourlyTerms": [HourlyContractTerm],
"stipendTerms": [StipendContractTerm]
}
ContractUser
Example
{
"id": "4",
"rid": "4",
"name": "abc123",
"photoUrl": "abc123",
"firstName": "abc123",
"lastName": "xyz789",
"address": UserLocation,
"email": "abc123"
}
CreateMilestoneInput
Example
{
"offerId": 4,
"contractId": "4",
"description": "xyz789",
"instruction": "xyz789",
"depositAmount": "abc123",
"dueDate": "xyz789",
"attachmentIds": [4]
}
CreateOfferDeliveryModelInput
Values
Enum Value | Description |
---|---|
|
Example
"TalentMarketplace"
CreationOfferInput
Fields
Input Field | Description |
---|---|
interactive - Boolean
|
|
idempotencyKey - String
|
|
ignoreTestAccount - Boolean
|
|
kind - OfferKindInput!
|
|
offeror - OfferorInput!
|
|
clientTeamId - ID!
|
|
vendorUser - VendorUserInput!
|
|
metadata - OfferMetadataInput!
|
|
attachments - [String!]
|
|
title - String!
|
|
description - String
|
|
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
|
|
stipendTerms - OfferStipendTerms
|
|
milestoneTerms - OfferMilestoneTerms
|
|
deliveryModel - CreateOfferDeliveryModelInput!
|
|
closeOnAccept - Boolean
|
False by default. Default = false |
scheduledRateIncrease - OfferScheduledRateIncreaseInput
|
only allowed for Marketplace offers |
customFields - [StringMapElementInput]
|
|
offerLocation - OfferLocationInput
|
|
offerPayroll - OfferPayrollInput
|
Example
{
"interactive": true,
"idempotencyKey": "xyz789",
"ignoreTestAccount": false,
"kind": "Vanilla",
"offeror": "Client",
"clientTeamId": "4",
"vendorUser": VendorUserInput,
"metadata": OfferMetadataInput,
"attachments": ["xyz789"],
"title": "xyz789",
"description": "xyz789",
"contractStartDateTime": "abc123",
"contractEndDateTime": "abc123",
"hourlyRateTerms": OfferHourlyRateTerms,
"stipendTerms": OfferStipendTerms,
"milestoneTerms": OfferMilestoneTerms,
"deliveryModel": "TalentMarketplace",
"closeOnAccept": true,
"scheduledRateIncrease": OfferScheduledRateIncreaseInput,
"customFields": [StringMapElementInput],
"offerLocation": OfferLocationInput,
"offerPayroll": OfferPayrollInput
}
CreatorType
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": "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": "abc123"
}
CustomFieldsConnection
Fields
Field Name | Description |
---|---|
edges - [CustomFieldsEdge]
|
|
pageInfo - PageInfo
|
Example
{
"edges": [CustomFieldsEdge],
"pageInfo": PageInfo
}
CustomFieldsEdge
Fields
Field Name | Description |
---|---|
cursor - String!
|
|
node - CustomFields
|
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
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"TEXT_FIELD"
DeleteMilestoneInput
Fields
Input Field | Description |
---|---|
id - ID!
|
Example
{"id": 4}
DeliveryModel
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"TALENT_MARKETPLACE"
EditMilestoneInput
Example
{
"id": "4",
"description": "abc123",
"instructions": "abc123",
"depositAmount": "xyz789",
"dueDate": "xyz789",
"attachments": [4],
"message": "xyz789",
"sequenceId": 123
}
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": "abc123"
}
EscrowRefundStatus
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"Open"
Feedback
Fields
Field Name | Description |
---|---|
clientFeedback - ClientFeedback
|
|
freelancerFeedback - FreelancerFeedback
|
Example
{
"clientFeedback": ClientFeedback,
"freelancerFeedback": FreelancerFeedback
}
FeedbackInfoInput
Example
{
"availabilityScore": 123,
"comment": "xyz789",
"communicationScore": 987,
"cooperationScore": 987,
"deadlinesScore": 123,
"qualityScore": 987,
"skillsScore": 123
}
FixedPriceContractTerm
Fields
Field Name | Description |
---|---|
id - ID!
|
|
fpCharge - Money
|
|
fixedAmount - Money
|
|
createDate - String
|
|
modifyDate - String
|
|
changeDate - String
|
|
createdBy - ContractUser
|
|
creatorUserType - CreatorType
|
|
changedBy - ContractUser
|
|
startDate - String
|
|
changingUserType - CreatorType
|
|
isFP2 - Boolean
|
|
endDate - String
|
|
jobType - JobType
|
|
ptcData - PtcData
|
|
milestones - [Milestone]
|
Example
{
"id": "4",
"fpCharge": Money,
"fixedAmount": Money,
"createDate": "xyz789",
"modifyDate": "xyz789",
"changeDate": "abc123",
"createdBy": ContractUser,
"creatorUserType": "CLIENT",
"changedBy": ContractUser,
"startDate": "abc123",
"changingUserType": "CLIENT",
"isFP2": true,
"endDate": "xyz789",
"jobType": "FIXED",
"ptcData": PtcData,
"milestones": [Milestone]
}
FixedPriceTerm
Description
Terms for fixed priced offer
Fields
Field Name | Description |
---|---|
budget - Money
|
Example
{"budget": Money}
FreelancerFeedback
HourlyContractTerm
Fields
Field Name | Description |
---|---|
id - ID!
|
|
hourlyRate - Money
|
|
createDate - String
|
|
modifyDate - String
|
|
changeDate - String
|
|
createdBy - ContractUser
|
|
creatorUserType - CreatorType
|
|
changedBy - ContractUser
|
|
startDate - String
|
|
changingUserType - CreatorType
|
|
manualTimeAllowed - Boolean
|
|
endDate - String
|
|
jobType - JobType
|
|
ptcData - PtcData
|
Example
{
"id": "4",
"hourlyRate": Money,
"createDate": "xyz789",
"modifyDate": "abc123",
"changeDate": "abc123",
"createdBy": ContractUser,
"creatorUserType": "CLIENT",
"changedBy": ContractUser,
"startDate": "xyz789",
"changingUserType": "CLIENT",
"manualTimeAllowed": false,
"endDate": "abc123",
"jobType": "FIXED",
"ptcData": PtcData
}
HourlyLimit
Example
{
"id": 4,
"weeklyLimit": "abc123",
"createDate": "abc123",
"modifyDate": "xyz789",
"startDate": "abc123",
"endDate": "xyz789",
"legacyId": 987
}
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": false
}
JobType
Values
Enum Value | Description |
---|---|
|
|
|
Example
"FIXED"
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
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
|
|
depositAmount - Money
|
|
fundedAmount - Money
|
|
paid - Money
|
|
overpayment - Money
|
|
bonus - Money
|
|
previousMilestoneUnusedDeposit - Money
|
|
submissionCount - Int
|
|
sequenceId - Int
|
The sequence in which the milestone is to be executed |
payComments - String
|
|
lastSubmissionCreatedTime - String
|
|
createdDateTime - String
|
Creation date for the milestone |
modifiedDateTime - String
|
Update date for the milestone |
instructions - String
|
|
submissionEvents - [SubmissionEvent!]!
|
Example
{
"id": 4,
"createdBy": GenericUser,
"dueDateTime": "xyz789",
"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": "xyz789",
"createdDateTime": "xyz789",
"modifiedDateTime": "abc123",
"instructions": "abc123",
"submissionEvents": [SubmissionEvent]
}
MilestoneRejectionResponse
Fields
Field Name | Description |
---|---|
response - Boolean
|
Example
{"response": true}
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
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": "xyz789",
"title": "abc123",
"description": "xyz789",
"attachments": ["4"],
"contractStartDateTime": "xyz789",
"contractEndDateTime": "xyz789",
"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": true,
"lastEvent": ContractOfferLastEvent,
"createdDateTime": "abc123"
}
ModernizedContractOfferList
Fields
Field Name | Description |
---|---|
offers - [ModernizedContractOffer]
|
list of offers |
Example
{"offers": [ModernizedContractOffer]}
ModernizedOffer
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": "xyz789",
"description": "xyz789",
"attachments": [4],
"contractStartDateTime": "abc123",
"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": "xyz789",
"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!
|
|
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": "xyz789",
"description": "xyz789",
"type": "MARKET_PLACE_HOURLY",
"job": MarketplaceJobPosting,
"vendorProposal": VendorProposal,
"closeJobPostingOnAccept": false,
"client": GenericOrganization,
"offerTerms": OfferTerms,
"messageToContractor": "xyz789",
"state": "DRAFT",
"offerFeatures": OfferFeatures,
"clientCompany": PublicCompanyInfo,
"milestones": [Milestone],
"createdUsingBYOFlow": false,
"freelancer": FreelancerProfile,
"payrollOffer": true,
"deliveryModel": "TalentMarketplace",
"customFields": CustomFieldsConnection
}
OfferAddressInput
OfferByClientFilter
Fields
Input Field | Description |
---|---|
teamId_any - [ID!]
|
|
contactPersonId_any - [ID!]
|
|
offerType_any - [ContractOfferType!]
|
|
milestoneState_any - [OfferMilestoneState!]
|
|
escrowRefundStatus_any - [EscrowRefundStatus!]
|
|
freelancerId_any - [ID!]
|
|
agreementKind_any - [AgreementKind!]
|
|
commonFilter - OfferSearchCommonFilter
|
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
Fields
Input Field | Description |
---|---|
freelancerId_any - [ID!]
|
|
agencyTeamOrgId_any - [ID!]
|
|
clientOrgId_any - [ID!]
|
|
commonFilter - OfferSearchCommonFilter
|
Example
{
"freelancerId_any": [4],
"agencyTeamOrgId_any": ["4"],
"clientOrgId_any": [4],
"commonFilter": OfferSearchCommonFilter
}
OfferCreationResponse
Fields
Field Name | Description |
---|---|
offer - ModernizedOffer
|
Example
{"offer": ModernizedOffer}
OfferDeliveryModel
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"TalentMarketplace"
OfferFeatures
Description
Features associated with the enterprise related offer
Fields
Field Name | Description |
---|---|
purchaseOrder - PurchaseOrder
|
|
privateTalentCloud - PrivateTalentCloud
|
|
onSiteType - OfferWorkType
|
|
country - Country
|
|
state - String
|
|
localDescription - String
|
|
localFlexibilityDescription - String
|
|
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": "xyz789",
"localDescription": "xyz789",
"localFlexibilityDescription": "abc123",
"eor": false
}
OfferForFreelancerFilter
Fields
Input Field | Description |
---|---|
agencyRootCompanyOrgId_any - [ID!]
|
|
agencyTeamOrgId_any - [ID!]
|
|
clientOrgId_any - [ID!]
|
|
commonFilter - OfferSearchCommonFilter
|
Example
{
"agencyRootCompanyOrgId_any": [4],
"agencyTeamOrgId_any": ["4"],
"clientOrgId_any": [4],
"commonFilter": OfferSearchCommonFilter
}
OfferHourlyRateTerms
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
|
Example
{
"vendorRate": MoneyInput,
"weeklyLimit": "xyz789",
"manualTimeAllowed": true
}
OfferKind
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"HourlyPack"
OfferKindInput
Values
Enum Value | Description |
---|---|
|
Standard marketplace offer |
|
Enterprise |
Example
"Vanilla"
OfferLastEvent
OfferLegacyState
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"Draft"
OfferList
Fields
Field Name | Description |
---|---|
offers - [Offer]
|
list of offers |
Example
{"offers": [Offer]}
OfferLocationInput
Fields
Input Field | Description |
---|---|
workType - OfferWorkType
|
|
country - String
|
Can be retrieved by Query countries: [Country!]! |
state - String
|
Can be retrieved by Query location{state} |
description - String
|
|
flexible - Boolean
|
|
flexibilityDescription - String
|
|
city - String
|
Can be retrieved by Query location{state} |
address - OfferAddressInput
|
Example
{
"workType": "REMOTE",
"country": "abc123",
"state": "xyz789",
"description": "xyz789",
"flexible": false,
"flexibilityDescription": "abc123",
"city": "xyz789",
"address": OfferAddressInput
}
OfferMetadataInput
Fields
Input Field | Description |
---|---|
sourceType - SourceTypeInput!
|
|
sourceId - ID
|
Following options available:
|
occupationId - ID
|
Required for Direct offer |
jobPostingId - ID
|
|
data - String
|
|
checkoutId - ID
|
Example
{
"sourceType": "JobPosting",
"sourceId": 4,
"occupationId": 4,
"jobPostingId": 4,
"data": "abc123",
"checkoutId": "4"
}
OfferMilestoneState
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"NotFunded"
OfferMilestoneTerms
Fields
Input Field | Description |
---|---|
budget - MoneyInput!
|
milestone amount in the lowest currency denominations (so USD 49.12 would be 4912) |
milestoneList - [OfferTermsMilestoneInput!]!
|
Example
{
"budget": MoneyInput,
"milestoneList": [OfferTermsMilestoneInput]
}
Offeror
Values
Enum Value | Description |
---|---|
|
|
|
Example
"Client"
OfferorInput
Values
Enum Value | Description |
---|---|
|
Example
"Client"
OfferPayrollInput
OfferPeriodTypeInput
Values
Enum Value | Description |
---|---|
|
Example
"Weekly"
OfferScheduledRateIncreaseInput
OfferSearchAttribute
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"JobApplication"
OfferSearchCommonFilter
Fields
Input Field | Description |
---|---|
text_eq - String
|
|
states_any - [ContractOfferState!]
|
|
startDatePeriod_bt - [String!]
|
|
endDatePeriod_bt - [String!]
|
|
catalogProject - Boolean
|
Example
{
"text_eq": "abc123",
"states_any": ["Pending"],
"startDatePeriod_bt": ["abc123"],
"endDatePeriod_bt": ["xyz789"],
"catalogProject": true
}
OfferState
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"DRAFT"
OfferStipendTerms
Fields
Input Field | Description |
---|---|
stipend - MoneyInput!
|
periodic stipend |
vendorRate - MoneyInput!
|
|
period - OfferPeriodTypeInput!
|
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": "xyz789",
"expectedEndDate": "abc123",
"fixedPriceTerm": FixedPriceTerm,
"hourlyTerms": HourlyTerms
}
OfferTermsMilestoneInput
Fields
Input Field | Description |
---|---|
amount - MoneyInput!
|
milestone amount in the lowest currency denominations (so USD 49.12 would be 4912) |
description - String!
|
|
dueDate - String
|
milestone due date in yyyy-MM-dd format |
instructions - String
|
|
attachments - [String!]
|
Example
{
"amount": MoneyInput,
"description": "xyz789",
"dueDate": "xyz789",
"instructions": "abc123",
"attachments": ["xyz789"]
}
OfferType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"MARKET_PLACE_HOURLY"
OfferWorkType
Values
Enum Value | Description |
---|---|
|
|
|
Example
"REMOTE"
PeriodType
Values
Enum Value | Description |
---|---|
|
|
|
Example
"Weekly"
PtcData
PurchaseOrder
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
|
|
archived - Boolean!
|
|
placeHolder - Boolean!
|
True if "I don't have it yet" is enabled and selected |
createdAtDateTime - String!
|
|
creator - GenericUser!
|
|
alertThreshold - String
|
Percentage of spend used at which point user shall be notified |
notificationAlcType - PurchaseOrderNotificationAclType
|
Controls who gets notified |
notificationAlcSpecification - String
|
Example
{
"id": "4",
"orderNumber": "abc123",
"description": "xyz789",
"amount": Money,
"expiresAtDateTime": "abc123",
"aclType": "HMS_IN_COMPANY",
"aclSpecification": "abc123",
"archived": false,
"placeHolder": false,
"createdAtDateTime": "abc123",
"creator": GenericUser,
"alertThreshold": "xyz789",
"notificationAlcType": "ALL_USERS_WITH_HIRING_PERMISSIONS_IN_COMPANY",
"notificationAlcSpecification": "abc123"
}
PurchaseOrderAclType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"HMS_IN_COMPANY"
PurchaseOrderNotificationAclType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"ALL_USERS_WITH_HIRING_PERMISSIONS_IN_COMPANY"
RejectMilestoneSubmissionInput
SearchOffersByAttributesInput
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": true,
"includeMilestones": true
}
SearchOffersByIdInput
Fields
Input Field | Description |
---|---|
ids - [ID!]
|
offers ids |
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"],
"includeAttachments": false,
"includeMilestones": false
}
SearchOffersInput
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": 987,
"page": 123,
"ascendingOrder": false,
"includeAttachments": true,
"includeMilestones": false
}
SourceType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"JobPosting"
SourceTypeInput
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"JobPosting"
StipendContractTerm
Fields
Field Name | Description |
---|---|
id - String!
|
|
createDate - String
|
|
modifyDate - String
|
|
changeDate - String
|
|
createdBy - ContractUser
|
|
creatorUserType - CreatorType
|
|
changedBy - ContractUser
|
|
minGuaranteedHours - String
|
|
stipendAmount - Money
|
|
startDate - String
|
|
changingUserType - CreatorType
|
|
endDate - String
|
|
jobType - JobType
|
|
ptcData - PtcData
|
Example
{
"id": "xyz789",
"createDate": "abc123",
"modifyDate": "xyz789",
"changeDate": "xyz789",
"createdBy": ContractUser,
"creatorUserType": "CLIENT",
"changedBy": ContractUser,
"minGuaranteedHours": "xyz789",
"stipendAmount": Money,
"startDate": "abc123",
"changingUserType": "CLIENT",
"endDate": "abc123",
"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
SubmissionEvent
Fields
Field Name | Description |
---|---|
submission - Submission!
|
|
submissionMessage - SubmissionMessage
|
|
revisionMessage - SubmissionMessage
|
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": "xyz789"
}
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
Fields
Input Field | Description |
---|---|
vendorId - ID!
|
|
startDateBefore - String
|
|
endDateAfter - String
|
|
contractStatuses - [ContractStatus]
|
Example
{
"vendorId": "4",
"startDateBefore": "xyz789",
"endDateAfter": "xyz789",
"contractStatuses": ["ACTIVE"]
}
VendorUserInput
Description
User info associated with the offer
Example
{
"userId": "4",
"teamId": "4"
}
WithdrawOfferInput
Fields
Input Field | Description |
---|---|
offerId - ID!
|
|
message - String
|
Message to vendor |
withdrawalReason - WithdrawReason
|
Withdrawal reason |
Example
{
"offerId": 4,
"message": "xyz789",
"withdrawalReason": "OFFER_WITHDRAW_REASON_HIRED_DIFFERENT_FREELANCER"
}
WithdrawReason
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"OFFER_WITHDRAW_REASON_HIRED_DIFFERENT_FREELANCER"
WorkflowOfferState
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"Submitted"
Reporting
BillRate
BPAPrivateDataFilter
Cell
TimeReport
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": "xyz789",
"weekWorkedOn": "abc123",
"monthWorkedOn": "abc123",
"yearWorkedOn": "abc123",
"freelancer": GenericUser,
"team": GenericOrganization,
"contractOffer": ContractOfferResult,
"contract": ContractDetails,
"termId": 4,
"task": "xyz789",
"taskDescription": "abc123",
"memo": "xyz789",
"totalHoursWorked": 987.65,
"totalCharges": 987.65,
"totalOnlineHoursWorked": 123.45,
"totalOnlineCharge": 987.65,
"totalOfflineHoursWorked": 987.65,
"totalOfflineCharge": 123.45,
"billRate": BillRate
}
TimeReportConnection
Description
START time report
Fields
Field Name | Description |
---|---|
totalCount - Int
|
|
edges - [TimeReportEdge!]
|
|
pageInfo - PageInfo
|
Example
{
"totalCount": 123,
"edges": [TimeReportEdge],
"pageInfo": PageInfo
}
TimeReportEdge
Fields
Field Name | Description |
---|---|
node - TimeReport!
|
|
cursor - String!
|
Example
{
"node": TimeReport,
"cursor": "xyz789"
}
TimeReportFilter
Fields
Input Field | Description |
---|---|
organizationId_eq - ID!
|
|
timeReportDate_bt - DateTimeRange!
|
Example
{
"organizationId_eq": 4,
"timeReportDate_bt": DateTimeRange
}
TransactionHistory
Fields
Field Name | Description |
---|---|
transactionDetail - TransactionHistoryDetail
|
Group of non-pending transactions |
Example
{"transactionDetail": TransactionHistoryDetail}
TransactionHistoryDetail
Fields
Field Name | Description |
---|---|
transactionHistoryRow - [TransactionHistoryRow!]
|
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": ["abc123"]
}
TransactionHistoryRow
Fields
Field Name | Description |
---|---|
rowNumber - Int
|
|
runningChargeableBalance - Money
|
|
recordId - ID
|
|
remainder - String
|
|
amountCreditedToUser - Money
|
|
transactionReviewDueDate - String
|
|
transactionCreationDate - String
|
|
relatedUserPaymentMethod - Int
|
|
accountingSubtype - String
|
|
descriptionUI - String
|
|
relatedAssignment - Int
|
|
amountSentInOrigCurrency - Money
|
|
paymentGuaranteed - Boolean
|
|
fixedPriceEARMark - Int
|
|
relatedTransactionId - ID
|
|
relatedInvoiceId - ID
|
|
fullyPaidDate - String
|
|
type - String
|
|
transactionAmount - Money
|
|
relatedAccountingEntity - Int
|
|
description - String
|
|
purchaseOrderNumber - String
|
|
assignmentAgencyName - String
|
|
assignmentCompanyName - String
|
|
assignmentDeveloperName - String
|
|
assignmentTeamCompanyId - ID
|
|
assignmentTeamCompanyReference - Int
|
|
assignmentTeamId - ID
|
|
assignmentTeamReference - Int
|
|
assignmentTeamUserId - ID
|
|
assignmentTeamUserReference - Int
|
|
payment - Money
|
|
paymentStatus - String
|
|
prefix - String
|
Example
{
"rowNumber": 987,
"runningChargeableBalance": Money,
"recordId": "4",
"remainder": "abc123",
"amountCreditedToUser": Money,
"transactionReviewDueDate": "abc123",
"transactionCreationDate": "xyz789",
"relatedUserPaymentMethod": 987,
"accountingSubtype": "abc123",
"descriptionUI": "abc123",
"relatedAssignment": 987,
"amountSentInOrigCurrency": Money,
"paymentGuaranteed": true,
"fixedPriceEARMark": 987,
"relatedTransactionId": "4",
"relatedInvoiceId": "4",
"fullyPaidDate": "xyz789",
"type": "xyz789",
"transactionAmount": Money,
"relatedAccountingEntity": 123,
"description": "abc123",
"purchaseOrderNumber": "xyz789",
"assignmentAgencyName": "abc123",
"assignmentCompanyName": "xyz789",
"assignmentDeveloperName": "xyz789",
"assignmentTeamCompanyId": "4",
"assignmentTeamCompanyReference": 987,
"assignmentTeamId": "4",
"assignmentTeamReference": 123,
"assignmentTeamUserId": "4",
"assignmentTeamUserReference": 987,
"payment": Money,
"paymentStatus": "abc123",
"prefix": "abc123"
}
WorkDay
WorkDiary
Fields
Field Name | Description |
---|---|
cells - [Cell!]
|
Example
{"cells": [Cell]}
Job Posts
AccessType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"PUBLIC_INDEX"
ApplicationsBidStats
Area
AreaFilter
AreaType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"CITY"
AutoReviewStatus
Values
Enum Value | Description |
---|---|
|
|
|
|
|
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
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"ALL"
CustomFieldDropDown
Example
{
"id": "4",
"customFieldId": 4,
"value": "xyz789",
"displayValue": "abc123",
"orderIndex": 123,
"description": "abc123",
"inUse": false,
"active": true,
"aclType": "COMPANY",
"teamRids": ["abc123"]
}
CustomFieldsResponse
CustomJobPostSkill
DropdownAclType
Values
Enum Value | Description |
---|---|
|
|
|
Example
"COMPANY"
Earning
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
Example
"ANY"
EngagementType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"FULL_TIME"
EnglishProficiency
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
Example
"ANY"
EnglishSkill
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"ANY_LEVEL"
ExperienceLevel
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"ENTRY_LEVEL"
FixedPriceContractTerms
Fields
Field Name | Description |
---|---|
amount - Money!
|
|
maxAmount - Money
|
|
engagementDuration - EngagementDuration
|
Example
{
"amount": Money,
"maxAmount": Money,
"engagementDuration": EngagementDuration
}
FreelancerClientRelation
Example
{
"companyRid": "4",
"companyName": "xyz789",
"edcUserId": 4,
"lastContractPlatform": "abc123",
"lastContractRid": 4,
"lastContractTitle": "xyz789"
}
HourlyContractTerms
Fields
Field Name | Description |
---|---|
engagementDuration - EngagementDuration
|
|
engagementType - EngagementType!
|
|
notSureProjectDuration - Boolean
|
|
hourlyBudgetType - JobPostingHourlyBudgetType
|
|
hourlyBudgetMin - Float
|
|
hourlyBudgetMax - Float
|
Example
{
"engagementDuration": EngagementDuration,
"engagementType": "FULL_TIME",
"notSureProjectDuration": true,
"hourlyBudgetType": "DEFAULT",
"hourlyBudgetMin": 123.45,
"hourlyBudgetMax": 123.45
}
JobActivity
Example
{
"lastClientActivity": "xyz789",
"invitesSent": 987,
"totalInvitedToInterview": 987,
"totalHired": 123,
"totalUnansweredInvites": 987,
"totalOffered": 987,
"totalRecommended": 987
}
JobDuration
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
Example
"WEEK"
JobFeaturePrediction
JobPostBillRate
Fields
Input Field | Description |
---|---|
billRateCode - String!
|
Example
{"billRateCode": "abc123"}
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!
|
|
version - Int
|
Optimistic locking version |
info - JobPostingInfo
|
|
visibility - AccessType
|
|
ownership - JobPostingOwnership
|
|
content - JobPostingContent
|
|
attachment - [JobPostingAttachment!]
|
|
classification - JobPostingClassification
|
|
segmentationData - JobPostingSegmentationData
|
|
contractTerms - JobPostingContractTerms
|
Contract information of the Posting |
contractorSelection - JobPostingContractorSelection
|
|
additionalInfo - JobPostingAdditionalInfo
|
|
ptcInfo - JobPostingPtcInfo
|
|
proposalsStatistics - ProposalsStatistics
|
|
customFields - [JobPostingCustomFields]
|
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
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"PUBLIC_INDEX"
JobPostingAdditionalInfo
Example
{
"clientNumberOfHiresOnCreate": 987,
"clientTotalSpentOnCreate": Money,
"directHire": true,
"invitePost": false,
"lastBuyerActivity": "abc123"
}
JobPostingAdditionalRequest
JobPostingAdditionalSkillInput
Fields
Input Field | Description |
---|---|
skillId - String
|
|
freetext - String
|
|
legacyConvertedSkill - Boolean
|
|
relevance - JobPostSkillRelevance
|
Example
{
"skillId": "abc123",
"freetext": "abc123",
"legacyConvertedSkill": false,
"relevance": "MANDATORY"
}
JobPostingAnnotations
Fields
Input Field | Description |
---|---|
tags - [String]
|
|
customFields - [JobPostingAnnotationsCustomField]
|
Example
{
"tags": ["xyz789"],
"customFields": [JobPostingAnnotationsCustomField]
}
JobPostingAnnotationsCustomField
JobPostingAttachment
Example
{
"id": "4",
"sequenceNumber": 987,
"fileName": "xyz789",
"link": "xyz789",
"afsFileLink": "xyz789",
"contentLength": 987,
"contentType": "xyz789",
"createdDateTime": "xyz789"
}
JobPostingCategory
JobPostingClassification
Description
classification info attached with the job posting management side
Fields
Field Name | Description |
---|---|
category - JobPostingCategory
|
|
subCategory - JobSubPostingCategory
|
|
skills - [Skill!]
|
|
customSkills - [CustomJobPostSkill!]
|
|
additionalSkills - [Skill!]
|
|
occupationId - ID
|
|
customAdditionalSkills - [String!]
|
Example
{
"category": JobPostingCategory,
"subCategory": JobSubPostingCategory,
"skills": [Skill],
"customSkills": [CustomJobPostSkill],
"additionalSkills": [Skill],
"occupationId": 4,
"customAdditionalSkills": ["xyz789"]
}
JobPostingConnection
Fields
Field Name | Description |
---|---|
totalCount - Int
|
|
edges - [JobPostingEdge]!
|
|
pageInfo - PageInfo
|
Example
{
"totalCount": 987,
"edges": [JobPostingEdge],
"pageInfo": PageInfo
}
JobPostingContent
JobPostingContractorSelection
Fields
Field Name | Description |
---|---|
proposalRequirement - JobPostingProposalRequirements
|
|
qualification - JobPostingQualification
|
|
location - JobPostingLocation
|
Example
{
"proposalRequirement": JobPostingProposalRequirements,
"qualification": JobPostingQualification,
"location": JobPostingLocation
}
JobPostingContractTerms
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!
|
|
onSiteType - OnSiteType
|
|
personsToHire - Int
|
|
experienceLevel - ExperienceLevel
|
|
fixedPriceContractTerms - FixedPriceContractTerms
|
|
hourlyContractTerms - HourlyContractTerms
|
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
Example
{
"id": "4",
"qualificationsSaved": false,
"skillsSaved": true,
"questionsSaved": true,
"segmentationDataSaved": true,
"attachmentsSaved": true,
"ptcInfoSaved": false,
"jobPostingAdditional": true,
"sandsJobPostSaved": true,
"customFieldsSaved": false
}
JobPostingCustomFields
JobPostingCustomFieldsRequest
Fields
Input Field | Description |
---|---|
responses - [CustomFieldsResponse]
|
|
newDropdowns - [CustomFieldDropDown]
|
Example
{
"responses": [CustomFieldsResponse],
"newDropdowns": [CustomFieldDropDown]
}
JobPostingEdge
Fields
Field Name | Description |
---|---|
cursor - String!
|
|
node - JobPosting
|
Example
{
"cursor": "abc123",
"node": JobPosting
}
JobPostingHourlyBudgetType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"DEFAULT"
JobPostingInfo
Fields
Field Name | Description |
---|---|
status - JobPostingStatus
|
|
company - CurrentOrganization
|
|
auditTime - AuditTime
|
|
hidden - Boolean
|
|
siteSource - String
|
|
keepOpenOnHire - Boolean
|
|
draftJobPostingId - ID
|
|
publishDateTime - String
|
Publish date time of the posting formatted according to ISO-8601 |
filledDateTime - String
|
|
sourcingUpdateForbidden - Boolean
|
|
sourcingUpdateCount - Int
|
|
premium - Boolean
|
|
legacyCiphertext - String
|
|
hideBudget - Boolean
|
|
categoryId - ID
|
|
groupId - ID
|
|
notSureFreelancersToHire - Boolean
|
|
notSureExperienceLevel - Boolean
|
|
hourlyBudgetType - JobPostingHourlyBudgetType
|
|
hourlyBudgetMin - Money
|
|
hourlyBudgetMax - Money
|
|
changedByUser - GenericUser
|
|
reasonId - ID
|
|
reasonName - String
|
Example
{
"status": "REQUESTED",
"company": CurrentOrganization,
"auditTime": AuditTime,
"hidden": true,
"siteSource": "abc123",
"keepOpenOnHire": false,
"draftJobPostingId": "4",
"publishDateTime": "abc123",
"filledDateTime": "xyz789",
"sourcingUpdateForbidden": true,
"sourcingUpdateCount": 987,
"premium": false,
"legacyCiphertext": "xyz789",
"hideBudget": true,
"categoryId": 4,
"groupId": "4",
"notSureFreelancersToHire": true,
"notSureExperienceLevel": false,
"hourlyBudgetType": "DEFAULT",
"hourlyBudgetMin": Money,
"hourlyBudgetMax": Money,
"changedByUser": GenericUser,
"reasonId": 4,
"reasonName": "abc123"
}
JobPostingLocation
Example
{
"countries": ["abc123"],
"states": ["xyz789"],
"timezones": ["abc123"],
"localCheckRequired": false,
"localMarket": false,
"areas": [Area],
"notSureLocationPreference": false,
"localDescription": "xyz789",
"localFlexibilityDescription": "abc123",
"address": "abc123"
}
JobPostingLocationRequest
JobPostingOwnership
Description
Owner of the job
Fields
Field Name | Description |
---|---|
user - GenericUser
|
|
clientCompany - CurrentOrganization
|
|
company - GenericOrganization
|
|
team - GenericOrganization
|
Example
{
"user": GenericUser,
"clientCompany": CurrentOrganization,
"company": GenericOrganization,
"team": GenericOrganization
}
JobPostingProposalRequirements
Fields
Field Name | Description |
---|---|
coverLetterRequired - Boolean
|
|
freelancerMilestonesAllowed - Boolean
|
|
screeningQuestions - [JobPostingQuestion!]
|
Example
{
"coverLetterRequired": false,
"freelancerMilestonesAllowed": false,
"screeningQuestions": [JobPostingQuestion]
}
JobPostingPtcInfo
Fields
Field Name | Description |
---|---|
jobPostingPtcVisibility - JobPostingPtcVisibility
|
Example
{"jobPostingPtcVisibility": "ANY_USER"}
JobPostingPtcInfoRequest
Fields
Input Field | Description |
---|---|
jobReference - String
|
|
talentCloudIds - [ID!]
|
|
visibility - JobPostingPtcVisibility
|
|
employerCompanyReference - String
|
|
status - JobPostingPtcStatus
|
|
purchaseOrderId - ID
|
|
locationCheckRequired - Boolean
|
|
countries - [String!]
|
|
onSiteType - OnSiteType
|
|
onSiteCity - String
|
|
onSiteCountry - String
|
|
createDate - Int
|
|
onSiteReason - String
|
|
onSiteReasonFlexible - String
|
|
onSiteState - String
|
|
teamId - ID
|
|
travelRequired - Boolean
|
|
updatedDate - Int
|
Example
{
"jobReference": "abc123",
"talentCloudIds": ["4"],
"visibility": "ANY_USER",
"employerCompanyReference": "xyz789",
"status": "OPEN",
"purchaseOrderId": 4,
"locationCheckRequired": true,
"countries": ["abc123"],
"onSiteType": "REMOTE",
"onSiteCity": "abc123",
"onSiteCountry": "xyz789",
"createDate": 123,
"onSiteReason": "abc123",
"onSiteReasonFlexible": "abc123",
"onSiteState": "abc123",
"teamId": "4",
"travelRequired": true,
"updatedDate": 123
}
JobPostingPtcStatus
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"OPEN"
JobPostingPtcVisibility
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"ANY_USER"
JobPostingQualification
Fields
Field Name | Description |
---|---|
contractorType - ContractorType
|
|
englishProficiency - EnglishProficiency
|
|
hasPortfolio - Boolean
|
|
risingTalent - Boolean
|
|
jobSuccessScore - Int
|
|
earnings - Earning
|
|
preferredGroups - [PreferredGroup!]
|
|
preferredTests - [PreferredTest]
|
Example
{
"contractorType": "ALL",
"englishProficiency": "ANY",
"hasPortfolio": false,
"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": 987,
"testId": "4",
"locationRegionId": "4",
"hasPortfolio": false,
"contractorType": "ALL",
"jobSuccessScore": 123,
"englishProficiency": "ANY",
"risingTalent": true,
"countries": ["xyz789"],
"regions": ["xyz789"],
"locationCheckRequired": false,
"states": ["abc123"],
"timezones": ["xyz789"],
"earnings": "ANY",
"localMarket": true,
"onSiteType": "REMOTE",
"locations": [JobPostingLocationRequest],
"localDescription": "xyz789",
"localFlexibilityDescription": "abc123",
"ctime": "xyz789",
"englishSkill": "ANY_LEVEL",
"groupRid": 4,
"languages": ["xyz789"],
"mtime": "abc123",
"openingId": "abc123"
}
JobPostingQuestion
Fields
Field Name | Description |
---|---|
id - ID!
|
|
question - String
|
|
user - GenericUser
|
|
questionType - QuestionType
|
|
auditTime - AuditTime
|
Example
{
"id": "4",
"question": "xyz789",
"user": GenericUser,
"questionType": "EXPERIENCE",
"auditTime": AuditTime
}
JobPostingQuestionRequest
Fields
Input Field | Description |
---|---|
question - String!
|
|
type - QuestionType
|
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
|
|
maxAmount - String
|
Amount as string containing exact value with dot symbol (".") is used to separate integer and fractional parts |
keepOpenOnHire - Boolean
|
|
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
|
|
staffAugDuplicate - Boolean
|
|
staffAugJob - Boolean
|
|
uid - String
|
|
weeklyRetainerBudget - Float
|
|
version - Int
|
Optimistic locking version |
tools - [JobPostToolInput!]
|
|
deliverables - String
|
|
durationType - JobPostDurationType
|
|
deadline - String
|
Example
{
"title": "abc123",
"description": "xyz789",
"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": "abc123",
"siteSource": "abc123",
"maxAmount": "xyz789",
"keepOpenOnHire": true,
"draftJobPostingId": 4,
"freelancerMilestonesAllowed": true,
"premium": true,
"hideBudget": true,
"notSureFreelancersToHire": true,
"notSureProjectDuration": true,
"notSureExperienceLevel": true,
"notSureLocationPreference": true,
"hourlyBudgetType": "DEFAULT",
"hourlyBudgetMin": "abc123",
"hourlyBudgetMax": "abc123",
"autoReviewStatus": "APPROVED",
"autoReviewTs": "xyz789",
"changedById": 4,
"ciphertext": "abc123",
"closeTime": "xyz789",
"companyName": "abc123",
"companyId": 4,
"createdByFirstName": "abc123",
"createdByLastName": "abc123",
"createdById": "4",
"ctime": "abc123",
"deletedReason": "abc123",
"filledDate": "xyz789",
"ghostPost": false,
"hidden": true,
"hourPackId": 4,
"lastOboAgentActionTs": "xyz789",
"lastOboAgentUserId": "4",
"legacyCiphertext": "abc123",
"legacyRid": 4,
"manualReviewStatus": "APPROVED",
"mtime": "abc123",
"offTheNetwork": true,
"publishTime": "abc123",
"reasonRid": "4",
"sourcingTime": "xyz789",
"sourcingUpdateCount": 987,
"sourcingUpdateForbidden": false,
"staffAugDuplicate": false,
"staffAugJob": false,
"uid": "abc123",
"weeklyRetainerBudget": 123.45,
"version": 987,
"tools": [JobPostToolInput],
"deliverables": "xyz789",
"durationType": "ONE_TIME_PROJECT",
"deadline": "xyz789"
}
JobPostingSegmentationData
Fields
Field Name | Description |
---|---|
segmentationValues - [JobPostingSegmentationValue!]
|
Example
{"segmentationValues": [JobPostingSegmentationValue]}
JobPostingSegmentationRequest
JobPostingSegmentationValue
Example
{
"id": 4,
"label": "xyz789",
"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
Example
{
"parentSkillId": "abc123",
"skillId": "xyz789",
"freetext": "abc123",
"boolAnswer": false,
"legacyConvertedSkill": false,
"relevance": "MANDATORY"
}
JobPostingStatus
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
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": false,
"jobPostingAdditionalRequest": JobPostingAdditionalRequest,
"sandsJobPost": SandsJobPostRequest,
"customFields": JobPostingCustomFieldsRequest,
"annotations": JobPostingAnnotations,
"enterpriseCustomFields": [
JobPostEnterpriseCustomFields
],
"billRate": JobPostBillRate
}
JobPostingUpdateResponse
Example
{
"id": "4",
"qualificationsSaved": false,
"skillsSaved": true,
"questionsSaved": true,
"segmentationDataSaved": false,
"attachmentsSaved": false,
"ptcInfoSaved": true,
"sandsJobPostSaved": true
}
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": true,
"fields": ["abc123"]
}
JobPostSkillRelevance
Description
Defines whether skills are mandatory or nice to have
Values
Enum Value | Description |
---|---|
|
|
|
Example
"MANDATORY"
JobPostToolInput
Fields
Input Field | Description |
---|---|
name - String
|
Example
{"name": "xyz789"}
JobPostType
Values
Enum Value | Description |
---|---|
|
|
|
Example
"HOURLY"
JobSubPostingCategory
MarketplaceAdditionalSearchInfo
Fields
Field Name | Description |
---|---|
highlightTitle - String
|
Example
{"highlightTitle": "xyz789"}
MarketplaceContractorSelection
Fields
Field Name | Description |
---|---|
proposalRequirement - MarketplaceProposalRequirements
|
|
qualification - MarketplaceQualification
|
|
location - MarketplaceLocation
|
Example
{
"proposalRequirement": MarketplaceProposalRequirements,
"qualification": MarketplaceQualification,
"location": MarketplaceLocation
}
MarketplaceContractTerms
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!
|
|
onSiteType - OnSiteType
|
|
personsToHire - Int!
|
|
experienceLevel - ExperienceLevel
|
|
fixedPriceContractTerms - FixedPriceContractTerms
|
|
hourlyContractTerms - HourlyContractTerms
|
|
notSurePersonsToHire - Boolean
|
|
notSureExperiencelevel - Boolean
|
Example
{
"contractStartDate": "abc123",
"contractEndDate": "xyz789",
"contractType": "HOURLY",
"onSiteType": "REMOTE",
"personsToHire": 123,
"experienceLevel": "ENTRY_LEVEL",
"fixedPriceContractTerms": FixedPriceContractTerms,
"hourlyContractTerms": HourlyContractTerms,
"notSurePersonsToHire": false,
"notSureExperiencelevel": true
}
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": "xyz789",
"skillExpression_eq": "xyz789",
"titleExpression_eq": "xyz789",
"searchTerm_eq": SearchTerm,
"categoryIds_any": [4],
"subcategoryIds_any": ["4"],
"occupationIds_any": ["4"],
"ontologySkillIds_all": ["4"],
"sinceId_eq": "abc123",
"maxId_eq": "xyz789",
"jobType_eq": "HOURLY",
"duration_any": ["WEEK"],
"workload_eq": "FULL_TIME",
"clientHiresRange_eq": IntRange,
"clientFeedBackRange_eq": FloatRange,
"budgetRange_eq": IntRange,
"verifiedPaymentOnly_eq": false,
"previousClients_eq": true,
"experienceLevel_eq": "ENTRY_LEVEL",
"locations_any": ["xyz789"],
"cityId_any": ["xyz789"],
"zipCodeId_any": ["abc123"],
"radius_eq": 123,
"areaId_any": ["xyz789"],
"timezone_eq": "xyz789",
"usState_eq": "abc123",
"daysPosted_eq": 123,
"jobPostingAccess": "PUBLIC_INDEX",
"ptcIds_any": [4],
"ptcOnly_eq": false,
"enterpriseOnly_eq": false,
"proposalRange_eq": IntRange,
"pagination_eq": Pagination,
"area_eq": AreaFilter,
"preserveFacet_eq": "xyz789",
"userLocationMatch_eq": false,
"visitorCountry_eq": "xyz789"
}
MarketplaceJobPosting
Fields
Field Name | Description |
---|---|
id - ID!
|
|
workFlowState - MarketplacePostingWorkFlowState
|
|
ownership - MarketplacePostingOwnership
|
|
annotations - MarketplacePostingAnnotations
|
|
activityStat - MarketplacePostingActivityStat
|
|
content - MarketplaceJobPostingContent
|
|
attachments - [MarketplacePostingAttachment!]
|
|
classification - MarketplacePostingClassification
|
|
segmentationData - MarketplaceSegmentationData
|
|
contractTerms - MarketplaceContractTerms
|
|
contractorSelection - MarketplaceContractorSelection
|
|
additionalSearchInfo - MarketplaceAdditionalSearchInfo
|
|
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
Example
{
"id": 4,
"ciphertext": "xyz789",
"title": "abc123",
"description": "abc123",
"publishedDateTime": "abc123",
"annotations": MarketplacePostingAnnotations
}
MarketplaceJobPostingSearchClientInfo
Fields
Field Name | Description |
---|---|
memberSinceDateTime - String
|
Deprecated legacy field |
totalHires - Int!
|
|
totalPostedJobs - Int!
|
past_hires |
totalSpent - Money
|
jobs_posted |
verificationStatus - ClientVerificationStatus
|
total_spent |
location - MarketPlaceJobSearchLocation
|
payment_verification_status |
totalReviews - Int!
|
|
totalFeedback - Float!
|
reviews_count |
companyRid - ID!
|
feedback |
companyName - String
|
|
edcUserId - ID!
|
|
lastContractPlatform - String
|
|
lastContractRid - ID
|
|
lastContractTitle - String
|
|
companyOrgUid - ID!
|
|
hasFinancialPrivacy - Boolean!
|
Example
{
"memberSinceDateTime": "abc123",
"totalHires": 123,
"totalPostedJobs": 987,
"totalSpent": Money,
"verificationStatus": "VERIFIED",
"location": MarketPlaceJobSearchLocation,
"totalReviews": 987,
"totalFeedback": 123.45,
"companyRid": 4,
"companyName": "abc123",
"edcUserId": "4",
"lastContractPlatform": "xyz789",
"lastContractRid": 4,
"lastContractTitle": "xyz789",
"companyOrgUid": 4,
"hasFinancialPrivacy": false
}
MarketplaceJobPostingSearchConnection
Fields
Field Name | Description |
---|---|
totalCount - Int
|
|
edges - [MarketplaceJobpostingSearchEdge]
|
|
pageInfo - PageInfo
|
Example
{
"totalCount": 123,
"edges": [MarketplaceJobpostingSearchEdge],
"pageInfo": PageInfo
}
MarketplaceJobpostingSearchEdge
Fields
Field Name | Description |
---|---|
cursor - String!
|
|
node - MarketplaceJobPostingSearchResult!
|
Example
{
"cursor": "xyz789",
"node": MarketplaceJobPostingSearchResult
}
MarketplaceJobPostingSearchOccupation
MarketplaceJobPostingSearchOccupations
Fields
Field Name | Description |
---|---|
category - MarketplaceJobPostingSearchOccupation!
|
|
subCategories - [MarketplaceJobPostingSearchOccupation]
|
|
occupationService - MarketplaceJobPostingSearchOccupation
|
Example
{
"category": MarketplaceJobPostingSearchOccupation,
"subCategories": [
MarketplaceJobPostingSearchOccupation
],
"occupationService": MarketplaceJobPostingSearchOccupation
}
MarketplaceJobPostingSearchRelevance
Example
{
"id": 4,
"effectiveCandidates": 987,
"recommendedEffectiveCandidates": 987,
"uniqueImpressions": 123,
"publishTime": "xyz789",
"hoursInactive": 987
}
MarketplaceJobPostingSearchResult
Fields
Field Name | Description |
---|---|
id - ID!
|
|
job - MarketplaceJobPosting
|
|
title - String!
|
|
description - String!
|
|
ciphertext - String!
|
|
duration - JobDuration
|
|
durationLabel - String
|
|
engagement - String
|
|
amount - Money!
|
|
recordNumber - String!
|
|
experienceLevel - FreelancerProfileExperienceLevel!
|
|
category - String
|
contractorTier |
subcategory - String
|
|
freelancersToHire - Int!
|
|
relevance - MarketplaceJobPostingSearchRelevance!
|
|
enterprise - Boolean!
|
|
relevanceEncoded - String!
|
|
totalApplicants - Int!
|
|
preferredFreelancerLocation - [String]
|
|
preferredFreelancerLocationMandatory - Boolean
|
|
premium - Boolean!
|
|
clientNotSureFields - [String]
|
|
clientPrivateFields - [String]
|
|
applied - Boolean!
|
|
createdDateTime - String!
|
|
publishedDateTime - String!
|
|
renewedDateTime - String
|
|
client - MarketplaceJobPostingSearchClientInfo!
|
|
skills - [MarketplaceJobPostingSearchSkill]!
|
|
occupations - MarketplaceJobPostingSearchOccupations
|
|
hourlyBudgetType - JobPostingHourlyBudgetType
|
|
hourlyBudgetMin - Money
|
|
hourlyBudgetMax - Money
|
|
localJobUserDistance - String
|
|
weeklyBudget - Money
|
|
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": "abc123",
"engagement": "abc123",
"amount": Money,
"recordNumber": "abc123",
"experienceLevel": "NONE",
"category": "xyz789",
"subcategory": "xyz789",
"freelancersToHire": 123,
"relevance": MarketplaceJobPostingSearchRelevance,
"enterprise": true,
"relevanceEncoded": "abc123",
"totalApplicants": 987,
"preferredFreelancerLocation": ["abc123"],
"preferredFreelancerLocationMandatory": true,
"premium": true,
"clientNotSureFields": ["xyz789"],
"clientPrivateFields": ["abc123"],
"applied": true,
"createdDateTime": "xyz789",
"publishedDateTime": "abc123",
"renewedDateTime": "xyz789",
"client": MarketplaceJobPostingSearchClientInfo,
"skills": [MarketplaceJobPostingSearchSkill],
"occupations": MarketplaceJobPostingSearchOccupations,
"hourlyBudgetType": "DEFAULT",
"hourlyBudgetMin": Money,
"hourlyBudgetMax": Money,
"localJobUserDistance": "abc123",
"weeklyBudget": Money,
"engagementDuration": EngagementDuration,
"totalFreelancersToHire": 987,
"teamId": 4,
"freelancerClientRelation": FreelancerClientRelation
}
MarketplaceJobPostingSearchSkill
MarketplaceJobPostingSearchSortAttribute
Fields
Input Field | Description |
---|---|
field - MarketplaceJobPostingSearchSortField!
|
Example
{"field": "RECENCY"}
MarketplaceJobPostingSearchSortField
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
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"
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": "abc123",
"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": true,
"previousClients_eq": false,
"experienceLevel_eq": "ENTRY_LEVEL",
"locations_any": ["abc123"],
"timezone_eq": "abc123",
"ptcIds_any": ["4"],
"ptcOnly_eq": false,
"enterpriseOnly_eq": true,
"proposalRange_eq": IntRange,
"pagination_eq": Pagination,
"area_eq": AreaFilter,
"preserveFacet_eq": "abc123",
"userLocationMatch_eq": true,
"visitorCountry_eq": "abc123"
}
MarketPlaceJobSearchLocation
MarketplaceLocation
Example
{
"countries": ["abc123"],
"states": ["xyz789"],
"timezones": ["xyz789"],
"localCheckRequired": false,
"localMarket": true,
"areas": [Area],
"notSureLocationPreference": true,
"localDescription": "abc123",
"localFlexibilityDescription": "xyz789"
}
MarketplacePostingActivityStat
Fields
Field Name | Description |
---|---|
applicationsBidStats - ApplicationsBidStats
|
|
jobActivity - JobActivity
|
Example
{
"applicationsBidStats": ApplicationsBidStats,
"jobActivity": JobActivity
}
MarketplacePostingAnnotations
Fields
Field Name | Description |
---|---|
tags - [String!]
|
|
customFields - [StringMapElement!]
|
Example
{
"tags": ["abc123"],
"customFields": [StringMapElement]
}
MarketplacePostingAttachment
MarketplacePostingClassification
Fields
Field Name | Description |
---|---|
category - JobCategory
|
|
subCategory - JobCategory
|
|
occupation - Occupation
|
|
skills - [Skill!]
|
|
additionalSkills - [Skill!]
|
Example
{
"category": JobCategory,
"subCategory": JobCategory,
"occupation": Occupation,
"skills": [Skill],
"additionalSkills": [Skill]
}
MarketplacePostingOwnership
Fields
Field Name | Description |
---|---|
company - GenericOrganization
|
|
team - GenericOrganization
|
Example
{
"company": GenericOrganization,
"team": GenericOrganization
}
MarketplacePostingWorkFlowState
Fields
Field Name | Description |
---|---|
closeResult - String
|
|
status - WorkFlowStateStatus!
|
Example
{
"closeResult": "abc123",
"status": "CLOSED"
}
MarketplaceProposalRequirements
Fields
Field Name | Description |
---|---|
coverLetterRequired - Boolean
|
|
freelancerMilestonesAllowed - Boolean
|
|
screeningQuestions - [MarketplaceQuestion!]
|
Example
{
"coverLetterRequired": true,
"freelancerMilestonesAllowed": true,
"screeningQuestions": [MarketplaceQuestion]
}
MarketplacePublicCompanyInfo
Fields
Field Name | Description |
---|---|
id - ID!
|
|
legacyType - OrganizationLegacyType
|
|
teamsEnabled - Boolean
|
|
canHire - Boolean
|
|
hidden - Boolean
|
|
includeInStats - Boolean
|
No longer available for orgs |
country - Country
|
|
state - String
|
|
city - String
|
|
timezone - String
|
|
accountingEntity - String
|
|
billingType - BillingType
|
|
paymentVerification - PaymentVerificationResult
|
|
agencyDetails - AgencyDetails
|
Example
{
"id": "4",
"legacyType": "CLIENT",
"teamsEnabled": true,
"canHire": true,
"hidden": true,
"includeInStats": true,
"country": Country,
"state": "abc123",
"city": "xyz789",
"timezone": "abc123",
"accountingEntity": "abc123",
"billingType": "BILL",
"paymentVerification": PaymentVerificationResult,
"agencyDetails": AgencyDetails
}
MarketplaceQualification
Fields
Field Name | Description |
---|---|
contractorType - ContractorType
|
|
englishProficiency - EnglishProficiency
|
|
hasPortfolio - Boolean
|
|
hoursWorked - Int
|
|
risingTalent - Boolean
|
|
jobSuccessScore - Int
|
|
minEarning - Earning
|
|
preferredGroups - [PreferredGroup!]
|
|
preferenceTests - [PreferredTest]
|
Example
{
"contractorType": "ALL",
"englishProficiency": "ANY",
"hasPortfolio": true,
"hoursWorked": 987,
"risingTalent": false,
"jobSuccessScore": 987,
"minEarning": "ANY",
"preferredGroups": [PreferredGroup],
"preferenceTests": [PreferredTest]
}
MarketplaceQuestion
MarketplaceSegmentationData
Fields
Field Name | Description |
---|---|
segmentationValues - [MarketplaceSegmentationValue!]
|
Example
{"segmentationValues": [MarketplaceSegmentationValue]}
MarketplaceSegmentationInfo
MarketplaceSegmentationValue
Fields
Field Name | Description |
---|---|
customValue - String
|
|
segmentationInfo - MarketplaceSegmentationInfo
|
Example
{
"customValue": "xyz789",
"segmentationInfo": MarketplaceSegmentationInfo
}
OnSiteType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"REMOTE"
PreferredGroup
PreferredTest
ProposalsStatistics
Fields
Field Name | Description |
---|---|
totalProposals - Int!
|
|
totalMessaged - Int!
|
|
totalHired - Int!
|
|
totalInvitesSent - Int!
|
|
totalApplicantsWithAutoHidden - Int!
|
|
totalArchived - Int!
|
|
totalAutoHidden - Int!
|
|
totalDeclined - Int!
|
|
totalHidden - Int!
|
|
totalOffered - Int!
|
|
totalShortlisted - Int!
|
|
totalWithdrawn - Int!
|
Example
{
"totalProposals": 123,
"totalMessaged": 987,
"totalHired": 123,
"totalInvitesSent": 123,
"totalApplicantsWithAutoHidden": 987,
"totalArchived": 123,
"totalAutoHidden": 123,
"totalDeclined": 987,
"totalHidden": 123,
"totalOffered": 123,
"totalShortlisted": 987,
"totalWithdrawn": 987
}
QuestionType
Values
Enum Value | Description |
---|---|
|
|
|
Example
"EXPERIENCE"
SandsJobPostRequest
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!]
|
|
status - SandsJobPostStatus
|
|
freetextOccupation - String
|
|
tags - [String!]
|
|
additionalSkills - [JobPostingAdditionalSkillInput!]
|
|
occupations - [ID!]
|
Example
{
"occupationId": "xyz789",
"skills": [JobPostingSkillInput],
"status": "DRAFT",
"freetextOccupation": "xyz789",
"tags": ["abc123"],
"additionalSkills": [JobPostingAdditionalSkillInput],
"occupations": ["4"]
}
SandsJobPostStatus
Values
Enum Value | Description |
---|---|
|
|
|
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": ["abc123"],
"exactTerms_any": ["abc123"],
"excludeTerms_any": ["abc123"]
}
SegmentationType
WorkFlowStateStatus
Values
Enum Value | Description |
---|---|
|
|
|
Example
"CLOSED"
Users and teams
AccessRestictionReason
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"ROLES_MISMATCH"
AccountAuditRecord
Fields
Field Name | Description |
---|---|
processInstanceId - ID!
|
|
status - String
|
|
metadata - [StringMapElement!]!
|
Example
{
"processInstanceId": "4",
"status": "xyz789",
"metadata": [StringMapElement]
}
AccountProcessInstance
ActivitiesConnection
Fields
Field Name | Description |
---|---|
totalCount - Int
|
Defines total amount of activities |
edges - [ActivityEdge!]
|
Defines list of activities |
page - Page
|
Defines page information |
Example
{
"totalCount": 123,
"edges": [ActivityEdge],
"page": Page
}
Activity
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": "xyz789",
"status": "xyz789",
"level": "abc123",
"contracts": [ActivityContract],
"userId": "4",
"code": "abc123",
"createdTime": "xyz789",
"companyId": "xyz789",
"recordId": 4,
"teamId": "4",
"description": "abc123"
}
ActivityContract
Fields
Field Name | Description |
---|---|
contractId - ID!
|
Defines contract ID Example: "12345" |
Example
{"contractId": 4}
ActivityEdge
Fields
Field Name | Description |
---|---|
node - Activity
|
Defines activity node |
Example
{"node": Activity}
ActivityFilterInput
Example
{
"contractId": 4,
"search": "abc123",
"status": "abc123",
"detailsLimit": 123
}
AddTeamActivityRequest
Description
@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": "xyz789",
"description": "xyz789",
"contractIds": ["4"],
"budget": 123.45,
"batchAssignment": "selectedContracts"
}
AgencyDetails
AvailabilitySource
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"st_assgn_e"
BatchAssignmentOptions
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"selectedContracts"
BillingType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"BILL"
ClientVerificationStatus
Values
Enum Value | Description |
---|---|
|
|
|
1 |
|
2 |
|
3 |
|
4 |
Example
"VERIFIED"
CompanyInfo
Fields
Field Name | Description |
---|---|
public - PublicCompanyInfo
|
|
private - PrivateCompanyInfo
|
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": "abc123",
"photoUrl": "abc123",
"organizationId": "xyz789",
"organizationRid": "xyz789",
"organizationType": "Business",
"organizationLegacyType": "Client",
"organizationEnterpriseType": "Standard",
"legacyEnterpriseOrganization": false,
"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
Profile Mutation: create employment record input
Fields
Input Field | Description |
---|---|
userId - ID
|
|
companyName - String!
|
|
jobTitle - String!
|
|
standardizedCompanyId - String
|
|
standardizedJobTitleId - String
|
|
role - String!
|
|
startDate - String!
|
start date - e.g: "1999-01-01" |
endDate - String
|
end date - e.g: "2002-01-01" |
description - String
|
|
city - String!
|
|
country - String!
|
Example
{
"userId": "4",
"companyName": "abc123",
"jobTitle": "xyz789",
"standardizedCompanyId": "abc123",
"standardizedJobTitleId": "abc123",
"role": "xyz789",
"startDate": "xyz789",
"endDate": "xyz789",
"description": "xyz789",
"city": "xyz789",
"country": "xyz789"
}
CreateOrganizationInput
Fields
Input Field | Description |
---|---|
parentOrganizationId - ID!
|
|
organizationName - String!
|
|
aceRid - String
|
|
country - String
|
|
type - OrganizationRequestType
|
Example
{
"parentOrganizationId": "4",
"organizationName": "xyz789",
"aceRid": "xyz789",
"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": "xyz789",
"type": "BUSINESS",
"legacyType": "CLIENT",
"flag": OrganizationFlag,
"parentOrganization": CurrentOrganization,
"active": false,
"hidden": false,
"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
}
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
|
|
ciphertext - String
|
|
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": "xyz789",
"i18NSettings": I18nSettings,
"talentProfile": TalentProfile
}
FailedInvitation
FreelancerLanguageInput
Description
Profile Mutation: create freelancer language input
Fields
Input Field | Description |
---|---|
userId - ID
|
|
iso639Code - String
|
|
language - LanguageDataInput!
|
Example
{
"userId": 4,
"iso639Code": "abc123",
"language": LanguageDataInput
}
FreelancerLocation
FreelancerProfile
Description
Freelancer Profile details.
Fields
Field Name | Description |
---|---|
user - CurrentUser!
|
the user (freelancer) who owns this profile |
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
|
|
email - String
|
|
portrait - Portrait
|
|
phoneNumber - PhoneNumber
|
phone number visible only for the current user |
privateTalentCloud - PrivateTalentCloudConnection!
|
talent clouds that the freelancer is part of |
Example
{
"user": CurrentUser,
"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
End ProfilePart: Freelancer's ProjectList 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": "xyz789",
"lastApplicationDate": "xyz789",
"totalHourlyJobs": 123,
"totalHourlyJobsRecent": 123,
"totalFixedJobs": 987,
"totalFixedJobsRecent": 987,
"responsiveness": "abc123",
"totalRevenue": Money,
"activeInterviews": 123,
"currentContracts": 123,
"jobSuccessScore": 987.65,
"topRatedStatus": "xyz789",
"topRatedPlusStatus": "xyz789",
"vetted": true,
"totalHoursActual": 987.65,
"totalHours": 987.65,
"totalHoursRecent": 987.65,
"totalFeedback": 987.65,
"totalFeedbackRecent": 123.45,
"billedContracts": 123,
"billedContractsRecent": 987,
"adjustedFeedbackScore": 987.65,
"adjustedFeedbackScoreRecent": 123.45,
"profileStats": FreelancerProfileStats,
"lastActivityDateTime": "xyz789",
"totalEarnings": Money,
"topRatedStatusDatetime": "abc123",
"recentEarnings": Money,
"averageRecentEarnings": Money,
"recentCharge": Money,
"averageRecentCharge": Money,
"qualityScore": 987.65,
"totalHoursRounded": 987
}
FreelancerProfileAvailability
Description
ProfilePart: Freelancer's Availability
Fields
Field Name | Description |
---|---|
id - ID!
|
|
user - GenericUser!
|
|
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": "abc123"
}
FreelancerProfileAvailabilityCapacity
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"fullTime"
FreelancerProfileAvailabilityInput
Description
Profile Mutation: 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!
|
Example
{
"userId": 4,
"availability": FreelancerProfileCapacityInput
}
FreelancerProfileCapacityInput
Fields
Input Field | Description |
---|---|
capacity - FreelancerProfileAvailabilityCapacity
|
|
availabilityDateTime - String
|
|
creationDateTime - String!
|
|
sourceInput - AvailabilitySource
|
Example
{
"capacity": "fullTime",
"availabilityDateTime": "xyz789",
"creationDateTime": "abc123",
"sourceInput": "st_assgn_e"
}
FreelancerProfileCertificate
Description
End ProfilePart: Freelancer's Education Records ProfilePart: Freelancer's Certificates
Example
{
"id": "4",
"earnedDate": "abc123",
"submissionCode": "abc123",
"notes": "abc123",
"score": "xyz789",
"active": false,
"verified": true,
"url": "abc123",
"createdDateTime": "xyz789",
"lastUpdatedDateTime": "xyz789",
"expirationDate": "xyz789",
"externalId": "abc123"
}
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": "abc123",
"createdDateTime": "xyz789",
"updatedDateTime": "abc123"
}
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": 123,
"actionForEmptySection": "abc123",
"skillsCount": 123,
"employmentRecordCount": 123,
"portraitRecordCount": 123,
"overviewRecordCount": 987,
"videoRecordCount": 123,
"educationRecordCount": 123,
"certificatesCount": 987,
"otherExperiencesCount": 987,
"portfolioCount": 123,
"linkedExternalAccountsCount": 123,
"createdDateTime": "abc123"
}
FreelancerProfileContract
Description
End ProfilePart: ProfileAggregates
Fields
Field Name | Description |
---|---|
id - ID!
|
|
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!
|
|
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
|
TODO: Probably Legacy: clarification required - this flag determines where this contract is from ; either Elance or ODesk ? |
Example
{
"id": "4",
"description": "abc123",
"title": "abc123",
"clientOrganization": GenericOrganization,
"type": "Fixed",
"accessType": "PublicAccess",
"private": false,
"job": JobPosting,
"startDateTime": "abc123",
"endDateTime": "abc123",
"totalCharges": Money,
"totalHours": 987.65,
"hourlyRate": Money,
"initialAmount": Money,
"feedbackToTheClient": FreelancerProfileContractFeedback,
"feedbackToTheFreelancer": FreelancerProfileContractFeedback,
"isFromElance": true
}
FreelancerProfileContractAccessType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"PublicAccess"
FreelancerProfileContractFeedback
Fields
Field Name | Description |
---|---|
score - Float!
|
|
comment - String
|
|
publicComment - Boolean!
|
|
response - String
|
|
scoreDetails - [FreelancerProfileContractFeedbackScore!]
|
Example
{
"score": 987.65,
"comment": "abc123",
"publicComment": false,
"response": "xyz789",
"scoreDetails": [FreelancerProfileContractFeedbackScore]
}
FreelancerProfileContractFeedbackScore
FreelancerProfileContractType
Values
Enum Value | Description |
---|---|
|
|
|
Example
"Fixed"
FreelancerProfileEducationRecord
Description
End ProfilePart: Freelancer's Languages ProfilePart: Freelancer's Education Records
Fields
Field Name | Description |
---|---|
id - ID!
|
|
user - GenericUser
|
|
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": "xyz789",
"standardizedInstitutionId": "4",
"areaOfStudy": "abc123",
"standardizedAreaOfStudyId": "4",
"degree": "xyz789",
"standardizedDegreeId": 4,
"startDate": "abc123",
"endDate": "abc123",
"description": "abc123"
}
FreelancerProfileEducationRecordsFilter
FreelancerProfileEmploymentRecord
Description
ProfilePart: Freelancer's Employment Record
Fields
Field Name | Description |
---|---|
id - ID!
|
|
user - GenericUser!
|
|
companyName - String!
|
|
jobTitle - String!
|
|
standardizedCompanyId - String
|
|
standardizedJobTitleId - String
|
|
role - String
|
|
startDate - String!
|
start date formatted according to ISO-8601 |
endDate - String
|
end date - e.g: "2002-01-01" |
description - String
|
|
city - String!
|
|
country - String!
|
Example
{
"id": 4,
"user": GenericUser,
"companyName": "abc123",
"jobTitle": "abc123",
"standardizedCompanyId": "abc123",
"standardizedJobTitleId": "abc123",
"role": "abc123",
"startDate": "abc123",
"endDate": "abc123",
"description": "abc123",
"city": "xyz789",
"country": "xyz789"
}
FreelancerProfileExperienceLevel
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"NONE"
FreelancerProfileJobCategoriesConnection
Description
End ProfilePart: Freelancer's Contracts ProfilePart: Job Categories
Fields
Field Name | Description |
---|---|
edges - [FreelancerProfileJobCategoryEdge!]
|
Example
{"edges": [FreelancerProfileJobCategoryEdge]}
FreelancerProfileJobCategory
Fields
Field Name | Description |
---|---|
category - JobCategory
|
|
selectedSubCategories - [JobCategory!]!
|
Example
{
"category": JobCategory,
"selectedSubCategories": [JobCategory]
}
FreelancerProfileJobCategoryEdge
Fields
Field Name | Description |
---|---|
node - FreelancerProfileJobCategory!
|
Example
{"node": FreelancerProfileJobCategory}
FreelancerProfileLanguage
FreelancerProfileLanguageEdge
Fields
Field Name | Description |
---|---|
node - FreelancerProfileLanguage!
|
Example
{"node": FreelancerProfileLanguage}
FreelancerProfileLanguageProficiencyTitle
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"BASIC"
FreelancerProfileLanguagesConnection
Description
End ProfilePart: Other Experiences of the the freelancer ProfilePart: Freelancer's Languages Connection to the FreelancerLanguages list
Fields
Field Name | Description |
---|---|
edges - [FreelancerProfileLanguageEdge!]
|
Example
{"edges": [FreelancerProfileLanguageEdge]}
FreelancerProfileLinkedExternalAccounts
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": "abc123",
"userProfile": "abc123"
}
FreelancerProfileLinkedExternalAccountsConnection
Description
End ProfilePart: Pci ProfilePart: Linked External Accounts Connection to the Linked External Accounts
Fields
Field Name | Description |
---|---|
edges - [FreelancerProfileLinkedExternalAccountsEdge!]
|
Example
{"edges": [FreelancerProfileLinkedExternalAccountsEdge]}
FreelancerProfileLinkedExternalAccountsEdge
Fields
Field Name | Description |
---|---|
node - FreelancerProfileLinkedExternalAccounts!
|
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": "abc123",
"active": false,
"createdDateTime": "xyz789",
"updatedDateTime": "abc123"
}
FreelancerProfileOtherExperienceEdge
Fields
Field Name | Description |
---|---|
node - FreelancerProfileOtherExperience!
|
|
cursor - String!
|
Example
{
"node": FreelancerProfileOtherExperience,
"cursor": "abc123"
}
FreelancerProfileOtherExperiencesConnection
Description
End ProfilePart: Freelancer Profile UserPreferences ProfilePart: Other Experiences of the the freelancer Connection to the Other Experiences list
Fields
Field Name | Description |
---|---|
totalCount - Int
|
|
edges - [FreelancerProfileOtherExperienceEdge!]
|
|
pageInfo - PageInfo
|
Example
{
"totalCount": 123,
"edges": [FreelancerProfileOtherExperienceEdge],
"pageInfo": PageInfo
}
FreelancerProfileOtherExperiencesFilter
Description
OtherExperiences related filters
Fields
Input Field | Description |
---|---|
subject_eq - String
|
Example
{"subject_eq": "xyz789"}
FreelancerProfilePersonalData
Description
ProfilePart: Personal data of the freelancer attributes of personal data.
Fields
Field Name | Description |
---|---|
firstName - String!
|
|
lastName - String!
|
|
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": "abc123",
"lastName": "abc123",
"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!
|
|
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
|
|
createdDateTime - String!
|
Example
{
"id": "4",
"title": "xyz789",
"description": "xyz789",
"contractLink": FreelancerProfileProjectContractLink,
"thumbnailId": "abc123",
"thumbnailOriginalId": "xyz789",
"thumbnail": "xyz789",
"thumbnailOriginal": "xyz789",
"projectUrl": "xyz789",
"completionDateTime": "abc123",
"public": true,
"rank": 123,
"attachments": [FreelancerProfileProjectAttachment],
"skills": FreelancerSkillsConnection,
"category": JobCategory,
"subCategory": JobCategory,
"occupationId": "xyz789",
"projectType": "CLASSIC_VIEW",
"role": "abc123",
"projectGoal": "abc123",
"solution": "abc123",
"primaryImageId": "abc123",
"createdDateTime": "abc123"
}
FreelancerProfileProjectAttachment
Example
{
"id": 4,
"link": "xyz789",
"fileName": "abc123",
"fileSize": 987,
"rank": 123,
"videoUrl": "xyz789",
"type": "xyz789",
"title": "xyz789",
"description": "abc123",
"imageSmall": "abc123",
"imageMiddle": "xyz789",
"imageLarge": "xyz789"
}
FreelancerProfileProjectContractLink
Fields
Field Name | Description |
---|---|
id - ID!
|
|
contract - FreelancerProfileContract
|
|
state - String
|
|
project - FreelancerProfileProject
|
|
client - GenericUser
|
|
freelancer - GenericUser
|
|
notificationDateTime - String
|
|
createdDateTime - String!
|
Example
{
"id": 4,
"contract": FreelancerProfileContract,
"state": "abc123",
"project": FreelancerProfileProject,
"client": GenericUser,
"freelancer": GenericUser,
"notificationDateTime": "abc123",
"createdDateTime": "abc123"
}
FreelancerProfileProjectType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"CLASSIC_VIEW"
FreelancerProfileResponseTime
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"NEVER"
FreelancerProfileStats
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": 123,
"suspensions": 123,
"suspensions360": 987,
"suspensions90limited": 987,
"topLevelJobCategoryApplied90Days": "abc123",
"proposalsCount90Days": 123,
"medianProposalsForTheTopLevelCategory365": 987,
"fitProposalsViewRatio90Days": 987.65,
"hiddenProposalsViewedRatio90Days": 987.65,
"totalProposalsViewedRatio90Days": 123.45,
"proposalInterviewedRation90Days": 987.65,
"proposalsHiredRatio90Days": 123.45,
"hideReasonsForProposals": ["xyz789"],
"totalInvites90Days": 987,
"totalInviteResponses90Days": 123,
"inviteResponsesPerDay90Days": 123,
"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": true,
"hideEarnings": true,
"exposeFullName": false,
"clientFeedbackOptional": false,
"projectTypePreference": "BOTH_LONGTERM_AND_ONETIME",
"hideJss": false
}
FreelancerProfileVerifications
Description
ProfilePart: Verifications
Example
{
"idVerified": false,
"phoneVerified": false,
"webcamVerified": false,
"idBadgeStatus": "abc123"
}
FreelancerProfileVisibility
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"PUBLIC"
FreelancerProjectTypePreference
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"BOTH_LONGTERM_AND_ONETIME"
FreeLancerSkillEdge
Fields
Field Name | Description |
---|---|
node - Skill!
|
Example
{"node": Skill}
FreelancerSkillsConnection
Description
End ProfilePart: Personal data of the freelancer ProfilePart: Skills data of the freelancer
Fields
Field Name | Description |
---|---|
edges - [FreeLancerSkillEdge!]
|
Example
{"edges": [FreeLancerSkillEdge]}
FreelancerVisibility
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": false,
"hidden": false,
"company": PrivateCompanyInfo,
"photoUrl": "abc123",
"creationDate": "xyz789",
"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
|
|
ciphertext - String
|
|
talentProfile - TalentProfile
|
FreelancerProfile from ORPC is being deprecated We should transition general profile to use TalentProfile instead |
Example
{
"id": 4,
"nid": "4",
"rid": "4",
"name": "xyz789",
"firstName": "abc123",
"lastName": "abc123",
"photoUrl": "abc123",
"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
|
Example
{"country": Country}
I18nSettings
Description
User's i18n entity
Fields
Field Name | Description |
---|---|
countrySupported - Boolean
|
|
location - I18nLocation
|
|
status - I18nSettingsStatus
|
|
locationViewType - LocationViewType
|
|
userPreferredLocationType - UserPreferredLocationType
|
|
settingsFlags - I18nSettingsFlags
|
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
|
|
showJobSearch - Boolean
|
|
showPhoneVerification - Boolean
|
|
showSmfToUpdateAddress - Boolean
|
|
showPersonalAddressAutocomplete - Boolean
|
|
showMessageContainer - Boolean
|
|
showLocationPreferenceOnJobPost - Boolean
|
|
defaultDomesticEnabled - Boolean
|
|
jobSearchDefaultedToON - Boolean
|
|
showLocationVerificationOnFWH - Boolean
|
|
domesticEnabledForFreelancersOnFLSearch - Boolean
|
Example
{
"showDomesticLocationFilterOnFLSearch": true,
"showJobSearch": false,
"showPhoneVerification": false,
"showSmfToUpdateAddress": false,
"showPersonalAddressAutocomplete": false,
"showMessageContainer": false,
"showLocationPreferenceOnJobPost": false,
"defaultDomesticEnabled": false,
"jobSearchDefaultedToON": false,
"showLocationVerificationOnFWH": true,
"domesticEnabledForFreelancersOnFLSearch": false
}
I18nSettingsStatus
Description
I18n status values
Values
Enum Value | Description |
---|---|
|
|
|
Example
"ELIGIBLE"
InvitationToTeamInput
Fields
Input Field | Description |
---|---|
flow - InviteToTeamFlow!
|
inviteFlow |
inviteeEmail - String
|
username of the invitee (either this or email must be specified, not both) |
inviteeUsername - String
|
list of roles to be granted to invitee (optional, can be inferred from config of the flow) |
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",
"inviteeUsername": "abc123",
"invitedToTopLevelOrganizationId": 4,
"invitedToOrganizationsIds": [4],
"inviterUserId": 4,
"landingUrl": "abc123",
"emailParams": InviteToTeamEmailParams,
"metadata": [StringMapElementInput],
"frankoRolesToBeAssigned": ["xyz789"],
"hierarchical": true,
"includeFirstOrgIdAsParticipant": true
}
InviteToTeamEmailParams
Fields
Input Field | Description |
---|---|
message - String!
|
message to be sent to invitee |
Example
{"message": "abc123"}
InviteToTeamFailedResponse
Fields
Field Name | Description |
---|---|
code - String
|
|
message - String
|
|
invitation - FailedInvitation
|
Example
{
"code": "xyz789",
"message": "xyz789",
"invitation": FailedInvitation
}
InviteToTeamFlow
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"HELP_ME_HIRE"
InviteToTeamResponse
Fields
Field Name | Description |
---|---|
succeeded - [InviteToTeamSucceededResponse]!
|
|
failed - [InviteToTeamFailedResponse]!
|
Example
{
"succeeded": [InviteToTeamSucceededResponse],
"failed": [InviteToTeamFailedResponse]
}
InviteToTeamSucceededResponse
LanguageDataInput
Description
language input
Fields
Input Field | Description |
---|---|
id - ID
|
|
personRid - ID
|
|
verified - Boolean
|
|
verifiedByCertificate - Boolean
|
|
verifiedByFeedback - Boolean
|
|
language - LanguageInput!
|
|
proficiencyLevel - LanguageProficiencyLevelInput!
|
Example
{
"id": "4",
"personRid": "4",
"verified": true,
"verifiedByCertificate": false,
"verifiedByFeedback": true,
"language": LanguageInput,
"proficiencyLevel": LanguageProficiencyLevelInput
}
LanguageInput
LanguageProficiencyLevelInput
Description
Profile Mutation: proficiency level input
Example
{
"code": "abc123",
"rank": 987,
"active": true,
"description": "abc123",
"type": "abc123",
"proficiencyTitle": "BASIC"
}
LocationViewType
Description
User's i18n location view type values
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"COUNTRY"
MessageAttachments
Fields
Field Name | Description |
---|---|
objectReferenceId - ID
|
|
objectType - String
|
|
metadata - [StringMapElement!]
|
|
createdDateTime - String
|
|
author - RoomUser
|
Example
{
"objectReferenceId": 4,
"objectType": "xyz789",
"metadata": [StringMapElement],
"createdDateTime": "abc123",
"author": RoomUser
}
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 |
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": "xyz789"
}
OrganizationFlag
OrganizationLegacyType
Values
Enum Value | Description |
---|---|
|
|
|
Example
"CLIENT"
OrganizationLocationInput
OrganizationRequestType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"AGENCY"
OrganizationType
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": "abc123",
"resourceType_eq": "OPENING",
"limit": 987,
"offset": "abc123",
"performExternalChecks_eq": true,
"teamOrgIds_any": ["4"],
"returnAllTeams": true
}
OtherExperienceInput
Page
PageFilterInput
PaymentVerificationResult
Fields
Field Name | Description |
---|---|
status - PaymentVerificationStatus
|
|
paymentVerified - Boolean
|
A flag that indicates whether the payment method is verified or not |
Example
{"status": "DEPOSIT_UNSUPPORTED", "paymentVerified": true}
PaymentVerificationStatus
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"DEPOSIT_UNSUPPORTED"
PersonalDataLocation
PersonalDataProfileState
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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": "abc123",
"lastName": "abc123",
"photoUrl": "xyz789",
"publicUrl": "abc123",
"email": "abc123",
"location": UserLocation
}
PrivateCompanyInfo
Fields
Field Name | Description |
---|---|
id - ID!
|
|
name - String
|
|
description - String
|
|
legacyType - PrivateCompanyLegacyType
|
|
logoURL - String
|
|
contactUser - GenericUser
|
|
phone - String
|
|
displayName - String
|
|
teamsEnabled - Boolean
|
|
canHire - Boolean
|
|
hidden - Boolean
|
|
includeInStats - Boolean
|
No longer available for orgs |
companyName - String
|
|
country - Country
|
|
state - String
|
|
city - String
|
|
address - String
|
|
zip - String
|
|
timezone - String
|
|
accountingEntity - String
|
|
billingType - BillingType
|
|
summary - String
|
|
paymentVerificationStatus - PaymentVerificationStatus
|
use paymentVerification instead |
paymentVerification - PaymentVerificationResult
|
|
agencyDetails - AgencyDetails
|
|
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": true,
"canHire": true,
"hidden": false,
"includeInStats": true,
"companyName": "xyz789",
"country": Country,
"state": "abc123",
"city": "abc123",
"address": "xyz789",
"zip": "abc123",
"timezone": "abc123",
"accountingEntity": "xyz789",
"billingType": "BILL",
"summary": "xyz789",
"paymentVerificationStatus": "DEPOSIT_UNSUPPORTED",
"paymentVerification": PaymentVerificationResult,
"agencyDetails": AgencyDetails,
"jobPosts": JobPostingConnection
}
PrivateCompanyLegacyType
Values
Enum Value | Description |
---|---|
|
|
|
Example
"CLIENT"
ProcessAddResponse
ProcessUpdateResponse
Fields
Field Name | Description |
---|---|
success - Boolean!
|
Defines success status |
Example
{"success": true}
PublicCompanyInfo
Fields
Field Name | Description |
---|---|
id - ID!
|
|
name - String
|
|
description - String
|
|
legacyType - OrganizationLegacyType
|
|
logoURL - String
|
Example
{
"id": "4",
"name": "abc123",
"description": "xyz789",
"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
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"OPENING"
Room
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": "abc123",
"organization": CurrentOrganization,
"creator": RoomUser,
"createdAtDateTime": "abc123",
"public": true,
"topic": "abc123",
"owner": RoomUser,
"numUnread": 987,
"roomFavoriteDateTime": "abc123",
"favorite": true,
"numUnreadMentions": 123,
"roomUsers": [RoomUser],
"numUsers": 123,
"joinDateTime": "xyz789",
"lastVisitedDateTime": "abc123",
"lastReadDateTime": "xyz789",
"roomType": "ONE_ON_ONE",
"readOnlyDateTime": "abc123",
"readOnly": true,
"blockDateTime": "xyz789",
"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
}
RoomCategoryFilter
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"FAVORITES"
RoomConnection
Fields
Field Name | Description |
---|---|
totalCount - Int
|
|
edges - [RoomEdge]
|
|
pageInfo - PageInfo
|
Example
{
"totalCount": 123,
"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
Fields
Field Name | Description |
---|---|
node - Room
|
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": true,
"activeSince_eq": "xyz789",
"includeFavorites_eq": true,
"includeUnreadIfActive_eq": false,
"unreadRoomsOnly_eq": false,
"local_eq": "abc123",
"includeHidden_eq": false,
"objectReferenceId_eq": "4",
"roomCategory_eq": "FAVORITES"
}
RoomPrivacyFilter
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"ALL"
RoomStory
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": "xyz789",
"updatedDateTime": "xyz789",
"user": GenericUser,
"message": "abc123",
"organization": GenericOrganization,
"roomStoryNote": RoomStoryNote,
"attachments": [MessageAttachments]
}
RoomStoryAbuseType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"NONE"
RoomStoryConnection
Fields
Field Name | Description |
---|---|
totalCount - Int
|
|
edges - [RoomStoryEdge]
|
|
pageInfo - PageInfo
|
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!
|
|
abuseType - RoomStoryAbuseType
|
|
whitelisted - Boolean!
|
|
abuseDetails - String
|
Example
{
"favorite": true,
"abuseType": "NONE",
"whitelisted": false,
"abuseDetails": "xyz789"
}
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": "abc123",
"topic": "abc123",
"reason": "abc123",
"readOnly": false
}
RoomUser
Fields
Field Name | Description |
---|---|
user - GenericUser
|
|
organization - GenericOrganization
|
|
role - String
|
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
Fields
Field Name | Description |
---|---|
id - ID
|
Unique identifier for the Snapshot |
time - Int
|
Time of the snapshot |
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": 987,
"keyboardEventsCount": 123,
"teamName": "abc123",
"status": "xyz789",
"activeWindowTitle": "abc123",
"memo": "xyz789",
"companyId": "abc123",
"hasScreenshot": false,
"screenshotUrl": "abc123",
"screenshotImage": "abc123",
"screenshotImageLarge": "abc123",
"screenshotImageMedium": "abc123",
"screenshotImageThumbnail": "xyz789",
"hasWebcam": false,
"webcamUrl": "xyz789",
"webcamImage": "abc123",
"webcamImageThumbnail": "xyz789",
"task": "abc123",
"minutes": SnapshotMinutes
}
SnapshotMinute
SnapshotMinutes
Fields
Field Name | Description |
---|---|
minute - [SnapshotMinute]
|
Example
{"minute": [SnapshotMinute]}
SnapshotsByContractIdInput
Staff
Fields
Field Name | Description |
---|---|
id - ID
|
|
user - GenericUser
|
|
activationStatus - Int
|
Enum representing the activation status
|
creationDate - String
|
|
staffType - Int
|
Enum representing the type of staff within the organization.
|
Example
{
"id": "4",
"user": GenericUser,
"activationStatus": 987,
"creationDate": "xyz789",
"staffType": 123
}
StaffsConnection
Fields
Field Name | Description |
---|---|
edges - [StaffsConnectionEdge]!
|
|
totalCount - Int
|
|
pageInfo - PageInfo
|
Example
{
"edges": [StaffsConnectionEdge],
"totalCount": 987,
"pageInfo": PageInfo
}
StaffsConnectionEdge
Fields
Field Name | Description |
---|---|
node - Staff
|
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
Profile Mutation: update employment record input
Fields
Input Field | Description |
---|---|
id - ID!
|
|
userId - ID
|
|
companyName - String
|
|
jobTitle - String
|
|
standardizedCompanyId - String
|
|
standardizedJobTitleId - String
|
|
role - String!
|
|
startDate - String
|
start date - e.g: "1999-01-01" |
endDate - String
|
end date - e.g: "2002-01-01" |
description - String
|
|
city - String
|
|
country - String
|
Example
{
"id": 4,
"userId": 4,
"companyName": "xyz789",
"jobTitle": "xyz789",
"standardizedCompanyId": "xyz789",
"standardizedJobTitleId": "abc123",
"role": "abc123",
"startDate": "abc123",
"endDate": "abc123",
"description": "xyz789",
"city": "abc123",
"country": "abc123"
}
UpdateOrganizationInput
Example
{
"id": "4",
"parentOrganizationId": 4,
"organizationName": "abc123",
"hidden": true,
"address": OrganizationLocationInput,
"vatId": "abc123"
}
UpdateOtherExperienceInput
UpdateRoomStoryResponse
Fields
Field Name | Description |
---|---|
status - String!
|
Example
{"status": "abc123"}
UpdateTeamActivityRequest
Description
@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": "xyz789",
"description": "xyz789",
"url": "xyz789",
"contractIds": [4],
"budget": 987.65,
"batchAssignment": "selectedContracts",
"status": "abc123"
}
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 |
Possible Types
User Types |
---|
Example
{"id": 4, "nid": "4", "rid": 4}
UserIdsByEmailRecordEdge
Fields
Field Name | Description |
---|---|
cursor - String
|
|
node - UserIdsByEmailRecordNode
|
Example
{
"cursor": "xyz789",
"node": UserIdsByEmailRecordNode
}
UserIdsByEmailRecordNode
Fields
Field Name | Description |
---|---|
id - ID
|
|
email - String
|
|
visibilityLevel - FreelancerProfileVisibility
|
|
title - String
|
|
user - GenericUser
|
Example
{
"id": "4",
"email": "abc123",
"visibilityLevel": "PUBLIC",
"title": "xyz789",
"user": GenericUser
}
UserIdsByEmailResponse
Fields
Field Name | Description |
---|---|
totalCount - Int
|
|
edges - [UserIdsByEmailRecordEdge!]
|
Example
{"totalCount": 987, "edges": [UserIdsByEmailRecordEdge]}
UserLocation
Description
Location of the user
Example
{
"countryName": "xyz789",
"cityName": "abc123",
"zip": "xyz789",
"timezone": "abc123",
"timezoneName": "abc123",
"street": "abc123",
"stateCode": "xyz789",
"offsetToUTC": 987
}
UserPermissionAccess
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"ACCESS_DENIED"
UserPermissionEdge
Fields
Field Name | Description |
---|---|
node - UserPermissionNode
|
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": "xyz789",
"performExternalChecks_eq": true,
"teamOrgIds_any": ["4"],
"returnAllTeams": true,
"returnFirstGrantedResult_eq": true
}
UserPermissionNode
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!
|
|
access - UserPermissionAccess!
|
|
reason - AccessRestictionReason
|
Example
{
"organization": CurrentOrganization,
"team": GenericOrganization,
"action": "abc123",
"access": "ACCESS_DENIED",
"reason": "ROLES_MISMATCH"
}
UserPermissions
Fields
Field Name | Description |
---|---|
edges - [UserPermissionEdge]
|
|
offset - String
|
Example
{
"edges": [UserPermissionEdge],
"offset": "abc123"
}
UserPreferredLocationType
Description
User's i18n preferred location type values
Values
Enum Value | Description |
---|---|
|
|
|
Example
"WORLD"
WorkdayResult
Fields
Field Name | Description |
---|---|
workDays - [String]
|
list of working days or calendar days that are highlighted in the date picker |
Example
{"workDays": ["abc123"]}
WorkdaysInput
Fields
Input Field | Description |
---|---|
contractIds - [ID!]!
|
|
timeRange - DateTimeRange!
|
|
offsetInSeconds - Int
|
Example
{
"contractIds": [4],
"timeRange": DateTimeRange,
"offsetInSeconds": 987
}
WorkDiaryCellActivityByMinute
Description
Activity events per minute for a particular WorkDiary timecell
Example
{"timeStamp": 987, "mouseEvents": 987, "keyboardEvents": 987, "active": false}
WorkDiaryCellActivityByMinuteResult
Fields
Field Name | Description |
---|---|
activities - [WorkDiaryCellActivityByMinute!]!
|
Example
{"activities": [WorkDiaryCellActivityByMinute]}
WorkDiaryCompany
Fields
Field Name | Description |
---|---|
total - Int
|
|
snapshots - [WorkDiaryCompanySnapshot]
|
Example
{"total": 987, "snapshots": [WorkDiaryCompanySnapshot]}
WorkDiaryCompanyContract
WorkDiaryCompanyInput
WorkDiaryCompanySnapshot
Fields
Field Name | Description |
---|---|
contract - WorkDiaryCompanyContract
|
|
user - WorkDiaryCompanyUser
|
|
duration - String
|
|
durationInt - Int
|
|
task - WorkDiaryCompanySnapshotTask
|
|
time - WorkDiaryCompanyTime
|
|
screenshots - [WorkDiaryCompanySnapshotScreenshot]
|
Example
{
"contract": WorkDiaryCompanyContract,
"user": WorkDiaryCompanyUser,
"duration": "abc123",
"durationInt": 123,
"task": WorkDiaryCompanySnapshotTask,
"time": WorkDiaryCompanyTime,
"screenshots": [WorkDiaryCompanySnapshotScreenshot]
}
WorkDiaryCompanySnapshotScreenshot
Fields
Field Name | Description |
---|---|
activity - Int
|
|
screenshotUrl - String
|
|
screenshotImage - String
|
|
screenshotImageLarge - String
|
|
screenshotImageMedium - String
|
|
screenshotImageThumbnail - String
|
|
hasScreenshot - Boolean
|
|
hasWebcam - Boolean
|
|
webcamUrl - String
|
|
webcamImage - String
|
|
webcamImageThumbnail - String
|
|
flags - WorkDiaryCompanySnapshotScreenshotFlag
|
Example
{
"activity": 123,
"screenshotUrl": "xyz789",
"screenshotImage": "abc123",
"screenshotImageLarge": "xyz789",
"screenshotImageMedium": "xyz789",
"screenshotImageThumbnail": "abc123",
"hasScreenshot": true,
"hasWebcam": true,
"webcamUrl": "abc123",
"webcamImage": "abc123",
"webcamImageThumbnail": "abc123",
"flags": WorkDiaryCompanySnapshotScreenshotFlag
}
WorkDiaryCompanySnapshotScreenshotFlag
WorkDiaryCompanySnapshotTask
WorkDiaryCompanyTime
Example
{
"trackedTime": "xyz789",
"manualTime": "xyz789",
"overtime": "xyz789",
"firstWorked": "xyz789",
"lastWorked": "xyz789",
"firstWorkedInt": 123,
"lastWorkedInt": 987,
"lastScreenshot": "abc123"
}
WorkDiaryCompanyUser
WorkDiaryContract
Fields
Field Name | Description |
---|---|
workDiaryMetadata - WorkDiaryMetadata
|
|
workDiaryTimeCells - [WorkDiaryTimeCell!]
|
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": "xyz789",
"offsetInSeconds": 987,
"useLegacy": true
}
WorkDiaryMetadata
WorkDiaryTask
WorkDiaryTimeCell
Description
Timecell is the time period or the duration of time which is billable by the contractor. Typically each workDiary timecell consists of 10 billable minutes.
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": true,
"manual": true,
"activityLevel": 987,
"memo": "xyz789",
"task": WorkDiaryTask,
"mouseEventsCount": 987,
"keyboardEventsCount": 123,
"activeWindowTitle": "abc123",
"hideScreenshots": true,
"hasScreenshot": true,
"screenshotImageUrl": "abc123",
"screenshotImageUrlMedium": "abc123",
"screenshotImageThumbnail": "xyz789",
"webcamEnabled": false,
"webcamImageUrl": "xyz789",
"webcamImageThumbnail": "xyz789",
"snapshotExpired": false
}
Ontology
AttrGroupFilter
AttributeSkillsMap
BroaderOccupationMap
Fields
Field Name | Description |
---|---|
broader - String!
|
|
occupation - Occupation
|
Example
{
"broader": "xyz789",
"occupation": Occupation
}
CategoryServicesResponse
Fields
Field Name | Description |
---|---|
categories - [Occupation!]!
|
|
categoryServices - [StringMapOccupation!]!
|
Example
{
"categories": [Occupation],
"categoryServices": [StringMapOccupation]
}
CategorySubcategory
Fields
Field Name | Description |
---|---|
category - Occupation!
|
|
subcategory - Occupation!
|
Example
{
"category": Occupation,
"subcategory": Occupation
}
Deliverable
Fields
Field Name | Description |
---|---|
id - ID!
|
|
ontologyId - String!
|
ontologyId is a semantic identifier that uniquely 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": "xyz789",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "abc123",
"definition": "abc123",
"createdDateTime": "abc123",
"modifiedDateTime": "xyz789"
}
ElementSkillMap
Occupation
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]
|
Example
{
"id": "4",
"ontologyId": "xyz789",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "xyz789",
"definition": "abc123",
"createdDateTime": "xyz789",
"modifiedDateTime": "abc123",
"skills": [Skill]
}
OccupationAttrGroupFilter
OccupationAttrGroupsResponse
Fields
Field Name | Description |
---|---|
occupation - Occupation!
|
|
broaderOccupations - [BroaderOccupationMap!]
|
|
attributeGroups - [Skill!]
|
|
attributes - [AttributeSkillsMap!]
|
Example
{
"occupation": Occupation,
"broaderOccupations": [BroaderOccupationMap],
"attributeGroups": [Skill],
"attributes": [AttributeSkillsMap]
}
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": "xyz789",
"altLabel": ["abc123"],
"slug": "abc123",
"ontologyId": "xyz789",
"subcategories": [OntologySubcategory],
"services": [OntologyService]
}
OntologyConnection
Fields
Field Name | Description |
---|---|
totalCount - Int
|
|
edges - [OntologyEntityEdge!]
|
|
pageInfo - PageInfo
|
Example
{
"totalCount": 987,
"edges": [OntologyEntityEdge],
"pageInfo": PageInfo
}
OntologyDeliverablesFilter
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": "xyz789",
"type": "OCCUPATION",
"entityStatus_eq": "ACTIVE",
"sortOrder": "abc123",
"limit": 123,
"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": "abc123",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "xyz789",
"definition": "xyz789",
"createdDateTime": "xyz789",
"modifiedDateTime": "abc123"
}
OntologyEntityEdge
Fields
Field Name | Description |
---|---|
node - OntologyEntity!
|
|
cursor - String!
|
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!
|
Example
{"ontologyEntity": OntologyEntity}
OntologyEntityStatus
Description
Defines the status of an occupation. - Active: Skill is active and available for use - Deprecated: Skill has been deprecated - Pending: Skill has been created recently and is not active yet
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"ACTIVE"
OntologyEntityTaxonomyLevel
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"CATEGORY"
OntologyEntityType
Description
Currently supported entity types
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"OCCUPATION"
OntologyGraphNode
Fields
Field Name | Description |
---|---|
id - ID!
|
|
uid - ID
|
|
label - String!
|
|
types - [String!]
|
|
status - OntologyEntityStatus
|
|
properties - [PropertyStringMap!]
|
|
relationships - [StringListMap!]
|
|
metadata - [StringMapElement!]
|
Example
{
"id": 4,
"uid": "4",
"label": "xyz789",
"types": ["xyz789"],
"status": "ACTIVE",
"properties": [PropertyStringMap],
"relationships": [StringListMap],
"metadata": [StringMapElement]
}
OntologyOccupationFilter
OntologyRelatedNodes
Fields
Field Name | Description |
---|---|
source - OntologyGraphNode!
|
|
target - OntologyGraphNode!
|
|
relationProperties - [PropertyStringMap!]!
|
Example
{
"source": OntologyGraphNode,
"target": OntologyGraphNode,
"relationProperties": [PropertyStringMap]
}
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": ["abc123"],
"slug": "xyz789",
"ontologyId": "abc123"
}
OntologySkill
OntologySkillsFilter
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": "xyz789",
"altLabel": ["abc123"],
"slug": "xyz789",
"ontologyId": "xyz789",
"services": [OntologyService]
}
PropertyStringMap
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!
|
|
allowOther - Boolean!
|
Defines if addition of free text answers is allowed |
clientQuestion - String
|
|
clientTip - String
|
|
freelancerQuestion - String
|
|
freelancerTip - String
|
|
advancedClient - Boolean!
|
Defines advanced attribute groups which are being displayed in the bottom of the page. |
client - Boolean!
|
|
freelancer - Boolean!
|
|
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
|
|
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": "abc123",
"type": ["OCCUPATION"],
"entityStatus": "ACTIVE",
"preferredLabel": "abc123",
"createdDateTime": "xyz789",
"modifiedDateTime": "abc123",
"definition": "abc123",
"altLabel": ["abc123"],
"narrower": ["xyz789"],
"narrowerIds": ["4"],
"broader": ["xyz789"],
"broaderIds": ["4"],
"dependsOn": ["abc123"],
"dependsOnIds": ["4"],
"splitInto": ["abc123"],
"splitIntoIds": ["4"],
"mergedInto": "xyz789",
"mergedIntoId": "4",
"replacedBy": "abc123",
"replacedById": 4,
"scopeNote": "abc123",
"externalLink": ["abc123"],
"exactMatch": ["abc123"],
"exactMatchIds": ["4"],
"closeMatch": ["xyz789"],
"closeMatchIds": [4],
"comment": "xyz789",
"attributeLevel": ["xyz789"],
"allowMultipleClient": true,
"allowMultipleFreelancer": true,
"allowOther": true,
"clientQuestion": "abc123",
"clientTip": "abc123",
"freelancerQuestion": "abc123",
"freelancerTip": "abc123",
"advancedClient": true,
"client": true,
"freelancer": true,
"requiredClient": false,
"requiredFreelancer": true,
"otherClientLabel": "abc123",
"otherFreelancerLabel": "xyz789",
"presentationMode": "xyz789",
"priority": 123,
"isRequiredBy": ["abc123"],
"isRequiredByIds": ["4"],
"legacySkillNid": "xyz789",
"prettyName": "abc123",
"legacySkillId": "4"
}
SkillName
StringListMap
Fields
Field Name | Description |
---|---|
key - String!
|
|
value - [String!]!
|
Example
{
"key": "abc123",
"value": ["abc123"]
}
StringMapOccupation
Fields
Field Name | Description |
---|---|
category - String!
|
|
services - [Occupation!]!
|
Example
{
"category": "xyz789",
"services": [Occupation]
}
Search
FreelancerProfileSearchAreaInput
FreelancerProfileSearchFilter
Fields
Input Field | Description |
---|---|
userType - FreelancerProfileSearchUserTypeEnum!
|
|
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
|
|
state - String
|
|
city - String
|
|
area - FreelancerProfileSearchAreaInput
|
Example
{
"country": "xyz789",
"state": "abc123",
"city": "abc123",
"area": FreelancerProfileSearchAreaInput
}
FreelancerProfileSearchUserTypeEnum
Values
Enum Value | Description |
---|---|
|
|
|
Example
"Freelancer"
FreelancerProfileSearchWeightedOntologyIdInput
FreelancerProfilesSearchRecord
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": "xyz789",
"shortName": "abc123",
"ciphertext": "xyz789",
"portrait": "abc123",
"lastActiveDateTime": "abc123",
"totalHourlyJobs": 123,
"totalFixedPriceJobs": 123,
"skills": [Skill],
"hourlyRate": Money,
"topRatedStatus": "xyz789",
"avgFeedbackScore": 987.65,
"hideEarnings": false,
"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
|
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": "abc123"
}
FreelancerSearchResultLocation
FreelancerType
Values
Enum Value | Description |
---|---|
|
|
|
Example
"Agency"
Paging
PagingInfo
Search
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
Fields
Field Name | Description |
---|---|
profile - TalentProfile
|
Example
{"profile": TalentProfile}
SemSearchV2Request
Fields
Input Field | Description |
---|---|
paging - Paging
|
|
userQuery - String
|
|
occupationUid - String
|
|
title - String
|
|
countries - [String!]
|
|
states - [String!]
|
|
cities - [String!]
|
|
hourlyRate - SemSearchV2DoubleRange
|
|
jobSuccessScore - SemSearchV2DoubleRange
|
|
totalJobs - SemSearchV2IntRange
|
|
topRated - Boolean
|
|
risingTalent - Boolean
|
|
hasPortrait100 - Boolean
|
|
skillsNames - [String!]
|
|
skillsUids - [String!]
|
|
vemSkills - [VemSkill!]
|
|
type - FreelancerType
|
|
addAgencyPreview - Boolean
|
|
agencySearch - Boolean
|
|
publicVisibilityOnly - Boolean
|
Example
{
"paging": Paging,
"userQuery": "xyz789",
"occupationUid": "xyz789",
"title": "abc123",
"countries": ["xyz789"],
"states": ["xyz789"],
"cities": ["xyz789"],
"hourlyRate": SemSearchV2DoubleRange,
"jobSuccessScore": SemSearchV2DoubleRange,
"totalJobs": SemSearchV2IntRange,
"topRated": false,
"risingTalent": true,
"hasPortrait100": false,
"skillsNames": ["abc123"],
"skillsUids": ["xyz789"],
"vemSkills": [VemSkill],
"type": "Agency",
"addAgencyPreview": false,
"agencySearch": true,
"publicVisibilityOnly": true
}
SemSearchV2Response
Fields
Field Name | Description |
---|---|
pagingInfo - PagingInfo!
|
|
profiles - [SemSearchV2Profile]!
|
Example
{
"pagingInfo": PagingInfo,
"profiles": [SemSearchV2Profile]
}
UserFreelancerProfilesSearchRecord
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
Metadata
Country
Description
Information about a country
Fields
Field Name | Description |
---|---|
id - ID
|
|
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
|
|
relatedRegion - Region
|
|
relatedSubRegion - Region
|
|
active - Boolean
|
|
registrationAllowed - Boolean
|
Example
{
"id": 4,
"name": "xyz789",
"twoLetterAbbreviation": "xyz789",
"threeLetterAbbreviation": "abc123",
"region": "EU",
"phoneCode": "abc123",
"relatedRegion": Region,
"relatedSubRegion": Region,
"active": true,
"registrationAllowed": true
}
CountryRegion
Values
Enum Value | Description |
---|---|
|
|
|
Example
"EU"
ReasonsMetadata
Region
RequestMetadata
TimeZoneRecord
Visitor
Fields
Field Name | Description |
---|---|
i18n - VisitorI18N
|
|
segment - VisitorSegment
|
Query to look up visitor segment data based on visitorId and the respective segment name |
Example
{
"i18n": VisitorI18N,
"segment": VisitorSegment
}
VisitorI18N
Fields
Field Name | Description |
---|---|
countrySupported - Boolean
|
|
status - String
|
|
locationViewType - String
|
|
userPreferredLocationType - String
|
|
settingsFlags - VisitorI18NSettings
|
Example
{
"countrySupported": true,
"status": "abc123",
"locationViewType": "abc123",
"userPreferredLocationType": "abc123",
"settingsFlags": VisitorI18NSettings
}
VisitorI18NSettings
Fields
Field Name | Description |
---|---|
showDomesticLocationFilterOnFLSearch - Boolean
|
|
showJobSearch - Boolean
|
|
showPhoneVerification - Boolean
|
|
showSmfToUpdateAddress - Boolean
|
|
showPersonalAddressAutocomplete - Boolean
|
|
showMessageContainer - Boolean
|
|
showLocationPreferenceOnJobPost - Boolean
|
|
defaultDomesticEnabled - Boolean
|
|
jobSearchDefaultedToON - Boolean
|
|
showLocationVerificationOnFWH - Boolean
|
|
domesticEnabledForFreelancersOnFLSearch - Boolean
|
Example
{
"showDomesticLocationFilterOnFLSearch": true,
"showJobSearch": false,
"showPhoneVerification": false,
"showSmfToUpdateAddress": false,
"showPersonalAddressAutocomplete": false,
"showMessageContainer": false,
"showLocationPreferenceOnJobPost": false,
"defaultDomesticEnabled": true,
"jobSearchDefaultedToON": false,
"showLocationVerificationOnFWH": true,
"domesticEnabledForFreelancersOnFLSearch": true
}
VisitorSegment
Description
Visitors to the site are typically categorized/segmented according to a specific criteria, such as demographics or user behavior. VisitorSegment
contains information about that visitor
Example
{
"visitorId": "4",
"segmentName": "abc123",
"data": "abc123"
}
Workflow
UpdateWorkflowTaskDetailsInput
Fields
Input Field | Description |
---|---|
status - WorkflowTaskStatus
|
|
labels - [WorkflowTaskPatchLabelInput!]
|
Example
{
"status": "NOT_OPEN",
"labels": [WorkflowTaskPatchLabelInput]
}
UpdateWorkflowTaskResult
Fields
Field Name | Description |
---|---|
workflowId - ID
|
|
updatedTaskView - WorkflowTaskView
|
Example
{
"workflowId": "4",
"updatedTaskView": WorkflowTaskView
}
WorkflowAssociationView
WorkflowOnboardingStatus
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"NOT_STARTED"
WorkflowTaskAssigneeView
WorkflowTaskComment
Example
{
"id": "4",
"message": "abc123",
"createdDateTime": "abc123",
"createdBy": "xyz789",
"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
Fields
Field Name | Description |
---|---|
id - ID
|
|
type - String
|
|
title - String
|
|
description - String
|
|
status - WorkflowTaskStatus!
|
|
assignee - WorkflowTaskAssigneeView
|
|
comments - [WorkflowTaskComment!]
|
|
createdDateTime - String
|
|
finishedDateTime - String
|
|
dueDate - String
|
|
modifiedDateTime - String
|
|
createdBy - String
|
|
modifiedBy - String
|
|
labels - [WorkflowTaskLabel!]
|
|
active - Boolean
|
|
notRequired - Boolean
|
|
dependsOn - String
|
|
externalTaskId - String
|
|
delayReasons - String
|
|
customAttributes - [WorkflowTaskCustomAttribute!]
|
|
order - Int
|
|
canEdit - Boolean
|
|
owner - Boolean
|
Provides a possibility for the user to filter on UI it's own tasks . |
Example
{
"id": "4",
"type": "abc123",
"title": "abc123",
"description": "xyz789",
"status": "NOT_OPEN",
"assignee": WorkflowTaskAssigneeView,
"comments": [WorkflowTaskComment],
"createdDateTime": "abc123",
"finishedDateTime": "abc123",
"dueDate": "xyz789",
"modifiedDateTime": "xyz789",
"createdBy": "xyz789",
"modifiedBy": "xyz789",
"labels": ["FLAGGED"],
"active": true,
"notRequired": false,
"dependsOn": "xyz789",
"externalTaskId": "xyz789",
"delayReasons": "abc123",
"customAttributes": [WorkflowTaskCustomAttribute],
"order": 987,
"canEdit": false,
"owner": true
}
WorkflowView
Fields
Field Name | Description |
---|---|
id - ID
|
|
type - String
|
|
onboardedStatus - WorkflowOnboardingStatus
|
|
totalTasks - Int
|
|
notStartedTasksCount - Int
|
|
inProgressTasksCount - Int
|
|
completedTasksCount - Int
|
|
tasksOverdue - Int
|
|
percentComplete - Int
|
|
startDateTime - String
|
|
completionDateTime - String
|
|
associations - [WorkflowAssociationView!]
|
|
tasks - [WorkflowTaskView!]
|
|
createdDateTime - String
|
|
modifiedDateTime - String
|
|
createdBy - String
|
|
modifiedBy - String
|
Example
{
"id": 4,
"type": "abc123",
"onboardedStatus": "NOT_STARTED",
"totalTasks": 123,
"notStartedTasksCount": 987,
"inProgressTasksCount": 987,
"completedTasksCount": 123,
"tasksOverdue": 987,
"percentComplete": 123,
"startDateTime": "xyz789",
"completionDateTime": "xyz789",
"associations": [WorkflowAssociationView],
"tasks": [WorkflowTaskView],
"createdDateTime": "xyz789",
"modifiedDateTime": "xyz789",
"createdBy": "abc123",
"modifiedBy": "abc123"
}
Talent Clouds
Day
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"MONDAY"
PrivateTalentCloud
Description
A Talent Cloud network is an Upwork Enterprise client's private group of professional freelancers and agencies.
Fields
Field Name | Description |
---|---|
id - ID!
|
|
name - String!
|
Talent cloud name |
creator - GenericUser!
|
person creating the talent cloud (should generally match actorId) |
creatorOrganization - GenericOrganization!
|
organization of the person creating the TC |
joinInstructions - String!
|
Message to display to freelancers when they request to join a talent cloud |
welcomeMessageToAddedFreelancers - String!
|
Message to display to a freelancer after joining a talent cloud |
joinRequestAutoApproved - Boolean!
|
If set to false, talent cloud join requests must pass manual review |
messageAfterJoinRequest - String!
|
Message to display to a freelancer after submitting a join request to a talent cloud |
joinRejectionMessage - String!
|
Message to display to a freelancer if the TC join request was rejected |
externalName - String
|
Name to display in external (to the client company) context |
active - Boolean!
|
If the talent cloud is active or not |
joinRequestNotifyUsers - [GenericUser]!
|
Users to notify when a new join request is created |
logoImageLarge - File
|
fileStorage UID |
logoImageSmall - File
|
fileStorage UID |
description - String!
|
Talent cloud description |
onboardingTaskEnabled - Boolean!
|
Flag indicating whether or not onboarding is enabled for this talent cloud |
onboardingTaskEnableUpdatedDateTime - String
|
Timestamp when onboardingTaskEnabled has been set to true (null until that) |
selectable - Boolean!
|
If true, then talent cloud can be selected for new offers. Implies that talent cloud is active |
talentCloudTasks - [TalentCloudTask]
|
list of talent cloud task overviews |
Example
{
"id": 4,
"name": "abc123",
"creator": GenericUser,
"creatorOrganization": GenericOrganization,
"joinInstructions": "abc123",
"welcomeMessageToAddedFreelancers": "xyz789",
"joinRequestAutoApproved": false,
"messageAfterJoinRequest": "abc123",
"joinRejectionMessage": "abc123",
"externalName": "xyz789",
"active": false,
"joinRequestNotifyUsers": [GenericUser],
"logoImageLarge": File,
"logoImageSmall": File,
"description": "xyz789",
"onboardingTaskEnabled": true,
"onboardingTaskEnableUpdatedDateTime": "abc123",
"selectable": true,
"talentCloudTasks": [TalentCloudTask]
}
PrivateTalentCloudConnection
Fields
Field Name | Description |
---|---|
totalCount - Int
|
|
edges - [PrivateTalentCloudEdge]
|
|
pageInfo - PageInfo
|
Example
{
"totalCount": 123,
"edges": [PrivateTalentCloudEdge],
"pageInfo": PageInfo
}
PrivateTalentCloudEdge
Fields
Field Name | Description |
---|---|
cursor - String
|
|
node - PrivateTalentCloud
|
Example
{
"cursor": "xyz789",
"node": PrivateTalentCloud
}
TalentAdjustedCategoryScore
Fields
Field Name | Description |
---|---|
averageCategoryScore - Float
|
Example
{"averageCategoryScore": 123.45}
TalentCloudSection
Fields
Field Name | Description |
---|---|
id - ID!
|
|
talentCloud - PrivateTalentCloud
|
|
name - String
|
|
description - String
|
|
type - TalentCloudTaskSectionType
|
|
attachmentIds - [ID]
|
|
active - Boolean
|
|
orderIndex - Int
|
Example
{
"id": "4",
"talentCloud": PrivateTalentCloud,
"name": "xyz789",
"description": "abc123",
"type": "ONBOARDING",
"attachmentIds": ["4"],
"active": false,
"orderIndex": 123
}
TalentCloudTask
Fields
Field Name | Description |
---|---|
talentCloud - PrivateTalentCloud
|
|
taskSections - [TalentCloudTaskSection]
|
Example
{
"talentCloud": PrivateTalentCloud,
"taskSections": [TalentCloudTaskSection]
}
TalentCloudTaskOverview
Fields
Field Name | Description |
---|---|
id - ID!
|
|
taskSectionIds - [ID]
|
|
name - String
|
|
completionRequired - Boolean
|
|
active - Boolean
|
|
permissions - [TalentCloudTaskOverviewPermission]
|
|
primaryTaskOwner - TalentCloudTaskRole
|
Example
{
"id": "4",
"taskSectionIds": [4],
"name": "abc123",
"completionRequired": false,
"active": true,
"permissions": [TalentCloudTaskOverviewPermission],
"primaryTaskOwner": "FREELANCER"
}
TalentCloudTaskOverviewPermission
Fields
Field Name | Description |
---|---|
role - TalentCloudTaskRole
|
|
permission - TalentCloudTaskPermission
|
Example
{"role": "FREELANCER", "permission": "NO"}
TalentCloudTaskPermission
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"NO"
TalentCloudTaskRole
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
Example
"FREELANCER"
TalentCloudTaskSection
Fields
Field Name | Description |
---|---|
taskSectionDetails - TalentCloudSection
|
|
tasks - [TalentCloudTaskOverview]
|
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
Fields
Field Name | Description |
---|---|
name - String
|
|
description - String
|
|
logoUrl - String
|
|
verificationMethod - String
|
|
provider - String
|
|
providerLink - String
|
|
duration - Int
|
|
classifications - [TalentDiversityCertificateClassification]
|
|
status - TalentCommunityCertificateStatus
|
Example
{
"name": "abc123",
"description": "xyz789",
"logoUrl": "xyz789",
"verificationMethod": "xyz789",
"provider": "xyz789",
"providerLink": "xyz789",
"duration": 123,
"classifications": [
TalentDiversityCertificateClassification
],
"status": "PENDING"
}
TalentCommunityCertificateStatus
Values
Enum Value | Description |
---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"PENDING"
TalentCommunityCertificateVisibility
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"PUBLIC"
TalentContract
Fields
Field Name | Description |
---|---|
id - ID!
|
|
startDate - String
|
|
endDate - String
|
|
status - TalentContractStatus
|
|
clientTeamId - ID
|
|
title - String
|
|
terms - TalentContractTerms
|
|
createDate - String
|
|
clientOrgId - ID
|
Example
{
"id": 4,
"startDate": "xyz789",
"endDate": "abc123",
"status": "ACTIVE",
"clientTeamId": 4,
"title": "xyz789",
"terms": TalentContractTerms,
"createDate": "xyz789",
"clientOrgId": 4
}
TalentContractAccessType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"PUBLIC"
TalentContractAggregate
TalentContractFeedback
Fields
Field Name | Description |
---|---|
feedbackToFreelancer - TalentWorkFeedback
|
|
feedbackToClient - TalentWorkFeedback
|
Example
{
"feedbackToFreelancer": TalentWorkFeedback,
"feedbackToClient": TalentWorkFeedback
}
TalentContractStatus
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"ACTIVE"
TalentContractTerms
Fields
Field Name | Description |
---|---|
hourlyRate - String
|
|
jobType - TalentJobType
|
|
stipendAmount - String
|
|
fixedAmount - String
|
Example
{
"hourlyRate": "abc123",
"jobType": "FIXED",
"stipendAmount": "abc123",
"fixedAmount": "abc123"
}
TalentDiversityCertificateClassification
TalentEducationRecord
Description
deprecated: use TalentProfileEducationRecord
Example
{
"id": "xyz789",
"personId": "abc123",
"institutionName": "abc123",
"standardizedInstitutionId": "xyz789",
"areaOfStudy": "abc123",
"standardizedAreaOfStudyId": "abc123",
"degree": "abc123",
"standardizedDegreeId": "abc123",
"startDateTime": "abc123",
"endDateTime": "xyz789",
"comment": "xyz789"
}
TalentFeedbackScore
TalentJobCategory
TalentJobCategoryGroup
Fields
Field Name | Description |
---|---|
id - String
|
|
name - String
|
|
selectedCategories - [TalentJobCategory]
|
Example
{
"id": "xyz789",
"name": "xyz789",
"selectedCategories": [TalentJobCategory]
}
TalentJobType
Values
Enum Value | Description |
---|---|
|
|
|
Example
"FIXED"
TalentOpening
Fields
Field Name | Description |
---|---|
id - ID
|
|
title - String
|
|
visibility - TalentContractAccessType
|
Example
{
"id": "4",
"title": "abc123",
"visibility": "PUBLIC"
}
TalentPersonAvailability
Fields
Field Name | Description |
---|---|
personId - String
|
|
capacity - FreelancerProfileAvailabilityCapacity
|
|
createdDateTime - String
|
|
availabilityDateTime - String
|
|
updatedDateTime - String
|
|
purchasedInvitationBadge - TalentPurchasedInvitationBadge
|
|
minHours - Int
|
|
maxHours - Int
|
|
availableDays - [Day]!
|
Example
{
"personId": "abc123",
"capacity": "fullTime",
"createdDateTime": "abc123",
"availabilityDateTime": "abc123",
"updatedDateTime": "xyz789",
"purchasedInvitationBadge": TalentPurchasedInvitationBadge,
"minHours": 123,
"maxHours": 987,
"availableDays": ["MONDAY"]
}
TalentProfile
Fields
Field Name | Description |
---|---|
personId - ID!
|
person id added for sbe batch loader |
identity - TalentProfileIdentity
|
profile parts |
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!]
|
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
Example
{
"lastWorkedOn": "abc123",
"totalHourlyJobs": 123,
"totalFixedJobs": 123,
"topRatedStatus": "abc123",
"totalFeedback": 123.45,
"totalEarnings": 123.45,
"adjustedCategoryScores": [TalentAdjustedCategoryScore],
"totalJobs": 987
}
TalentProfileCommunityCertificate
Fields
Field Name | Description |
---|---|
personId - String
|
|
certificateAttachmentId - String
|
|
certificationNumber - String
|
|
expirationDate - String
|
|
businessName - String
|
|
visibility - TalentCommunityCertificateVisibility
|
|
certificate - TalentCommunityCertificate
|
Example
{
"personId": "xyz789",
"certificateAttachmentId": "xyz789",
"certificationNumber": "xyz789",
"expirationDate": "xyz789",
"businessName": "abc123",
"visibility": "PUBLIC",
"certificate": TalentCommunityCertificate
}
TalentProfileCompletenessSummary
Fields
Field Name | Description |
---|---|
personId - String
|
|
pciActual - Int
|
pci stands for profile completeness index |
pciDisplay - Int
|
|
pciAction - String
|
|
pciActionCredit - Int
|
|
pciDateTime - String
|
|
actionForEmptySection - String
|
|
skillsCount - Int
|
|
employmentRecordCount - Int
|
|
portraitExists - Boolean
|
|
overviewExists - Boolean
|
|
passedTestsCount - Int
|
|
educationRecordCount - Int
|
|
certificatesCount - Int
|
|
otherExperiencesCount - Int
|
|
portfolioCount - Int
|
|
esnCount - Int
|
|
updatedDateTime - String
|
Example
{
"personId": "xyz789",
"pciActual": 123,
"pciDisplay": 123,
"pciAction": "xyz789",
"pciActionCredit": 987,
"pciDateTime": "xyz789",
"actionForEmptySection": "xyz789",
"skillsCount": 123,
"employmentRecordCount": 123,
"portraitExists": true,
"overviewExists": true,
"passedTestsCount": 987,
"educationRecordCount": 987,
"certificatesCount": 987,
"otherExperiencesCount": 987,
"portfolioCount": 987,
"esnCount": 123,
"updatedDateTime": "xyz789"
}
TalentProfileEmploymentRecord
Description
deprecated: use TalentProfileEmploymentHistoryRecord
Example
{
"id": "xyz789",
"personId": "abc123",
"companyName": "xyz789",
"jobTitle": "abc123",
"standardizedCompanyId": "abc123",
"standardizedJobTitleId": "abc123",
"role": "abc123",
"startDateTime": "xyz789",
"endDateTime": "abc123",
"description": "xyz789",
"city": "abc123",
"country": "xyz789"
}
TalentProfileIdentity
TalentProfileOtherExperience
TalentProfilePersonalData
Fields
Field Name | Description |
---|---|
firstName - String!
|
|
lastName - String!
|
|
portrait - Portrait
|
|
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": "xyz789",
"description": "abc123",
"chargeRate": Money,
"profileUrl": "xyz789",
"profileState": "IN_PROGRESS",
"location": PersonalDataLocation
}
TalentProfilePersonSkill
Fields
Field Name | Description |
---|---|
id - ID
|
|
skill - String
|
|
prettyName - String
|
|
status - String
|
|
description - String
|
|
externalLink - String
|
|
wikipediaPageId - String
|
|
freebaseMachineId - String
|
|
migrateTo - String
|
|
ctime - String
|
|
mtime - String
|
|
rank - String
|
|
ontologySkill - Skill
|
applicable fields of ontology skill in talent profile id, ontologyId, preferredLabel, entityStatus, allowMultipleClient, allowMultipleFreelancer, allowOther, advancedClient, client, freelancer, requiredClient, requiredFreelancer, priority, legacySkillNid, legacySkillId |
parentOntologySkill - Skill
|
Example
{
"id": "4",
"skill": "xyz789",
"prettyName": "abc123",
"status": "abc123",
"description": "xyz789",
"externalLink": "abc123",
"wikipediaPageId": "abc123",
"freebaseMachineId": "abc123",
"migrateTo": "xyz789",
"ctime": "abc123",
"mtime": "xyz789",
"rank": "xyz789",
"ontologySkill": Skill,
"parentOntologySkill": Skill
}
TalentProfileProject
Fields
Field Name | Description |
---|---|
id - ID!
|
|
title - String
|
|
description - String
|
|
projectContractLink - TalentProjectContractLink
|
|
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": "abc123",
"projectContractLink": TalentProjectContractLink,
"thumbnail": "xyz789",
"thumbnailOriginal": "abc123",
"projectUrl": "abc123",
"completionDateTime": "abc123",
"public": false,
"rank": 123,
"attachments": [TalentProfileProjectAttachment],
"skills": ["abc123"],
"creationDateTime": "abc123",
"categoryId": "4",
"videoUrl": "xyz789",
"occupationId": "xyz789",
"projectType": "CLASSIC_VIEW",
"role": "abc123",
"projectGoal": "xyz789",
"solution": "abc123",
"primaryImageId": "xyz789",
"tags": [TalentProfileProjectTag],
"modificationDateTime": "abc123",
"developerId": "abc123",
"thumbnailId": "abc123",
"thumbnailOriginalId": "abc123",
"category": "abc123",
"subCategory": "xyz789"
}
TalentProfileProjectAttachment
Fields
Field Name | Description |
---|---|
id - ID
|
|
type - String
|
|
title - String
|
|
attachmentName - String
|
|
attachmentSize - Int
|
|
originalAttachment - String
|
|
imageSmall - String
|
|
imageMiddle - String
|
|
imageLarge - String
|
|
rank - Int
|
|
creationDateTime - String
|
|
description - String
|
|
videoUrl - String
|
|
imageFixedWidth - String
|
|
group - String
|
Example
{
"id": "4",
"type": "xyz789",
"title": "xyz789",
"attachmentName": "abc123",
"attachmentSize": 987,
"originalAttachment": "abc123",
"imageSmall": "xyz789",
"imageMiddle": "abc123",
"imageLarge": "xyz789",
"rank": 123,
"creationDateTime": "abc123",
"description": "xyz789",
"videoUrl": "abc123",
"imageFixedWidth": "xyz789",
"group": "abc123"
}
TalentProfileProjectTag
TalentProfileSettings
Example
{
"provider": false,
"suspended": false,
"disabled": false,
"status": "xyz789",
"updatedDateTime": "abc123"
}
TalentProfileSpecializedProject
Fields
Field Name | Description |
---|---|
id - ID!
|
|
title - String
|
|
description - String
|
|
projectContractLink - TalentProjectContractLink
|
|
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": "xyz789",
"description": "abc123",
"projectContractLink": TalentProjectContractLink,
"thumbnail": "xyz789",
"thumbnailOriginal": "xyz789",
"projectUrl": "xyz789",
"completionDateTime": "abc123",
"public": true,
"rank": 123,
"attachments": [TalentProfileProjectAttachment],
"creationDateTime": "abc123",
"categoryId": "4",
"videoUrl": "xyz789",
"occupationId": "abc123",
"projectType": "CLASSIC_VIEW",
"role": "abc123",
"projectGoal": "xyz789",
"solution": "xyz789",
"primaryImageId": "abc123",
"modificationDateTime": "xyz789",
"thumbnailId": "abc123",
"thumbnailOriginalId": "abc123",
"category": "abc123",
"subCategory": "xyz789"
}
TalentProfileStatus
Values
Enum Value | Description |
---|---|
|
|
|
Example
"DRAFT"
TalentProfileUserPreferences
Example
{
"visibilityLevel": "PUBLIC",
"hideAgencyEarnings": true,
"hideEarnings": false,
"exposeFullName": true,
"clientFeedbackOptional": true,
"contractToHire": true
}
TalentProjectContractLink
TalentProjectList
Fields
Field Name | Description |
---|---|
projects - [TalentProfileProject]
|
|
totalProjects - Int
|
|
updatedDateTime - String
|
Example
{
"projects": [TalentProfileProject],
"totalProjects": 123,
"updatedDateTime": "xyz789"
}
TalentPurchasedInvitationBadge
TalentSkillNodeEdge
Fields
Field Name | Description |
---|---|
skill - Skill
|
Example
{"skill": Skill}
TalentSpecializedProfile
Example
{
"personId": "xyz789",
"profileId": "abc123",
"occupationId": "xyz789",
"status": "DRAFT",
"rank": 123,
"occupations": ["xyz789"],
"primary": false,
"title": "abc123",
"description": "abc123",
"hourlyRate": Money,
"weblink": "abc123"
}
TalentSpecializedProfileSkill
Fields
Field Name | Description |
---|---|
skills - [TalentSpecializedProfileSkillNode]
|
Example
{"skills": [TalentSpecializedProfileSkillNode]}
TalentSpecializedProfileSkillNode
Fields
Field Name | Description |
---|---|
ontologySkill - TalentSkillNodeEdge
|
|
parentOntologySkill - TalentSkillNodeEdge
|
Example
{
"ontologySkill": TalentSkillNodeEdge,
"parentOntologySkill": TalentSkillNodeEdge
}
TalentSpecializedProfilesProject
Fields
Field Name | Description |
---|---|
personId - ID
|
|
profileId - ID
|
|
project - TalentProfileSpecializedProject
|
Example
{
"personId": "4",
"profileId": "4",
"project": TalentProfileSpecializedProject
}
TalentWorkAccessType
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"PUBLIC"
TalentWorkFeedback
Example
{
"comment": "xyz789",
"response": "xyz789",
"score": 987.65,
"scores": [TalentFeedbackScore],
"feedbackSuppressed": false,
"isPublic": false,
"commentPublic": true,
"point": "xyz789"
}
TalentWorkHistory
Fields
Field Name | Description |
---|---|
contract - TalentContract
|
|
contractAggregate - TalentContractAggregate
|
|
feedback - TalentContractFeedback
|
|
opening - TalentOpening
|
Example
{
"contract": TalentContract,
"contractAggregate": TalentContractAggregate,
"feedback": TalentContractFeedback,
"opening": TalentOpening
}
TalentWorkHistoryConnection
Description
the exported model of the upWorkHistory.TWorkHistoryList
Fields
Field Name | Description |
---|---|
workHistoryList - [TalentWorkHistory]
|
|
totalCount - Int
|
Example
{
"workHistoryList": [TalentWorkHistory],
"totalCount": 987
}
TalentWorkHistoryFilterInput
Fields
Input Field | Description |
---|---|
personId - ID!
|
|
contractIds - [ID]
|
|
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"
Other
AccountingEntity
Fields
Field Name | Description |
---|---|
id - ID!
|
Example
{"id": 4}
CreateManagedProjectServicesBatchInput
Description
Input definitions
Fields
Input Field | Description |
---|---|
batchId - ID!
|
your own unique identifier |
batchData - [CreateManagedProjectServicesInput]!
|
list of key value pairs to be processed |
Example
{
"batchId": 4,
"batchData": [CreateManagedProjectServicesInput]
}
CreateManagedProjectServicesEntryInput
Description
Key value pair to be processed. Refer to the Supported keys:
- key=skuSlug, The SKU identifier, provided during partner onboarding. Required field
- key=partnerPurchaseId, The partner purchase unique identifier. Required field.
- key=orderTimestamp, The order's timestamp. Must be in ISO 8601 format: YYYY-MM-DDTHH:MM:SS (e.g., 2024-08-23T15:45:30), required field.
- key=email, A valid customer email address. This email address will be used to send the magic link to the customer. Required field.
- key=firstName, Customer's first name. Required field.
- key=lastName, Customer's last name. Required field.
- key=skuCurrency, Currency used for the transaction. Supported values (USD and EUR). Required field.
- key=skuAmountPaid, Must be a string representation of a number greater than or equal to 0. Required field.
- key=customerCountry, Customer's Country Code. Optional field. Must follow the ISO 3166-1 alpha-2 standard (e.g., "US" for the United States).
- key=customerState, State/Province Code where applicable. Optional field. Must follow ISO 3166-2 standard where applicable (e.g., "CA" for California).
- key=customerCity, Customer's city name. Optional field. Must be a non-empty string.
- key=customerPostalCode, Customer's postal code. Optional field. Must not include any special characters.
- key=UAT, Boolean indicator. Optional field. True if the engagement does not activate the workflow, false otherwise. Used for client onboarding only with Partner Management Team
Example
{
"key": "abc123",
"value": "xyz789"
}
CreateManagedProjectServicesInput
Fields
Input Field | Description |
---|---|
data - [CreateManagedProjectServicesEntryInput]!
|
Example
{"data": [CreateManagedProjectServicesEntryInput]}
CustomPaymentInput
CustomPaymentResponse
Fields
Field Name | Description |
---|---|
invoiceId - ID!
|
Invoice ID |
Example
{"invoiceId": "4"}
CustomPaymentType
Values
Enum Value | Description |
---|---|
|
Example
"BONUS"
ManagedProjectServicesBatchResponse
Fields
Field Name | Description |
---|---|
batchData - [PartnerManagedProjectServicesBatchDataResponse]
|
Example
{
"batchData": [
PartnerManagedProjectServicesBatchDataResponse
]
}
ManualReviewStatus
Values
Enum Value | Description |
---|---|
|
|
|
Example
"APPROVED"
PartnerManagedProjectServicesBatchDataResponse
Fields
Field Name | Description |
---|---|
partnerPurchaseId - ID!
|
the partner purchase unique identifier |
status - String!
|
batch status (PENDING, PROCESSED, ERROR, DUPLICATE) |
error - String
|
if status is ERROR, this field will contain the error message |
data - [PartnerManagedProjectServicesEntryResponse]
|
Set of key value pairs of the data that was processed |
Example
{
"partnerPurchaseId": "4",
"status": "xyz789",
"error": "xyz789",
"data": [PartnerManagedProjectServicesEntryResponse]
}
PartnerManagedProjectServicesEntryResponse
Description
key value pair with data of created engagement. Refer to the Supported keys:
- key=partnerEngagementId, The embedded partner engagement unique identifier. Required field.
- key=partnerPurchaseId, The partner purchase unique identifier. Required field.
- key=skuSlug, The SKU identifier, provided during partner onboarding. Required field
- key=skuAmountPaid, The amount paid for the SKU.
- key=skuCurrency, The currency used for the skuAmountPaid.
- key=estimatedDeliveryDate, The estimated delivery date of the engagement. Standard format is YYYY-MM-DD.
- key=UAT, It returns true if the engagement does not activate the workflow, false otherwise. Used for client uat only with Partner Management Team
- key=status, The current status of the engagement. Required field.
- key=timeline, The status timeline of the engagement. JSON format. Required field.
- key=orderTimestamp, The order's timestamp. Must be in ISO 8601 format: YYYY-MM-DDTHH:MM:SS (e.g., 2024-08-23T15:45:30), required field.
Example
{
"key": "abc123",
"value": "xyz789"
}
PartnerManagedProjectServicesResponse
Description
PartnerManagedProjectServicesResponse will contain the data that was processed. It will contain the key value pairs of the data that was processed.
Fields
Field Name | Description |
---|---|
data - [PartnerManagedProjectServicesEntryResponse]
|
Set of key value pairs of the data that was processed |
Example
{"data": [PartnerManagedProjectServicesEntryResponse]}
Other
AuditTime
Description
Type to represent both entity creation and modified time
Example
{
"createdDateTime": "abc123",
"modifiedDateTime": "abc123"
}
AvailableScope
Values
Enum Value | Description |
---|---|
|
|
|
|
|
Example
"INTERNAL"
Boolean
Description
Built-in Boolean
Example
true
ContractType
Values
Enum Value | Description |
---|---|
|
|
|
Example
"HOURLY"
DateTime
DateTimeRange
EngagementDuration
File
Example
{
"name": "xyz789",
"uri": "xyz789",
"encoding": "abc123",
"size": 987,
"createdDateTime": "abc123"
}
Float
Description
Built-in Float
Example
987.65
FloatRange
FreelancerProfilesSearchRecordType
Types
Union Types |
---|
Example
FreelancerProfilesSearchRecord
ID
Description
Built-in ID
Example
"4"
Int
Description
Built-in Int
Example
987
IntRange
JobCategory
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
Fields
Field Name | Description |
---|---|
iso639Code - String!
|
ISO 639 standards - https://en.wikipedia.org/wiki/ISO_639(example: en) |
active - Boolean!
|
|
englishName - String!
|
Example
{
"iso639Code": "xyz789",
"active": true,
"englishName": "abc123"
}
Money
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": "abc123",
"currency": "abc123",
"displayValue": "xyz789"
}
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": "abc123"
}
OntologyEntityResult
Types
Union Types |
---|
Example
Skill
PageInfo
Pagination
Description
Pagination
Example
{"after": "abc123", "first": 987}
Portrait
Description
Portrait of the freelancer
Example
{
"portrait": "xyz789",
"portrait32": "xyz789",
"portrait50": "abc123",
"portrait100": "abc123",
"portrait150": "xyz789",
"portrait500": "xyz789"
}
SortAttribute
Fields
Input Field | Description |
---|---|
field - String!
|
|
sortOrder - SortOrder!
|
Example
{"field": "abc123", "sortOrder": "ASC"}
SortOrder
Values
Enum Value | Description |
---|---|
|
|
|
Example
"ASC"
String
Description
Built-in String
Example
"xyz789"