---
title: "Get the tax and social filing calendar of Algeria"
method: GET
path: "/rules/calendar"
tags: ["Business rules"]
---

# Get the tax and social filing calendar of Algeria

`GET /rules/calendar`

## Request

- Base URL: `https://www.upgrowth.dz/api/v1`
- URL: `https://www.upgrowth.dz/api/v1/rules/calendar`
- Auth: one of:
  - none
  - HTTP bearer

The legal filing and payment deadlines of businesses in Algeria (VAT, withholding, IFU, annual returns, IRG, CNAS, CASNOS, penalties), each with who files, its article and the official text.

## Query parameters

- `q` string
- `treatment` 'monthly' | 'quarterly' | 'annual' | 'ifu' | 'social' | 'penalty' | 'general'
- `lang` 'fr' | 'ar' | 'en'
- `country` string

## Response `200`

The data, with its meta.

- object
  - `data` RulesTopic, required
    - `topic` string, required: The topic, e.g. vat.
    - `title` string
    - `summary` string: The rules of the topic in a few sentences.
    - `items` RulesItem[], required
      - `code` string, required: A short stable name for the item.
      - `treatment` string, required: What applies, e.g. for VAT: standard_19, reduced_9, exempt, outside_scope, abrogated, regime, territoriality.
      - `rate_percent` number, nullable: The rate, in percent, when the item sets one; null otherwise.
      - `in_force` boolean: false for a rule that was abrogated (listed only with in_force=false or treatment=abrogated).
      - `label` string, required: What the item covers, in the language of the request (French when it has none).
      - `who` string: Calendar only: who must file or pay.
      - `deadline` string: Calendar only: the deadline, as the text words it.
      - `amount` string, nullable: Support schemes: the amount or rate as the text writes it, when it gives one.
      - `legal_basis` string, required: The article and the law that set it.
      - `since` integer, nullable: The year of the law that set it in its present form.
      - `journal_officiel` string, nullable: The issue of the Journal officiel that published that law.
      - `source` SourceRef, required
        - `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.
  - `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)
