API
⌘K
My Developer Account

Key

Each song arrangement can have multiple keys. A key is the pitch center of the song.

Example Request

curl https://api.planningcenteronline.com/services/v2/songs/{song_id}/arrangements/{arrangement_id}/keys

View in API Explorer →

Example Object

{
  "type": "Key",
  "id": "1",
  "attributes": {
    "alternate_keys": "string",
    "created_at": "2000-01-01T12:00:00Z",
    "ending_key": "string",
    "ending_minor": true,
    "name": "string",
    "starting_key": "string",
    "starting_minor": true,
    "updated_at": "2000-01-01T12:00:00Z"
  },
  "relationships": {
    "arrangement": {
      "data": {
        "type": "Arrangement",
        "id": "1"
      }
    }
  }
}

Attributes

Name Type Description
alternate_keys string An array of objects. ` { "name": "My Alternate Key", "key": "B" } `
created_at date_time
ending_key string Possible Values: `Ab`, `A`, `A#`, `Bb`, `B`, `C`, `C#`, `Db`, `D`, `D#`, `Eb`, `E`, `F`, `F#`, `Gb`, `G`, `G#`, `Abm`, `Am`, `A#m`, `Bbm`, `Bm`, `Cm`, `C#m`, `Dbm`, `Dm`, `D#m`, `Ebm`, `Em`, `Fm`, `F#m`, `Gbm`, `Gm`, `G#m` To set the key to minor append `m` to the key. e.g. `Cm`
ending_minor boolean
id primary_key
name string
starting_key string Possible Values: `Ab`, `A`, `A#`, `Bb`, `B`, `C`, `C#`, `Db`, `D`, `D#`, `Eb`, `E`, `F`, `F#`, `Gb`, `G`, `G#`, `Abm`, `Am`, `A#m`, `Bbm`, `Bm`, `Cm`, `C#m`, `Dbm`, `Dm`, `D#m`, `Ebm`, `Em`, `Fm`, `F#m`, `Gbm`, `Gm`, `G#m` To set the key to minor append `m` to the key. e.g. `Cm`
starting_minor boolean
updated_at date_time

Relationships

Name Type Association Type Note
arrangement Arrangement to_one

Order By

Parameter Value Type Description
order created_at string prefix with a hyphen (-created_at) to reverse the order
order updated_at string prefix with a hyphen (-updated_at) to reverse the order

Pagination

Name Parameter Type Description
per_page per_page integer how many records to return per page (min=1, max=100, default=25)
offset offset integer get results from given offset

Endpoints

Listing

HTTP Method Endpoint
GET /services/v2/songs/{song_id}/arrangements/{arrangement_id}/keys

Reading

HTTP Method Endpoint
GET /services/v2/songs/{song_id}/arrangements/{arrangement_id}/keys/{id}

Creating

HTTP Method Endpoint Assignable Attributes
POST /services/v2/songs/{song_id}/arrangements/{arrangement_id}/keys
  • alternate_keys
  • ending_key
  • name
  • starting_key

Updating

HTTP Method Endpoint Assignable Attributes
PATCH /services/v2/songs/{song_id}/arrangements/{arrangement_id}/keys/{id}
  • alternate_keys
  • ending_key
  • name
  • starting_key

Deleting

HTTP Method Endpoint
DELETE /services/v2/songs/{song_id}/arrangements/{arrangement_id}/keys/{id}

Associations

HTTP Method Endpoint Returns Details Filter By
GET https://api.planningcenteronline.com/services/v2/songs/{song_id}/arrangements/{arrangement_id}/keys/{key_id}/attachments Attachment

Belongs To

HTTP Method Endpoint Association Details Filter By
GET https://api.planningcenteronline.com/services/v2/songs/{song_id}/arrangements/{arrangement_id}/keys Arrangement
GET https://api.planningcenteronline.com/services/v2/service_types/{service_type_id}/plans/{plan_id}/items/{item_id}/key Item