---
title: "Get a Journal Officiel issue"
method: GET
path: "/journal-officiel/{year}/{number}"
tags: ["Journal Officiel"]
---

# Get a Journal Officiel issue

`GET /journal-officiel/{year}/{number}`

## Request

- Base URL: `https://www.upgrowth.dz/api/v1`
- URL: `https://www.upgrowth.dz/api/v1/journal-officiel/{year}/{number}`
- Auth: one of:
  - none
  - HTTP bearer

One issue with its official links and, where UpGrowth holds it, its summary (else data.sommaire is null and data.note says why). Morocco (country=MA): the Bulletin officiel issue with its date and supplements. Tunisia (country=TN): the JORT issue with its date, no PDF link.

## Path parameters

- `year` integer, required
- `number` integer, required

## Query parameters

- `lang` 'fr' | 'ar' | 'en'
- `country` string

## Response `200`

The data, with its meta.

- object
  - `data` JoIssue, required
    - `year` integer, required
    - `number` integer, required
    - `suffix` string: Morocco only: the letters of a supplement of the Bulletin officiel (bis, ter), present only when the number has no issue of its own in the index.
    - `date` string: Morocco and Tunisia only: the day the issue was published, YYYY-MM-DD.
    - `editions` object, required
      - `fr` JoEdition
        - `available` boolean, nullable: Whether this edition exists, null when that is unknown.
        - `pdf_url` string, nullable: The official PDF file on joradp.dz (Algeria) or sgg.gov.ma (Morocco). Always null for Tunisia, whose official site gives no direct link to a file: available says whether the edition exists.
      - `ar` JoEdition
        - `available` boolean, nullable: Whether this edition exists, null when that is unknown.
        - `pdf_url` string, nullable: The official PDF file on joradp.dz (Algeria) or sgg.gov.ma (Morocco). Always null for Tunisia, whose official site gives no direct link to a file: available says whether the edition exists.
    - `url` string, nullable: The page of the issue on upgrowth.dz, when UpGrowth holds its summary (none yet for 1962-2001, read from the scans).
    - `sommaire` JoSommaire, required
      - `date` string, nullable: Date of the issue.
      - `hijri` string, nullable: Date of the issue in the Hijri calendar.
      - `pages` unknown
      - `title_count` integer: Number of titles in the summary.
      - `sections` object[]
        - `heading` string, nullable: Heading of the section of the summary.
        - `titles` string[]
      - `source` string: 1962-2001 only: how the summary was read. Those issues are image scans; a title is listed only when two independent AI readings of the scanned pages give it word for word.
      - `titles_held_back` integer: 1962-2001 only: entries of the issue that the readings did not agree on, so they are not listed.
      - `complete` boolean: 1962-2001 only: true when every entry of the issue is listed (titles_held_back is 0).
    - `note` string: Present when there is no summary: why.
    - `supplements` JoIssueEntry[]: Morocco only: the supplements of this number (bis, ter), each with its own links. Absent when there is none.
      - `number` integer, required
      - `suffix` string: Morocco only: the letters of a supplement of the Bulletin officiel (bis, ter), absent for the issue itself.
      - `date` string: Morocco and Tunisia only: the day the issue was published, YYYY-MM-DD.
      - `editions` object, required
        - `fr` JoEdition
          - `available` boolean, nullable: Whether this edition exists, null when that is unknown.
          - `pdf_url` string, nullable: The official PDF file on joradp.dz (Algeria) or sgg.gov.ma (Morocco). Always null for Tunisia, whose official site gives no direct link to a file: available says whether the edition exists.
        - `ar` JoEdition
          - `available` boolean, nullable: Whether this edition exists, null when that is unknown.
          - `pdf_url` string, nullable: The official PDF file on joradp.dz (Algeria) or sgg.gov.ma (Morocco). Always null for Tunisia, whose official site gives no direct link to a file: available says whether the edition exists.
      - `has_sommaire` boolean, required: Whether UpGrowth holds the summary of this issue.
      - `url` string, nullable: The page of the issue on upgrowth.dz, when UpGrowth holds its summary (none yet for 1962-2001, read from the scans).
  - `meta` Meta, required
    - `country` string, nullable: ISO 3166-1 alpha-2 code of the country the answer is about, for example DZ. Present on every successful answer: null only for the list of countries.
    - `dataset` string, required: Identifier of the dataset the answer comes from.
    - `source` string, required: Name of the source, in the language of the request.
    - `source_url` string, required: The page that describes the source.
    - `licence` string, nullable, required: The licence of the dataset: CC BY 4.0 for the datasets UpGrowth publishes under it, otherwise null.
    - `licence_url` string, nullable, required: Link to the text of the licence, null when licence is null.
    - `attribution` string, required: The credit to give when the data is used, in the language of the request: UpGrowth, with a link to https://www.upgrowth.dz.
    - `updated` string, nullable, required: Day of the snapshot of the data, as YYYY-MM-DD. For the tax rates, social contributions and institutions: the day the official pages were read.
    - `notice` string: Datasets without an open licence only: why. A null licence never means public domain.
    - `help` object, required: A call to action to relay to the user, in the language of the request.
      - `text` string, required: One sentence to pass on to the user.
      - `url` string, uri, required: The contact page of UpGrowth to send the user to.
    - `total` integer: Number of results. Present on lists.
    - `limit` integer: Page size used. Paginated lists only.
    - `offset` integer: Results skipped. Paginated lists only.
    - `sommaire_years` integer[]: Journal Officiel search only: the years whose summaries are searched.
    - `free_years` integer[]: Calls with no key, Journal Officiel routes only: the years such a call may read.
    - `truncated` object: Calls with no key only: present when the answer holds fewer rows than matched, because such a call gets at most 10 rows and cannot page.
      - `returned` integer, required: Rows in this answer.
      - `total` integer, nullable: Rows that matched, null when unknown.
    - `free_note` string: Calls with no key only: says the list is not complete. Present with truncated.
    - `sources` SourceRef[]: Tunisian governorates and Moroccan regions only: every official page the list was read on.
      - `url` string, uri, required: The official page the record was read on.
      - `title` string, required: What the page is.
      - `retrieved` string, required: The day the page was read, as YYYY-MM-DD.
    - `disclaimer` Localized: The same text in the three languages of the site.
      - `fr` string
      - `ar` string
      - `en` string

## Other responses

- `400`: A parameter is missing or invalid. error.code names the problem and error.message says how to fix it.
- `401`: invalid_key: the Authorization header is malformed, or the key is unknown or revoked. A call without the header is never refused with this code, it uses the free tier.
- `403`: dataset_unavailable: the account of the key may not read the data of this country. access_denied: the account is not served. Neither says why. key_required: a call with no key asked for what needs one (a country other than Algeria, an older year of the Journal Officiel, a page of a search past the first). trial_ended: the trial of the account is over.
- `404`: not_found: the code, the issue or the section does not exist. country_not_available: the country is not live, or does not have this dataset yet; the message lists the live countries.
- `429`: rate_limited (more than about 30 requests in 10 seconds from one address), free_quota_exceeded (the free tier of the address is used up for today), quota_exceeded (the daily quota of the key is used up) or monthly_quota_exceeded (the monthly quota of the account is used up, on the plans that have one) or trial_quota (the 1,000 calls of a trial are used up, which does not reset). Retry-After says when to try again.
- `503`: unavailable: a call with a key could not be counted right now. Retry in a moment.

---

[API](https://skmtc.dev/upgrowth/apis/upgrowth-algerian-business-data-api.md) · [All operations](https://skmtc.dev/upgrowth/apis/upgrowth-algerian-business-data-api/llms.txt) · [OpenAPI document](https://skmtc.dev/upgrowth/apis/upgrowth-algerian-business-data-api/revisions/76dce93244ad?raw)
