---
title: "Add Photo"
method: POST
path: "/projects/{project_id}/photos"
tags: ["Projects"]
---

# Add Photo

`POST /projects/{project_id}/photos`

## Path parameters

- `project_id` string, id, required

## Headers

- `X-CompanyCam-User` string

## Request body

- object
  - `photo` object, required
    - `coordinates` Coordinate
      - `lat` number, float, required
      - `lon` number, float, required
    - `uri` string, required
    - `captured_at` integer, required — Unix timestamp when the Photo was captured
    - `description` string — A description of the photo
    - `tags` string[]

## Response `201`

The created project photo

- Photo
  - `id` string, required — The unique ID for the photo
  - `company_id` string — A unique identifier for the Company the Photo belongs to
  - `creator_id` string — The id of the entity that created the Photo
  - `creator_type` string — The type of the entity that created the Photo
  - `creator_name` string — The display name of the entity that created the Photo
  - `project_id` string — The unique ID of the project the Photo was captured at
  - `processing_status` 'pending' | 'processing' | 'processed' | 'processing_error' | 'duplicate' — Indicates the Photo’s processing status.
  - `status` 'active' | 'deleted' — The status of the Photo
  - `coordinates` Coordinate
    - `lat` number, float, required
    - `lon` number, float, required
  - `uris` ImageURI[] — A list of URIs for the different size variants of the photo.
    - `type` string, required
    - `uri` string, required
    - `url` string
  - `hash` string — The MD5 hash of the photo
  - `description` string — A description of the photo
  - `internal` boolean — Indicates whether the photo is for internal use only and should not be used in marketing or other public materials
  - `photo_url` string — The link to the photo in the web app
  - `captured_at` integer — Timestamp when the Photo was captured
  - `created_at` integer — Timestamp when the photo was created on the server. This may differ from the captured_at field
  - `updated_at` integer — Timestamp when the photo was last updated

## Other responses

- `400` — Bad Request
- `404` — Not found
- `500` — Unexpected error

---

[API](https://skmtc.net/companycam/apis/core-api.md) · [All operations](https://skmtc.net/companycam/apis/core-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/companycam/core-api/versions/f2cd76b46603/schema)
