---
name: "WWW::ORCID::API::v2_0_public"
section: "3pm"
platform: "linux"
package: "libwww-orcid-perl"
version: "0.0402-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/WWW::ORCID::API::v2_0_public"
---

# WWW::ORCID::API::v2\_0\_public(3pm)

A client for the ORCID 2.0 public API

## NAME

WWW::ORCID::API::v2\_0\_public - A client for the ORCID 2.0 public API

## CREATING A NEW INSTANCE

The `"new"` method returns a new 2.0 public API client.

Arguments to new:

### "client\_id"

Your ORCID client id (required).

### "client\_secret"

Your ORCID client secret (required).

### "sandbox"

The client will talk to the ORCID sandbox API \<https://api.sandbox.orcid.org/v2.0\> if set to `1`.

### "transport"

Specify the HTTP client to use. Possible values are LWP or HTTP::Tiny. Default is LWP.

## METHODS

### "client\_id"

Returns the ORCID client id used by the client.

### "client\_secret"

Returns the ORCID client secret used by the client.

### "sandbox"

Returns `1` if the client is using the sandbox API, `0` otherwise.

### "transport"

Returns what HTTP transport the client is using.

### "api\_url"

Returns the base API url used by the client.

### "oauth\_url"

Returns the base OAuth url used by the client.

### "access\_token"

Request a new access token.

```
    my $token = $client->access_token(
        grant_type => 'client_credentials',
        scope => '/read-public',
    );
```

### "authorize\_url"

Helper that returns an authorization url for 3-legged OAuth requests.

```
    # in your web application
    redirect($client->authorize_url(
        show_login => 'true',
        scope => '/person/update',
        response_type => 'code',
        redirect_uri => 'http://your.callback/url',
    ));
```

See the `"/authorize"` and `"/authorized"` routes in the included playground application for an example.

### "record\_url"

Helper that returns an orcid record url.

```
    $client->record_url('0000-0003-4791-9455')
    # returns
    # http://orcid.org/0000-0003-4791-9455
    # or
    # http://sandbox.orcid.org/0000-0003-4791-9455
```

### "read\_public\_token"

Return an access token with scope `"/read-public"`.

### "client"

Get details about the current client.

### "search"

```
    my $hits = $client->search(q => "johnson");
=head2 C<activities>
    my $rec = $client->activities(token => $token, orcid => $orcid);
```

Equivalent to:

```
    $client->get('activities', %opts)
```

### "address"

```
    my $recs = $client->address(token => $token, orcid => $orcid);
    my $rec = $client->address(token => $token, orcid => $orcid, put_code => '123');
```

Equivalent to:

```
    $client->get('address', %opts)
```

### "biography"

```
    my $rec = $client->biography(token => $token, orcid => $orcid);
```

Equivalent to:

```
    $client->get('biography', %opts)
```

### "education"

```
    my $rec = $client->education(token => $token, orcid => $orcid, put_code => '123');
```

Equivalent to:

```
    $client->get('education', %opts)
```

### "delete\_education"

```
    my $ok = $client->delete_education(token => $token, orcid => $orcid, put_code => '123');
```

Equivalent to:

```
    $client->delete('education', %opts)
```

### "education\_summary"

```
    my $rec = $client->education_summary(token => $token, orcid => $orcid, put_code => '123');
```

Equivalent to:

```
    $client->get('education/summary', %opts)
```

### "educations"

```
    my $rec = $client->educations(token => $token, orcid => $orcid);
```

Equivalent to:

```
    $client->get('educations', %opts)
```

### "email"

```
    my $rec = $client->email(token => $token, orcid => $orcid);
```

Equivalent to:

```
    $client->get('email', %opts)
```

### "employment"

```
    my $rec = $client->employment(token => $token, orcid => $orcid, put_code => '123');
```

Equivalent to:

```
    $client->get('employment', %opts)
```

### "employment\_summary"

```
    my $rec = $client->employment_summary(token => $token, orcid => $orcid, put_code => '123');
```

Equivalent to:

```
    $client->get('employment/summary', %opts)
```

### "employments"

```
    my $rec = $client->employments(token => $token, orcid => $orcid);
```

Equivalent to:

```
    $client->get('employments', %opts)
```

### "external\_identifiers"

```
    my $recs = $client->external_identifiers(token => $token, orcid => $orcid);
    my $rec = $client->external_identifiers(token => $token, orcid => $orcid, put_code => '123');
```

Equivalent to:

```
    $client->get('external-identifiers', %opts)
```

### "funding"

```
    my $rec = $client->funding(token => $token, orcid => $orcid, put_code => '123');
```

Equivalent to:

```
    $client->get('funding', %opts)
```

### "funding\_summary"

```
    my $rec = $client->funding_summary(token => $token, orcid => $orcid, put_code => '123');
```

Equivalent to:

```
    $client->get('funding/summary', %opts)
```

### "fundings"

```
    my $rec = $client->fundings(token => $token, orcid => $orcid);
```

Equivalent to:

```
    $client->get('fundings', %opts)
```

### "keywords"

```
    my $recs = $client->keywords(token => $token, orcid => $orcid);
    my $rec = $client->keywords(token => $token, orcid => $orcid, put_code => '123');
```

Equivalent to:

```
    $client->get('keywords', %opts)
```

### "other\_names"

```
    my $recs = $client->other_names(token => $token, orcid => $orcid);
    my $rec = $client->other_names(token => $token, orcid => $orcid, put_code => '123');
```

Equivalent to:

```
    $client->get('other-names', %opts)
```

### "peer\_review"

```
    my $rec = $client->peer_review(token => $token, orcid => $orcid, put_code => '123');
```

Equivalent to:

```
    $client->get('peer-review', %opts)
```

### "peer\_review\_summary"

```
    my $rec = $client->peer_review_summary(token => $token, orcid => $orcid, put_code => '123');
```

Equivalent to:

```
    $client->get('peer-review/summary', %opts)
```

### "peer\_reviews"

```
    my $rec = $client->peer_reviews(token => $token, orcid => $orcid);
```

Equivalent to:

```
    $client->get('peer-reviews', %opts)
```

### "person"

```
    my $rec = $client->person(token => $token, orcid => $orcid);
```

Equivalent to:

```
    $client->get('person', %opts)
```

### "personal\_details"

```
    my $rec = $client->personal_details(token => $token, orcid => $orcid);
```

Equivalent to:

```
    $client->get('personal-details', %opts)
```

### "researcher\_urls"

```
    my $recs = $client->researcher_urls(token => $token, orcid => $orcid);
    my $rec = $client->researcher_urls(token => $token, orcid => $orcid, put_code => '123');
```

Equivalent to:

```
    $client->get('researcher-urls', %opts)
```

### "work"

```
    my $rec = $client->work(token => $token, orcid => $orcid, put_code => '123');
```

Equivalent to:

```
    $client->get('work', %opts)
```

### "work\_summary"

```
    my $rec = $client->work_summary(token => $token, orcid => $orcid, put_code => '123');
```

Equivalent to:

```
    $client->get('work/summary', %opts)
```

### "works"

```
    my $recs = $client->works(token => $token, orcid => $orcid);
    my $recs = $client->works(token => $token, orcid => $orcid, put_code => ['123', '456']);
```

Equivalent to:

```
    $client->get('works', %opts)
```

### "last\_error"

Returns the last error returned by the ORCID API, if any.

### "log"

Returns the Log::Any logger.
