---
title: "Get the project"
method: GET
path: "/project"
tags: ["Project"]
---

# Get the project

`GET /project`

## Request

- Base URL: `https://api.hypamoon.com/api/v1`
- URL: `https://api.hypamoon.com/api/v1/project`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://app.hypamoon.com/oauth/authorize`, token URL `https://api.hypamoon.com/oauth/token`, scopes: `project:read`)

The project behind the API key: one app, with its own numbers, one assistant, its calls and its webhooks. verification lists the four verification levels with what each still needs and what it unlocks. access says whether this key or connection is limited to some sites and apps (an owner or admin sets that in the portal); a limited key gets only id, name, edition, created_at, mode and access.

## Response `200`

The project.

- Project: The project behind the API key.
  - `id` string, uuid, required: The id of the project.
  - `name` string, required: The name of the project. The assistant uses it in its greeting.
  - `edition` string, required: Always api for a project of the Hypamoon API.
  - `created_at` string, date-time, required: When the project was created.
  - `spending_limit_eur` number, nullable: The most the project can spend per month, in euros. Null in test mode: a test project costs nothing. Left out for a key or connection limited to some sites and apps.
  - `numbers_count` integer: How many numbers the project has. Left out for a limited key or connection.
  - `mode` 'live' | 'test', required: live or test: the mode of the key, which is always the mode of its project.
  - `live_project_id` string, uuid, nullable: Only in test mode: the live project this test project belongs to, or the project itself when it has no separate test project.
  - `rails` object: Per function with real-world effects, for this request: live (in use) or test (simulated: not used yet, or a test key). A function on test becomes live the first time it is asked for, once the project is verified for it; until then the request answers verification_required with a link. A test key is test everywhere. Left out for a limited key or connection. Sites, data and apps are always real and have no mode.
    - `phone` 'live' | 'test', required: Numbers, the call plan and the AI receptionist on inbound calls.
    - `outbound` 'live' | 'test', required: Outbound calls (start_call).
    - `sms` 'live' | 'test', required: SMS messages.
    - `email` 'live' | 'test', required: Email to other people. With a live key, email to the project's own team is real even when this is test.
    - `payments` 'live' | 'test', required: Checkout, orders and refunds: real money or test payments.
    - `domains` 'live' | 'test', required: Buying, renewing and transferring a domain. Connecting a domain is always real.
  - `verification` object: The verification (KYC) of the project. In test mode: the verification of the live project.
    - `account_type` 'personal' | 'business', required: personal or business. You are verified for what you use: a personal account needs no business register number, a business does. A national number needs a business.
    - `levels` object[], required: Always four levels, in order: test, company (personal for a personal account), number_documents, full.
      - `level` 'test' | 'company' | 'personal' | 'number_documents' | 'full', required: test, then company (a business) or personal (a personal account), then number_documents and full. Each level unlocks more; see unlocks.
      - `status` 'not_started' | 'submitted' | 'in_review' | 'approved' | 'rejected', required: Where this level stands. company, personal and number_documents follow from the data you set; full needs our review.
      - `reason` string, nullable, required: Only when rejected: what is wrong. Fix it and submit again.
      - `missing` string[], required: What is still needed, as codes: company_details.<field> (set with PUT /project/company), payment_mandate, spending_cap, document.proof_of_address, document.identity, document.company_registration (upload in the portal under Verification), level.company or level.personal (finish that level first), level.number_documents, director_identity, ubo_confirmation and review. Empty when approved.
      - `unlocks` string[], required: What this level unlocks, as codes: test_keys, test_numbers, simulated_calls, live_keys, live_chat, national_numbers, inbound_calls, geographic_numbers, sms, outbound_calls, spending_cap_above_500_eur, more_concurrent_calls.
  - `access` object, nullable, required: Null: this key or connection can use the whole project. Otherwise only these sites, apps and collections: lists show only those, and anything for the whole project (billing, team, domains, numbers, a new site or app) is refused with 403 and a user_message.
    - `limited_by` 'api_key' | 'connection' | 'member', required: api_key or connection: an owner or admin limited this key or chat connection in the portal. member: the person behind it is limited in the team.
    - `sites` object[], required: The sites it can use. The app of a site comes with it.
      - `id` string, required: The id.
      - `name` string, required: The name.
    - `apps` object[], required: Apps chosen on their own, next to the apps of the sites.
      - `id` string, required: The id.
      - `name` string, required: The name.
    - `collections` object[], required: The collections it can use: the ones the sites and apps use.
      - `id` string, required: The id.
      - `name` string, required: The name.

## Other responses

- `401`: Unauthorized: unauthorized, missing_api_key, invalid_api_key, api_key_revoked, project_deleted.
- `403`: Forbidden: project_not_enabled, key_mode_mismatch, missing_scope, verification_required.
- `404`: Not Found: not_found.
- `429`: Too Many Requests: rate_limited.
- `500`: Internal Server Error: internal_error.
- `503`: Service Unavailable: service_unavailable.

---

[API](https://skmtc.dev/hypamoon/apis/hypamoon-api.md) · [All operations](https://skmtc.dev/hypamoon/apis/hypamoon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hypamoon/apis/hypamoon-api/revisions/9f0b90004c06?raw)
