---
title: "Add and pin object"
method: POST
path: "/pinning/pins"
tags: ["pinning"]
---

# Add and pin object

`POST /pinning/pins`

This endpoint adds a pin to the IPFS daemon.

## Query parameters

- `ignore-dupes` string
- `overwrite` string

## Request body

- PinnerIpfsPin
  - `cid` string
  - `meta` object
  - `name` string
  - `origins` string[]

## Response `202`

Accepted

- PinnerIpfsPinStatusResponse
  - `content` UtilContent
    - `active` boolean
    - `aggregate` boolean
    - `aggregatedIn` integer — TODO: shift most of the 'state' booleans in here into a single state field, should make reasoning about things much simpler
    - `cid` UtilDbCID
      - `cid` CidCid
    - `createdAt` string
    - `dagSplit` boolean — If set, this content is part of a split dag. In such a case, the 'root' content should be advertised on the dht, but not have deals made for it, and the children should have deals made for them (unlike with aggregates)
    - `dealStatus` string
    - `description` string
    - `failed` boolean
    - `id` integer
    - `location` string
    - `name` string
    - `offloaded` boolean
    - `origins` string
    - `pinMeta` string
    - `pinning` boolean
    - `pinningStatus` string
    - `replace` boolean
    - `replication` integer
    - `size` integer
    - `splitFrom` integer
    - `type` 0 | 1 | 2
    - `updatedAt` string
    - `userId` integer
  - `created` string
  - `delegates` string[]
  - `info` object
  - `pin` PinnerIpfsPin
    - `cid` string
    - `meta` object
    - `name` string
    - `origins` string[]
  - `requestid` string
  - `status` 'pinning' | 'pinned' | 'failed' | 'queued' | 'offloaded'

## Other responses

- `500` — Internal Server Error

---

[API](https://skmtc.net/application-research/apis/estuary-api.md) · [All operations](https://skmtc.net/application-research/apis/estuary-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/application-research/estuary-api/revisions/b9ae518bf64b/schema)
