# Single work expression

## Fetch a single work expression

{% openapi src="/files/4kNXPoVcclCo2986qOST" path="/v3/{frbr\_uri}" method="get" %}
[Laws.Africa Content API 2024-04-23.yaml](https://4163728571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LrrJ5L0RJ3goKWzqKVC%2Fuploads%2FYkGoMScj3txq3sbsbbwo%2FLaws.Africa%20Content%20API%20\(v3\)%20\(2\).yaml?alt=media\&token=7476d4cb-8aff-4c63-8ec8-44782e977024)
{% endopenapi %}

Supported content types: JSON, HTML, PDF, ePub, zip.

### Query Parameters for HTML Content

When fetching HTML content (using the `.html` endpoint), you can control some aspects of how the HTML is generated using query parameters.

For example, usually you will want to make links to other legislation relative to your website. You can do this by using `?resolver=none` when fetching the HTML.

| Name       | Type   | Description                                                                                                                                                                 |
| ---------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| coverpage  | string | Should the response include a generated coverpage? Use 1 for true, anything else for false. Default: 1. HTML-only.                                                          |
| media-url  | string | The fully-qualified URL prefix to use when generating links to embedded media, such as images.                                                                              |
| resolver   | string | The fully-qualified URL to use when resolving references to other Akoma Ntoso documents. Use `no` or `none` to disable. Defaults to using the Laws.Africa resolver.         |
| standalone | number | If this is `1` , the response will be a complete HTML document, including CSS, that can stand on its own. Otherwise it will be an HTML fragment. Default: false. HTML-only. |

## Expressions at specific points in time

Works may be amended and change over time. You can fetch different amended versions of a work by specifying the language and date in the FRBR URI of the request.

The available points in time of a work are listed in the `points_in_time` field of the JSON description of the work. Each point in time includes a date and a list of expressions available at that date, one for each available language.

To fetch the very first expression of a work, use `frbr-uri/:language@`, for example: `/akn/za/act/1998/5/eng@`.

To fetch a specific point in time, use `frbr-uri/:language@:date`, for example: `/akn/za/act/1998/5/eng@2014-01-17`.

To fetch the most recent point in time at or before a specific date, use `frbr-uri/:language::date`, for example `/akn/za/act/1998/5/eng:2014-01-17`.&#x20;

{% hint style="info" %}
The `.format` part of the FRBR URI is placed after the `@YYYY-MM-DD` part.
{% endhint %}

{% hint style="info" %}
If you use `@` to specify a particular date and the API doesn't have a version at exactly that date, it will return a 404 response. If you need the expression of the work closest to a particular date, use `:` instead.&#x20;
{% endhint %}

### Date formats for specific points in time

| Date Format   | Meaning                                                                                          | Example Expression FRBR URI          |
| ------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------ |
| `@`           | Very first expression of a work.                                                                 | `/akn/za/act/1998/55/eng@`           |
| `@YYYY-MM-DD` | Expression at the specific date.                                                                 | `/akn/za/act/1998/55/eng@2014-01-17` |
| `:YYYY-MM-DD` | Most recent expression at or before a date.                                                      | `/akn/za/act/1998/55/eng:2015-01-01` |
| (none)        | The most recent expression at or before today's date. Equivalent to using `:` with today's date. | `/akn/za/act/1998/55/eng`            |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.laws.africa/api/works-and-expressions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
