> ## Documentation Index
> Fetch the complete documentation index at: https://docs.synci.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Verify a security

> Confirms the price source has a usable close for a provider symbol and returns the catalogue security (created
on first use), so a search result can be verified before a first purchase is recorded. When it cannot be
priced the response is a 422 with `errors.provider_symbol` and a machine-readable `reason`: `NO_DATA` (the
provider has nothing for it), `STALE_DATA` (its last close is weeks old), `PROVIDER_UNAVAILABLE` (an outage,
try later), `BUDGET_EXHAUSTED` (the monthly request budget is used up) or `SYMBOL_TOO_LONG`.



## OpenAPI

````yaml /openapi/v1.json post /finance/securities/resolve
openapi: 3.2.0
info:
  title: Synci
  version: '1.0'
  description: >-
    Synci is a platform for integrating financial accounts with your favorite
    apps.
servers:
  - url: https://api.synci.io/api/v1
security:
  - oauth2: []
  - http: []
tags:
  - name: Finance
    kind: nav
  - name: Connections
    parent: Finance
  - name: Accounts
    parent: Finance
  - name: Transactions
    parent: Finance
  - name: Institutions
    parent: Finance
  - name: Destinations
    kind: nav
  - name: YNAB
    parent: Destinations
  - name: Lunch Money
    parent: Destinations
  - name: Google Sheets
    parent: Destinations
  - name: SimpleFIN
    parent: Destinations
  - name: Notion
    parent: Destinations
  - name: Account
    kind: nav
  - name: Webhooks
    parent: Account
  - name: User
    parent: Account
  - name: rule-engine
    summary: Rules
    kind: nav
  - name: Rules
    parent: rule-engine
  - name: Rule Logs
    parent: rule-engine
  - name: Transfers
    kind: nav
  - name: Transfer Links
    parent: Transfers
  - name: Transfer Logs
    parent: Transfers
paths:
  /finance/securities/resolve:
    post:
      tags:
        - Investments
      summary: Verify a security
      description: >-
        Confirms the price source has a usable close for a provider symbol and
        returns the catalogue security (created

        on first use), so a search result can be verified before a first
        purchase is recorded. When it cannot be

        priced the response is a 422 with `errors.provider_symbol` and a
        machine-readable `reason`: `NO_DATA` (the

        provider has nothing for it), `STALE_DATA` (its last close is weeks
        old), `PROVIDER_UNAVAILABLE` (an outage,

        try later), `BUDGET_EXHAUSTED` (the monthly request budget is used up)
        or `SYMBOL_TOO_LONG`.
      operationId: securities.resolve
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResolveSecurityRequest'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    const: Security verified.
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      provider:
                        type: string
                        const: MARKETSTACK
                      provider_symbol:
                        type: string
                      name:
                        type: string
                      type:
                        type: string
                        enum:
                          - EQUITY
                          - ETF
                          - FUND
                          - OTHER
                      currency:
                        type:
                          - string
                          - 'null'
                      exchange_mic:
                        type:
                          - string
                          - 'null'
                        description: >-
                          A fund's exchange is a registration-market artefact,
                          not a venue: no venue, no listing country.
                      exchange_name:
                        type:
                          - string
                          - 'null'
                      country_code:
                        type:
                          - string
                          - 'null'
                      priced:
                        type: boolean
                        description: >-
                          A close is held and recent enough to value with
                          (ACTIVE or STALE); UNVERIFIED rows are checked on add.
                      price_status:
                        type: string
                        enum:
                          - UNVERIFIED
                          - ACTIVE
                          - STALE
                          - UNAVAILABLE
                      last_price_at:
                        type:
                          - string
                          - 'null'
                    required:
                      - id
                      - provider
                      - provider_symbol
                      - name
                      - type
                      - currency
                      - exchange_mic
                      - exchange_name
                      - country_code
                      - priced
                      - price_status
                      - last_price_at
                required:
                  - message
                  - data
        '401':
          $ref: '#/components/responses/AuthenticationException'
        '403':
          $ref: '#/components/responses/AuthorizationException'
        '422':
          $ref: '#/components/responses/ValidationException'
components:
  schemas:
    ResolveSecurityRequest:
      type: object
      properties:
        provider_symbol:
          type: string
          description: >-
            The symbol as the securities search returned it (exchange suffix
            included).
          maxLength: 32
      required:
        - provider_symbol
      title: ResolveSecurityRequest
  responses:
    AuthenticationException:
      description: Unauthenticated
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
              - message
    AuthorizationException:
      description: Authorization error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
              - message
    ValidationException:
      description: Validation error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Errors overview.
              errors:
                type: object
                description: A detailed description of each field that failed validation.
                additionalProperties:
                  type: array
                  items:
                    type: string
            required:
              - message
              - errors
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://api.synci.io/oauth/authorize
          tokenUrl: https://api.synci.io/oauth/token
          scopes:
            profile:read: View your name, email, and profile details
            accounts:read: View your connected financial accounts and balances
            accounts:write: >-
              Update, sync, and remove your financial accounts, and change their
              settings
            transactions:read: View your transactions
            transactions:write: Create, update, and delete your transactions
            sensitive:read: >-
              See sensitive identifiers like account numbers and account holder
              names
            transfer-links:read: View your transfer links and their transfer history
            transfer-links:write: Create, update, and delete transfer links, and undo transfers
            rules:read: View your rules and rule activity
            rules:write: Create, update, and delete rules, and undo rule actions
            webhooks:read: View your webhook endpoints
            webhooks:write: >-
              Create, update, and delete webhook endpoints, and rotate their
              secrets
            destinations:read: View your connected destinations
            destinations:write: Connect, update, and remove destinations
            financial-connections:read: View your connected institutions
            financial-connections:write: Manage your connected institutions
    http:
      type: http
      description: Bearer token (personal access token or OAuth access token)
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.