The workroom/{bidId}/workview/{userId} method is an Elance Developer API Workroom method that requests the screenshots captured for an hourly project using the Elance WorkView™ system.

This method will return all screenshots taken automatically by the Elance Tracker application. It will not return screenshots captured manually by the contractor during the course of work; these are posted as messages to the Workroom, and can be retrieved using the workroom/{bidId}/messages method.

This method must be called using an HTTPS GET request. All responses are returned in the JSON format.

I. Preconditions

This method requires that the calling application has authenticated a user using the OAuth 2.0 protocol, as described on the Getting Started page.

II. Required URL Parameters

Parameter Description
bidId The unique ID assigned by Elance to the Workroom shared by the contractor and the employer.
userId The unique ID assigned by Elance to the user whose WorkView™ information will be returned.

III. Optional Query String Parameters

Parameter Description
date The week for which to retrieve WorkView™ data, expressed in the format "DD-MON-YY". If omitted, the most recent week's WorkView™ data is returned.

IV. Response Data Description

Property Name Data Type Description
bidData BidData object Information describing the Workroom shared by the employer and the contractor.
date string The week to which this WorkView™ data pertains, expressed in the format "DD-MON-YY".
userName string The unique Elance text name chosen by the contractor when she created her Elance account, as identified by the userId parameter.
prevDate string The date for the prior week's worth of WorkView™ data, expressed in the format "DD-MON-YY". This value can be passed as the value of the date method in order to obtain the previous week's worth of WorkView™ data. If there is no previous WorkView™ data available, this property will be null.
nextDate string The date for the next week's worth of WorkView™ data, expressed in the format "DD-MON-YY". This value can be passed as the value of the date method in order to obtain the previous week's worth of WorkView™ data. If this is the most recent week of WorkView™ data, this property will be null.
hours decimal The number of hours logged for the project this week.
screenBuckets ScreenBucket objects A zero-based array of objects containing WorkView™ screenshot data.

1. BidData Object Data Description

Property Name Data Type Description
bidId integer The unique ID, assigned by Elance, associated with this bid. This ID is also the unique ID of the project's Workroom, which is created for each proposal as soon as a proposal is submitted.
jobId integer The unique ID of the associated job to which this Workroom is attached.
jobName string The name of the associated job, as chosen by the employer when the job was posted.
userType string Specifies the role occupied by the currently logged in user in this project.
clientUserId integer The unique integer ID assigned to the employer on Elance.
clientUserName string The unique text string chosen by the contractor as her Elance login.
clientName string The individual or corporate name of the employer.
clientImageURL string The URL resource pointer to the picture representing the employer, such as a photograph or a logo.
clientCountry string The employer's country, returned as the full name of the nation.
clientCountryCode string The alpha-2 country code for the employer's country of residence, as specified by ISO 3166-1.
providerUserId integer The unique ID of the contractor, as assigned by Elance.
providerName string The legal name of the contractor.
providerCompany string The name of the contractor's business. If the contractor is a sole proprietor, this name will be equal to the value of the providerName property.
providerCompanyURL string The URL to the Web site of the contractor's business.
providerImageURL string The URL resource pointer to the picture representing the contractor, such as a photograph or a business logo.
providerProfileURL string The URL to the contractor's Elance profile.
providerJobHistoryURL string A URL linking to a page on Elance.com that displays the recent Elance jobs worked by the contractor.
providerImageURL string The URL resource pointer to the picture representing the contractor, such as a photograph or a business logo.
providerCountry string The contractor's country, returned as the full name of the nation.
providerCountryCode string The alpha-2 country code for the contractor's country of residence, as specified by ISO 3166-1.
providerCity string The contractor's city of residence.
providerState string The contractor's state or province of residence.
providerRegion string ???
providerHourlyRate string The average amount that the contractor charges on an hourly basis.
providerIdVerified boolean True if the contractor has verified her identity using Elance's identity verification service; otherwise, false.
providerIsBusiness boolean True if the contractor is a legal business entity; otherwise, false.
providerJobs12M boolean The number of jobs assigned to this contractor by various employers within the past year.
phase integer (Enumeration) A value indicating the current state of the project, such as whether it is open, in progress, or complete. See Phase Enumeration for valid values.
status string A textual representation of the current phase of the project. Used for display purposes only; the values returned for this property may change without notice.
secondaryStatus string A textual representation of the current phase of the project.
isHourly boolean True if the contracter charges the employer for every hour worked; false if the job is fixed price, and paid according to the fulfillment of milestones agreed upon by the employer and the contractor.
isSponsored boolean True if the contractor paid additional Connect points to promote this bid in the bid listings; otherwise, false.
isDelisted boolean True if this bid has been removed due to a violation of Elance policies; otherwise, false.
isPreBid boolean True if the bid represents a question from the contractor to the employer, and does not include a price quote; otherwise, false.
isAwarded boolean True if this bid was selected as the winning bid for the associated job; otherwise, false.
isCompleted boolean True if the associated project has been marked by both the employer and the contractor as finished; otherwise, false.
bidAmount decimal (JSON string) The total amount, in US dollars, that the contractor is proposing as the project cost.
hourlyRate decimal (JSON string) The amount per hour that the contractor proposes charging for this work. If the job is a fixed-price job, this property will be an empty string.
hoursPerWeek integer (JSON string) The number of hours the contractor proposes working each week until project completion.
duration integer The proposed time it will take to complete the project. This unit is either days, weeks, or months, and depends upon the desired timeframe initially selected by the employer.
submissionDate timestamp The time, expressed in seconds elapsed since January 1st, 1970, on which this proposal was submitted by the contractor to the employer.
awardedDate timestamp The time, expressed in seconds elapsed since January 1st, 1970, on which the employer selected this proposal as the winning bid.
contractEndDate string The day by which the contract should be completed. For hourly projects, this marks the final day on which billed hours will be auto-approved.
milestonesCount integer The number of status checkpoints associated with this project.
milestonesCompleted integer The number of project status checkpoints that have elapsed as of the current day.
deliveryCode integer (JSON string)

2. ScreenBucket Object Data Description

Property Name Data Type Description
hour string The hour during which this screenshot was taken, expressed as a number between 0 and 23.
title string The hour during which this screen capture was taken, expressed as a text range (e.g., "12pm-1pm").
screens Array of ScreenData objects The individual objects representing contractor screen captures and comments.

3. ScreenData Object Data Description

Property Name Data Type Description
screenId integer The unique ID assigned to this screen capture.
screenURL URL The URL to the full-sized screen image on the Elance Web site.
thumbURL URL The URL to the thumbnail-sized version of the screen image. The dimensions of the thumbnail are 320px by 240px.
tileURL URL The URL to the tile-sized version of the screen image. The dimensions of this image are 140px by 105px.
timestamp timestamp (JSON number) The date and time this screen capture was taken, expressed as seconds since January 1st, 1970.
timezone string The time zone of the contractor, expressed as an offset from Coordinated Universal Time (UTC); for example, "UTC-05:00".
userId integer The unique integer ID of the provider whose screen was captured.
userName string The unique name of the provider whose screen was captured.
companyName string The name of the provider's company.
logoURL string A URL to the provider's company logo.
numComments integer (JSON number) The number of comments that are logged with this screen capture.
bidId integer The unique ID, assigned by Elance, associated with this bid. This ID is also the unique ID of the project's Workroom, which is created for each proposal as soon as a proposal is submitted.
date date The day this screen capture was taken, expressed in the format "DD-MON-YY".
displayTime string The time (hour and minute) at which this screenshot was taken on the contractor's system.
comments array of CommentData objects The comments input by this contractor during the course of her work.

4. CommentData Object Data Description

Property Name Data Type Description
text string The text of the comment input by the provider.
name string The name of the provider who logged this comment.
timestamp timestamp The day and time this comment was logged, expressed as second elapsed since January 1st, 1970. 

V. Request/Response Examples in JSON

1. Requesting

A. Request

The following URL requests WorkView™ information for a user whose user ID is 3879311, and for the project whose bid ID is 28917642.

https://api.elance.com/api2/workroom/28917642/workview/3879311?access_token=4eb1de8bf06b10210e000005|3879311|PwxDQLDDzwuux0e9cIcgOA

B. Response

{
    "data": {
        "bidData": {
          "bidId": "30561769",
            "jobId": "30561768",
            "jobName": "PHP Development Required ASAP",
            "userType": "PROVIDER",
            "clientUserId": "4124673",
            "clientUserName": "m_eriksen",
            "clientName": "m_eriksen",
            "clientImageURL": "https:\/\/elance.com\/media\/images\/4.0\/no-photo-64x80.jpg",
            "clientCountry": "United States",
            "clientCountryCode": "US",
            "providerUserId": "4124672",
            "providerUserName": "t_mosby",
            "providerName": "Ted Mosby",
            "providerCompany": "Ted Mosby",
            "providerCompanyURL": "https:\/\/elance.com\/s\/t_mosby\/",
            "providerImageURL": "https:\/\/elance.com\/media\/images\/4.0\/no-photo-64x80.jpg",
            "providerProfileURL": "https:\/\/elance.com\/s\/t_mosby\/",
            "providerJobHistoryURL": "https:\/\/elance.com\/s\/t_mosby\/job-history\/",
            "providerCountry": "United States",
            "providerCountryCode": "US",
            "providerCity": "Seattle",
            "providerState": "WA",
            "providerRegion": "021",
            "providerHourlyRate": "33",
            "providerIdVerified": false,
            "providerIsBusiness": false,
            "providerJobs12M": "2",
            "phase": "5",
            "status": "Working",
            "secondaryStatus": "",
            "isHourly": false,
            "isSponsored": false,
            "isDelisted": false,
            "isPreBid": false,
            "isAwarded": true,
            "isCompleted": true,
            "bidAmount": "2191.78",
            "hourlyRate": "0",
            "hoursPerWeek": "0",
            "duration": "",
            "submissionDate": 1337659200,
            "awardedDate": 1337659200,
            "contractEndDate": "Jul 22, 2012",
            "milestonesCount": 1,
            "milestonesCompleted": 0,
            "deliveryCodeId": "13012"
        },
        "date": "20-MAY-12",
        "userName": "Ted M.",
        "prevDate": null,
        "nextDate": null,
        "hours": 0.1,
        "screenBuckets": {
            "0": {
                "hour": "13",
                "title": "1 pm - 2 pm",
                "screens": {
                    "0": {
                        "screenId": "9036853",
                        "screenURL": "https://elance.com/php/files/main/download.php?crypted=Y3R4JTNEd3QyJTI2ZmlkJTNENDE3MDA1OTclMjZyaWQlM0QtMSUyNnBpZCUzRDI4OTE3NjQy",
                        "thumbURL": "https://elance.com/php/files/main/download.php?crypted=Y3R4JTNEd3QyJTI2ZmlkJTNENDE3MDA1OTclMjZyaWQlM0QtMSUyNnBpZCUzRDI4OTE3NjQyJTI2dCUzRDE=",
                        "tileURL": "https://elance.com/php/files/main/download.php?crypted=Y3R4JTNEd3QyJTI2ZmlkJTNENDE3MDA1OTclMjZyaWQlM0QtMSUyNnBpZCUzRDI4OTE3NjQyJTI2dCUzRDI=",
                        "timestamp": 1330886264,
                        "timezone": "UTC-05:00",
                        "userId": "3879311",
                        "userName": "Ted M.",
                        "companyName": "Ted Mosby",
                        "logoURL": "https://elance.com/media/images/4.0/no-photo-64x80.jpg",
                        "numComments": 4,
                        "comments": {
                            "0": {
                                "text": "Pausing for lunch.",
                                "name": "Ted M.",
                                "timestamp": 1330899779
                            },
                            "1": {
                                "text": "A third comment.",
                                "name": "Ted M.",
                                "timestamp": 1330899691
                            },
                            "2": {
                                "text": "Another comment.",
                                "name": "Ted M.",
                                "timestamp": 1330899685
                            },
                            "3": {
                                "text": "Making progress.",
                                "name": "Ted M.",
                                "timestamp": 1330899677
                            }
                        },
                        "bidId": "28917642",
                        "date": "22-MAY-12",
                        "displayTime": "1:37 pm",
                        "screenIdx": 3
                    }
                }
            }
        }
    }
}

VI. Error Codes

Error Description
E_WORKROOM_INVALID_BID Either the bidId supplied in the URL is invalid, or the currently logged in user does not have permission to access that Workroom.
E_VALIDATION_INVALID_ID The value in the userId URL parameter is not recognized as a valid user by the system.
E_WORKROOM_BID_ACCESS The user specified by the userId URL parameter does not have access to the Workroom specified by the bidId URL parameter

For a list of additional error codes that can be thrown by this method, see Common API Error Codes.